推薦文章

[小菜一碟] 如何讀取自訂 ConfigurationElement 節點內的設定值?

在 .NET Framework 中,無論是 App.ConfigWeb.Config,均有保留 <configSections> 讓我們可以自訂設定區塊(ConfigurationSection),由於曾經看過有一些 Library 把設定值放在節點之中,像這樣:

等到要自己弄的時候才發現,似乎沒有那麼簡單,網路上搜尋到的有關於自訂 ConfigurationSection 的文章,大都沒有提到這一塊。

...繼續閱讀 »
on supershowwei

[小菜一碟] Windows Forms 的 DataGridViewComboBoxColumn 選項變更後立即更新到 DataSource

Windows Forms 的 DataGridView 開啟編輯資料之後,我們就可以在畫面上直接對資料進行修改,預設的統一操作行為是修改完資料之後,按下 Enter 鍵或是離開該儲存格,資料就會更新到綁定的 DataSource 上,就像下面這樣:

但是呢,使用者會希望能在修改之後立即更新到 DataSource,不要再多敲 Enter 鍵或離開儲存格的動作,尤其是 ComboBox,我們來看一下怎麼弄?

...繼續閱讀 »
on supershowwei

[廚餘回收] 在 Windows Forms 做控制項的資料綁定後,發生「跨執行緒作業無效」的錯誤。

如果我們的 Data Source 是非同步更新的話,那麼我們就很容易收到下面的錯誤訊息。

跨執行緒作業無效: 存取控制項 'xxx' 時所使用的執行緒與建立控制項的執行緒不同。(Cross-thread operation not valid: Control 'xxx' accessed from a thread other than the thread it was created on.)

一般遇到這個情況,我們通常就是判斷 Control.InvokeRequired 屬性,然後改用 Control.Invoke()Control.BeginInvoke() 方法來修改控制項的屬性,如果是在有資料綁定的情況呢?怎麼解決這個跨執行緒的問題?

...繼續閱讀 »
on supershowwei

[料理佳餚] 用 .NET Core Worker Service 在 Linux 及 Windows 上建置背景服務

以往用 .NET Framework 開發的時候,都是用 TopShelf 來建置 Windows 服務,現在 .NET Core 弄了一個叫 .NET Generic Host 的東西,我們可以直接將服務透過它來 Host 成背景服務,而且它是跨平台的,不只可以部署在 Windows 上,Linux 上也行得通,ASP.NET Core 應用程式就是用它來讓服務可以長時間執行。

...繼續閱讀 »
on supershowwei

[小菜一碟] 為我們在 ASP.NET Core 的靜態檔案加上 Cache-Control

當我們建立一個 ASP.NET Core Web 應用程式專案的時候,預設在 Startup.cs 中就會呼叫 UseStaticFiles() 使用 StaticFileMiddleware,讓專案中的靜態檔案可以透過 HTTP 被存取到,現在我想要將這些靜態檔案 Cache 在 CDN 上,我需要在 Response Headers 裡面加上 Cache-Control: public, max-age=n,我們來看要怎麼做?

...繼續閱讀 »
on supershowwei

架構師 (Architect) 的角色

之前其實就有想寫這一篇,但是因為很忙而擱著,今天看到了某些網路文章,才讓我起意把這篇補起來。早期我寫了一系列關於架構師先決條件的文章 "邁向架構師的暖身運動",簡單說明了怎麼由架構的角度去思考系統設計的方略,今天就用這篇文章將它做個總結吧 (謎之音:其實是你自己懶吧)。

...繼續閱讀 »
on regionbbs

[ Source Generator ] 使用 SyntaxReceiver 快速篩選關注的 Syntax 資訊

Source Generator 是微軟於 .NET 5 所推出的新功能,

它允許我們從原始碼編譯的結果中取得所需的 meta 資訊,

進而根據這些資訊去組出額外的程式碼,並加至最後的編譯結果中。

而當原始碼數量過於龐大時,將篩選 Syntax 的邏輯寫在 Generator 內就會稍顯雜亂。

這時可以使用 SyntaxReceiver 幫助我們快速篩選所需的 Syntax 資訊!

...繼續閱讀 »
on armycoding

[料理佳餚] 實作 IFeatureDefinitionProvider 從外部的服務載入 ASP.NET Core Feature Flags(Feature Toggle)的設定

上一篇提到我們可以把 ASP.NET Core Feature Flags 的設定,儲存在 Azure App Configuration(應用程式組態)裡面,現在再進階一點,我們可以實作 IFeatureDefinitionProvider 建立一個 Feature Definition Provider,讓 Feature Flags 的設定可以儲存在我們想要的地方。

...繼續閱讀 »
on supershowwei

進修課程