找對 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 ArticleASP.NET Core 自訂靜態檔案來源 - 以 JSON 為例
之前玩過將 html/js/css/png 等靜態檔案轉成內嵌資源讓 Minimal API 程式徹底實現單一檔案。更進一步,有沒有可能自訂其他靜態檔案來源呢?例如像 Sharepoint 把 html、css、js 存進資料庫,但用起來跟一般網站靜態檔案沒有兩樣。能依需求輕易擴充修改,將網站捏成你... Read More
View ArticleVSCode 程式小書僮 - Tabnine
聽說這年頭只要會寫程式就不愁沒工作,且待遇還很不錯,小木頭跟小閃光兩人吵著要學程式,沒辦法,身為老司機只得撥些時間指導一下。(謎之聲:分明是你在整天推坑吧?) 之前兩人上過程式夏令營之類的課程,學過一點 C/C++ 跟 Python 但沒再深入,那這次要學什麼程式語言入門呢?想了想,JavaScri... Read More
View Article.NET 小技 - 命令列參數應用
.NET Core 程式寫久了,用命令列參數執控制程式已是日常,像發佈 .NET 6 程式時便少不了 --no-self-contained、-c Release、-r win-x64 等參數,而啟動 ASP.NET Core 時,使用 --urls 指定 HTTP Port 更是必備技巧。 .NE... Read More
View Article小試 Github Copilot
這陣子接連看過 VS2022 的 IntelliCode 與 VSCode 外掛 Tabnine,都是靠 AI 幫忙你寫程式的好幫手。而這個領域名聲最響亮的,非 Github Copilot 莫屬。而 Github Copilot 3/29 剛發佈 VS2022 擴充套件,Github Copilo... Read More
View Article在 EF Core DbContext 使用 Dapper 並參與 Transaction
寫 .NET 資料庫相關程式該用 EF/ORM 還是自己寫 SQL?就像手排車 vs 自排車,各有優劣及擅長的場合,亦各有支持者,我自己則是瀨尿牛丸派,單純 CRUD 用 EF (或自製 ORM) 享受強型別保護及不沾 SQL 的清爽,至於複雜查詢、批次更新刪除,則回歸自己寫 SQL 以確保執行效能... Read More
View Article使用指令建立 SQL LocalDB mdf 檔
SQL LocalDB 是開發測試 SQL 程式的好夥伴,免費,比 SQL Server 輕巧,行為模式比照標準 SQL Server,很適合裝在開發主機扮演 SQL 資料庫角色。(延伸閱讀:SQL Server 2012 Express LocalDB (SqlLocalDB) 深入剖析 by 保... Read More
View Article將多個 EF Core DbContext 包成 Transaction
之前介紹過將 EF Core DbContext 動作包入 Transaction,做法有兩種:呼叫 DbContext.Database.BeginTransaction() 啟動交易、用 TransactionScope 包住 DbContext 動作。如果要將兩個以上 DbContext 包進... Read More
View Article