.NET Core .cshtml 及 JSON 之 UnicodeRange 編碼範圍設定
.NET Core 開始,文字編碼處理原則有點改變。在預設情況下,.cshtml 轉換 HTML 時會將「中文」兩字轉成 Hexadecimal Character References -「中文」,需加上 Services.AddSingleton<... Read More
View Article水電小常識 - 螺絲上斷開的金屬圈或齒輪環是做什麼用的?
買了個微波感應燈,廠商貼心地附了壁虎[1]、螺絲[2]跟墊片(有誤,後詳)好釘在牆上,零件除了我熟悉的一般墊片[3],還有個斷開的金屬環[4],記得在其他螺絲上看過,知道是套在螺絲上的,但不知名稱跟作用,也忘記與墊片的安裝順序。產品附了詳細安裝說明,獨獨沒提螺絲跟墊片該怎麼裝,彷彿這是大家都知道的常... Read More
View Article使用 VSCode 開發類別程式庫 - 以 .NET Standard 2.0 繁簡轉換類別程式庫為例
用 VSCode 寫 .NET 6 程式好一陣子,都還是單一專案範例或小工具,最近要寫個 .NET Standard 2.0 程式庫讓 .NET 4.6.1+ 跟 .NET 6 專案共用,第一次嘗試在 VSCode 處理有兩個專案的 .sln,值得寫篇筆記。 MS Doc 有篇教學 - Tutori... Read More
View Article在 .NET Framework 引用 VSCode 開發之 .NET Standard 2.0 程式庫
昨天介紹了用 VSCode 建立 .NET Standard 2.0 類別程式庫,目標平台之所以選擇 .NET Standard 2.0 而非 .NET Core 或 .NET 6,主要是希望程式庫同時支援 .NET 4.6.1+ 與 .NET Core/.NET 5+ 專案,達成一魚兩吃的目標。 ... Read More
View ArticleSystem.Text.Json 再進化 - 透過 DOM 巡覽及編修 JSON 文件
依微軟的計劃,System.Text.Json 應取代 Json.NET,成為 .NET Core/.NET 5+ 奧林匹克指定 JSON 程式庫。System.Text.Json 主打輕巧高效能,但畢竟發展時間尚短,與身經百戰的老將 Json.NET 相比,在功能完整性及可擴充性上仍有點「嫩」。其... Read More
View Article使用 Bouncy Castle DES/AES 加解密
在 .NET 要執行 DES/AES/RSA 加解密不是難事,遠從 .NET 3.5 時代,System.Security.Cryptography 命名空間都已內建相關 API 提供完整支援。不過這些安全相關 API 高度依賴作業系統的原生程式庫,從 .NET Core 開始,跨平台成為重要考量,... Read More
View Article【茶包射手日記】SQL Client 與 Windows 4625 登入失敗稽核事件
調查了一起開發測試過程引發 Windows 稽核失敗事件的案例。 本機不小心在 Visual Studio 啟動了某個測試網站專案,在另一個伺服器留下多筆操作登入使用者登入失敗的 Windows 安全事件: 依據微軟文件,4625 事件用於記錄任何登入失敗,留存在嘗試登入的電腦上。這個事件也是之前... Read More
View Article找對 NuGet Package 的小技巧
.NET 社群蓬勃發展,NuGet Gallery 上程式套件多如牛毛,搜尋時常會冒出一堆名稱相近結果,不知哪個才是我要的,歷經幾次裝錯經驗,以下是我找對 NuGet 程式庫的小技巧。 前陣子玩繁簡轉換找到 OpenCC.NET 專案,作者說 OpenCC.NET 名稱已被捷足先登,故在 NuGet... Read More
View ArticleASP.NET Core 豆知識 - 調整 csproj 自動包含之專案項目
將 ASP.NET MVC 專案翻寫為 ASP.NET Core 的過程,我想沿用 .config appSetting 縮小修改幅度。好消息是微軟有提供 System.Configuration.ConfigurationManager NuGet Package 讓 .NET Standard ... Read More
View Article.NET Core JSON 轉 Dictionary string, object 地雷
發現從 .NET 6 開始支援 System.Text.Json DOM 巡覽及編修,小小興奮了一下,打算逐步用 System.Text.Json 取代 Json.NET,不料隨即踩到雷。 有段用 JSON 傳送 Dictionary<string, object> 的程式,原本靠 Js... Read More
View ArticleASP.NET Core DI 之多建構式問題
改用 ASP.NET Core 後,DI 已成日常(延伸閱讀:不可不知的 ASP.NET Core 依賴注入),我漸漸習慣將共用程式、元件寫成服務,在 Program.cs 中用 builder.Services.AddSingleton<T>()、AddTransient<T&g... Read More
View Article【茶包射手日記】網路分享資料夾之詭異 IIS Log 與 4625 登入失敗事件
上回 SQL 連線不通導致的 4625 登入失敗稽核事件又有後續,再學到一些冷知識。 狀況為使用者非常確定自己沒有主動使用網路分享資料夾,遠端主機的事件檢視器卻不定期出現當時 Windows 登入帳號登入失敗的 4625 事件: 使用者用 UNC (例如:\\192.168.50.83) 連線遠端... Read More
View ArticleWindows 豆知識 - 「NT SERVICE\MSSQLSERVER」是什麼帳號?
Windows 安全事件出現與帳號 「NT Service\MSSQLSERVER」、「NT Service\MSSQLAGENT」 相關的登入稽核事件, 隱約知道它是 SQL 伺服器使用的帳號。IIS AppPool\* 帳號我知道,但還我真沒研究過 NT Service\* 帳號是什麼來歷,於是... Read More
View Article【茶包射手筆記】AD Domain Controller 出現某主機的本機帳號登入錯誤
又一則奇怪的 4625 登入失敗稽核事件案例 - 在 AD 網域 Domain Controller 上出現某台機器「本機使用者帳號」登入失敗記錄。 情境說明如下。 出場角色有三位,隸屬同一網域的三台主機 - ServerA、ServerB 與 ServerDC。 ServerA - 排程主機,設... Read More
View ArticleGit 實戰 - 將檔案從歷史 Commit 中移除
程式版控不該發生,但難免會遇到的狀況 - 想移除歷史 Commit 裡不該被放進去的檔案,例如:無保存價值的大檔或是機密資料。 如果是無用大檔,即使將檔案刪除再 Commit,日後 clone 仍會佔用頻寬及儲存空間;而機密資料則是非清除不可。Git 允許我們修改歷史並 push -f 覆寫,但實務... Read More
View Article2022 香魚馬
疫情趨緩,馬拉松賽事紛紛恢復,去年早早報好名的香魚馬,從 5 月延到 9 月,再延到今年 3 月,終於成行。 這一年多來,因賽事停擺及時間分配調整,自己的慢跑心態慢慢轉向養生,月跑量還是以 200 公里為目標,但不再求快,而邵老師辦的比賽,欣賞賽道風光品嚐補給才是重點,期限都給你八小時了,抱著輕鬆心... Read More
View ArticleVS2022 之 .NET 6 SDK 支援版本問題
前陣子遇到一個 AddRazorRuntimeCompilation() 問題,靠 .NET 6 SDK 更新到 6.0.201 版解決,升級後繼續用 VSCode 開發、測試,一路順暢,感覺良好。 心血來潮,試改用 VS2022 偵錯,簡單的 Home/Index 檢視卻出現奇怪錯誤: An un... Read More
View Article【茶包射手筆記】PowerShell Invoke-WebRequest IE 錯誤
某段 Invoke-WebRequest 指令開發測試完,部署到目的主機,經手動執行確認 OK,設成排程卻出現以下錯誤訊息: The response content cannot be parsed because the Internet Explorer engine is not avai... Read More
View ArticleVS2022 亮點巡禮與 IntelliCode
VS2022 發佈快三個月了,我終於甘心裝好 VS2022 邁向新時代。之前撐著不裝的理由是強迫自己熟悉 VSCode,幾個月下來算是上手了,能順順地用它開發、測試、部署程式。小木頭這陣子在學寫 Arduino 程式,也順勢被我洗成 VSCode 鐵粉,對它的指令提示、語法檢查、自動程式排版、Col... Read More
View ArticleHumanizer - 名詞單複數轉換、口語化時間、標題句子轉 URL 好幫手
EntityFramework 有個慣例,在 DbContext 宣告 DbSet<IEntity> 屬性時會採複數,例如在入門教學中宣告了兩個 Model 類別 - Blog 及 Post,在 BloggingContext 宣告為 DbSet<Blog> Blogs 及 ... Read More
View Article