使用 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,以後再寫一篇為大家講解

...繼續閱讀 »

.NET 的 Virtual File System - Lexical.FileSystem

甚麼是 VFS?以下出自 wiki

虛擬檔案系統(英語:Virtual file system,縮寫為VFS),又稱虛擬檔案切換系統(virtual filesystem switch),是作業系統的檔案系統虛擬層,在其下是實體的檔案系統。虛擬檔案系統的主要功用,在於讓上層的軟體,能夠用單一的方式,來跟底層不同的檔案系統溝通。在作業系統與之下的各種檔案系統之間,虛擬檔案系統提供了標準的操作介面,讓作業系統能夠很快的支援新的檔案系統。

Lexical.FileSystem 是 .NET 平台的 VFS,能夠為我帶來甚麼幫助呢??

...繼續閱讀 »

.NET Project SDKs 設定 InternalsVisibleTo

以往在 NetFx 在專案的 AssemblyInfo.cs 加上 System.Runtime.CompilerServices.InternalsVisibleToAttribute("TestProject1"),就可以讓 "TestProject1" 存取 NetFx 專案內的 internal 成員;這技巧通常用於測試,既可隱藏,又可測試,真的好棒。

現在,新版的 .NET Project SDKs 已經沒有包含 AssemblyInfo.cs 靜態檔案了,作法就要做一些調整了

 
...繼續閱讀 »