Git 實戰練習 - 使用 Git Subtree 轉移子專案
我想處理的情境如下:Git Repository X 內含多個資料夾,每個資料夾可視為子專案,比如 Project A、B、C、D。隨著專案規模長大及時空環境改變,想將其中的 Project D 移出來,另外新建 Git Repository Y 獨立發展,而搬移時要求修改歷程必須保留。 爬文查了一... Read More
View ArticleHangfire 筆記 3 - 自訂排程作業名稱
網站需要開放使用者指定時間預約執行作業的功能,並需要簡單的介面查詢執行狀況。前陣子剛研究過 ASP.NET Core 的 IHostedService,但它限定 ASP.NET Core,而且查詢管理介面都需要自己刻;Quartz.NET 也蠻多人推的,API 簡潔擴充性高,但缺少現成的查詢管理介面... Read More
View ArticleCache 定期更新機制優化
Cache 回收更新機制不外乎幾種做法 - 絕對逾時期限、閒置固定時間後失效、鎖定檔案或資料庫異動後失效。以 .NET MemoryCache 為例,分別對映到 CachePolicy 的 AbsoluteExpiration、SlidingExpiration 以及 ChangeMonitor。(... Read More
View ArticleASP.NET Core JSON 中文編碼問題與序列化參數設定
轉進 ASP.NET Core 世界,依循過去寫 MVC 經驗,加上參考網路技術文章(當然,還有流著奶與蜜的 Stackoverflow) 大致還算都順利,但不時發現新的眉角。 今天遇到的問題是 Razor Page 傳回 JsonResult 時,中文字元被轉成 UCN (Unicode Char... Read More
View ArticleASP.NET Core 練習 - 檔案更改自動刷新 IMemoryCache
Side Project 是練習新技術的好地方,工作上還以 MVC 為主,自己玩倒是全面改用 ASP.NET Core。遇到編輯 UI 主分類與次分類下拉欄位連動的需求,這玩意兒之前在玩前端時幾乎是必修課程,寫過 Knockout 版、AngularJS 版,這回試寫了 Razor Page 版,用... Read More
View Article【茶包小記】NuGet 套件之詭異 netcoreapp3.1 不相容錯誤
今天遇到的詭異茶包,估計會遇上的人不多,但還是記錄一下備忘。 在筆電上用 Visual Studio 2019 開發一切順利的 ASP.NET Core 3.1 專案,移到個人電腦建置時出錯,有幾個 NuGet 套件 ( ClosedXML、ExcelNumberFormat、System.Draw... Read More
View Article【茶包小記】IE 關閉後 localStorage 消失
同事報案,他的電腦使用某個靠 localStorage 暫存資料的網頁時,暫存資料常會無故消失,沒法放過夜。 經此一事,學到冷知識 - IE 的「結束時刪除瀏覽歷程記錄」(而且有人選擇勾選),清除範圍包含 localStorage: 依據微軟文件: However, users can clea... Read More
View ArticleHangfire 筆記 4 - 儀表板權限設定
Hangfire 自帶網頁儀表板這點深得我心,是我在專案中選用它的主要原因之一。能知道排程設定狀況、執行結果,讓系統操作體驗大大加分。基於安全考量,Hangfire Dashboard 預設只開放從本機存取,如下圖所示,非本機瀏覽時會得到 HTTP 403。 所幸,Hangfire 開放客製存取權... Read More
View ArticleCoding4Fun - 網站 CPU 與記憶體即時監看視窗
閒來無事,寫了一個 ASP.NET MVC 小專案當成休閒活動兼練手感,假想目標是在網站內嵌一小塊監看視窗,即時回報當下的 CPU % 及記憶體使用量。執行起來類似這樣: 簡單說一下做法。 要抓 CPU 與記憶體使用量,最簡單做法是用 PerformanceCounter,實作細節可參考舊文:快速... Read More
View Article將 MVC 功能打包成可攜式元件
在前一篇文章,我用 ASP.NET MVC 寫了一個即時顯示網站應用程式 CPU% 及記憶體用量的小視窗,美中不足是專案結構有點小複雜,包含 css、js、ttf 字型、cshtml、Models 類別、Controller,還需要改 web.config 才能下載 .ttf: 如果今天我覺得這功... Read More
View ArticleIE 已死?能用到何時?企業 IT 的因應對策
這幾天看到標題聳動的新聞: 微軟明年逐步停止支援IE 25年歷史畫句號 死期已到 微軟宣佈 2021 年正式結終 25 年歷史的 IE 時代眼淚又一滴 微軟2021年8月終止支援IE瀏覽器 消息傳來,一時之間前端攻城獅們奔向走告,張燈結綵,薄海歡騰。終於,IE 已死,業主客戶使用者再也不能提出「... Read More
View ArticleMVC 功能可攜元件再進化 - 封裝 cshtml
上週的 Coding4Fun 專案,我寫了一個 ASP.NET MVC (對,還不是 .NET Core,請體諒老人動作慢,勿心急敲碗) 小功能可以顯示 CPU 及記憶體使用狀況,後面又做了一些改良,將 Model、View、Controller 都搬進獨立類別程式庫,還把 js/css/ttf 等... Read More
View Article網站 CPU 與記憶體即時監看視窗 - ASP.NET Core 版
陸續做出 ASP.NET MVC 版網站 CPU 與記憶體即時監看雛型及即插即用的元件化版本,依據當初的 Roadmap,下一步是移植到 ASP.NET Core。 心裡有數,現行做法有個天大障礙在於 Performance Counter 是血統純正的 Windows 功能,不屬於以跨平台為宗旨的... Read More
View ArticleASP.NET Core UI 元件開發利器 - Razor Class Library
依據 Roadmap,完成 ASP.NET Core 版網站 CPU 與記憶體即時監看雛型後的下一步,自然也是將功能從網站抽取成為獨立物件。之前研究 ASP.NET MVC 功能元件化時看到一個好東西 - Razor Class Library,可以將 Razor 元件 (.razor Razor ... Read More
View ArticleMicrosoft Edge IE 模式筆記
前陣子江湖盛傳「IE 將在明年劃下句點」,眾人歡欣鼓舞之際,還有在維護企業內部站台的我卻冷汗直流,一大票 IE Only 的網站那有可能在一年內全部翻新?這個時程緩衝長度不合理呀! 經過一番調查,搞清楚其實是「明年起微軟自家的網站服務如 Office 365、Teams 將不再支援 IE,但 IE1... Read More
View ArticleASP.NET Core Razor Page 簡易下拉選單連動
介紹上回提到的 ASP.NET Core Razor Page 下拉選單連動寫法。如果你對 Razor Page 還沒有概念,推薦幾篇文章: Hello, Razor Pages! - 重溫 WebForm 的簡約風格 Razor Pages 實作 Ajax 呼叫 ASP.NET Core 新增修... Read More
View Article【茶包射手日記】Windows 10 升級 2004 版後無法啟用新倉頡輸入法
小黑收到 Windows 10 2004 版升級通知,趁著假日進化: 2004 這版號有些尷尬。Windows 10 從 2017 起固定半年發佈更新,版號從 1703、1709、1803、1809... 一路跳上來,但來到 2020 就糗了,200X 到底是 200X 年還是 2020 年 X... Read More
View Article【茶包小記】再遇隱形字元
隱形字元是程式開發上很經典的坑,常見於由其他軟體複製貼上時夾帶入境,發生在一般文件不致妨礙閱讀或列印,但遇上程式解析、比對或編碼轉換就會爆炸,我遇過的鬼故事就不少,順手解掉沒寫下來的更是不計其數: 【茶包射手日記】web.config 設定鬼故事 【茶包射手日記】Win7 + Chrome 才看得... Read More
View Article【茶包射手筆記】Chrome、Python 可以但 IE11、.NET 程式無法連線的 TLS 1.2 網站
讀者小螺絲分享了一個沒遇過的 TLS 1.2 案例。從一台 Winows 2012R2 主機要連線某個外部網站,實測使用 IE 及 .NET Client 無法連線,訊息為「基礎連接已關閉: 傳送時發生未預期的錯誤。 ---> System.IO.IOException: 驗證失敗,因為遠端群... Read More
View Article【茶包射手日記】Unicode 罕用字導致 IE 無法顯示網頁
同事報案,某套裝軟體網站無法檢視特定網頁。比對後發現,問題網頁的共同特徵是內含 Unicode 罕用字,而問題只發生在 IE,改用 Chrome 或 Edge 則一切正常。 這裡先簡單解釋所謂的「Unicode 罕用字」,學名其實是 Surrogate Pairs。Windows 通常用 UTF-1... Read More
View Article