[EF Core][SQLite]如何使用 EF Core DbContext 以 Microsoft.EntityFrameworkCore.Sqlite 為例

.NET Core 1.0 開始為了跨平台重新改寫了 SQLite,名為 Microsoft.Data.Sqlite,刪除了過時的 DataTable 和 DataAdapter 相關的 DataSet  API,這已經和之前的 System.Data.SQLite 不一樣,但團隊還是盡量讓它們兩者的 API 變化降到最低。這裡有官方的比較說明文件 與System.Data.SQLite的比較-Microsoft.Data.Sqlite | 微軟文檔

...繼續閱讀 »

[EF Core 5][UnitTest]在 EF Core 使用 In-Memory 降低建立測試替身的成本

當我們要針對商業邏輯測試時,可能需要隔離 EFCore DbContext,搭配 Mock Framework 可以快速地建立測試替身假的 DbContext,自從 EF Core 的 In-Memory 出現之後,建立 DbContext 測試替身這件事,就變得輕鬆許多了

測試使用 EF Core 的程式碼 - EF Core | Microsoft Docs

...繼續閱讀 »

如何使用應用程式秘密組態

秘密管理員工具,預設會在專案的開發期間儲存機密資料,絕對不要將密碼或其他敏感性資料儲存在原始程式碼中,機密資料不應與應用程式一起部署。應該透過像是環境變數或 Azure 金鑰保存庫等受控方式來存取生產秘密。 您可以透過 Azure Key Vault 設定提供者  儲存及保護 Azure 測試與生產祕密。

...繼續閱讀 »

使用 Microsoft.Extensions.Hosting.WindowsServices 和 Topshelf.Extensions.Hosting 建立 Windows Service 應用程式

Microsoft.Extensions.Hosting.WindowsServices 實作 IHostLifetime,可以讓我們輕鬆地將 Console 應用程式掛載在 Windows Service,在實作的過程當中,發現控制服務不是那麼的友善。

於是想起了 Topshelf,便找到了 Topshelf.Extensions.Hosting,它除了可以使用原本的 Host 生命週期,DI Container 注入方式,還可以享有 Topshelf 自我管理 Windows Service 的功能。

...繼續閱讀 »

如何使用 .NET Generic Host for Microsoft.Extensions.Hosting

.NET Generic Host 是 .NET Core 發展出來的基礎建設,可以和其他類型的 .NET 應用程式搭配使用例如背景服務的主控台應用程式,Microsoft.Extensions.Hosting.Host.CreateDefaultBuilder 靜態方法,它來自於  Microsoft.Extensions.Hosting.dll,主要用來提供應用程式一個標準的啟動,包含注入、紀錄、組態,不同的應用程式框架 (HostService) 有不同的預設啟動設定,.NET Generic Host 讓我們的應用程式的生命週期的控制,啟動到結束的撰寫方式統一了。
 

...繼續閱讀 »

如何使用 Options Pattern for Microsoft.Extensions.Options

上篇,如何使用組態 Microsoft.Extensions.Configuration,最後我讓物件依賴 IConfiguration,不論是讀檔操作,還是重新載入檔案,它都可以完成,還可以更好嗎?.NET Core 的 Options Pattern 強化 IConfiguration,封裝了讀檔、轉強型別、重新載入、載入通知、驗證資料的行為,提供另一種使用參數的選擇。

...繼續閱讀 »

如何使用組態 Microsoft.Extensions.Configuration

Microsoft.Extensions.Configuration.dll 用來處理組態,讀檔、重新載入、支援多種格式,包括記憶體、Json、Xml、Ini,也可以像在 .Net Fx 用 Transform 切換組態。

它是在 .NET Core 的基礎建設之一,除了.NET Core,也支援 NET Framework 4.6.1 以上;也可以像在 .Net Fx 用 Transform 切換組態。

ASP.NET Core 預設的組態是 appSetting.json,本篇簡單介紹組態設定的使用方法,關於 ASP.NET Core 的 Host,以後再寫一篇為大家講解

...繼續閱讀 »