如何在 Blazor WebAssembly中 使用 功能開關

張善友發表於2021-01-23

微軟Azure 團隊開發的 功能管理 (Feature Management)Microsoft.FeatureManagement可用於實現 功能開關,可以通過 功能開關 特性動態的改變應用程式的行為而不需要改變任何的業務邏輯程式碼。關於功能開關的更多功能請看Edi Wang的B站視訊:

這篇文章的重點是介紹如何在Blazor WebAssembly專案中實現功能開關。

通過 NuGet 安裝 Microsoft.FeatureManagement ,可通過 Visual Studio 2019 下的 NuGet Package Manager 視覺化管理介面 或者 通過 .NET CLI 命令列工具輸入如下命令。

dotnet add package Microsoft.FeatureManagement

為了能夠在專案中用上 功能管理,需要在 ConfigureServices 方法下進行 service 注入,如下程式碼所示:

image

有一點要注意:功能管理 中的 功能開關 讀取的值來自於配置檔案,如果你想讓 功能開關 的值來源於 Configuration 檔案的不同節點,必須在 service 註冊時單獨指定一下。

image

為了能夠在 Blazor Wassembly中用上 功能管理(feature management),需要通過依賴注入的方式將其注入到 Blazor 元件中:

image

使用時呼叫IFeatureManager 介面的方法IsEnabledAsync,程式碼如下:

image

用法很簡單吧,可以看到 .NET 的對 功能管理 提供了開箱即用的支援, 這確實是一個非常實用的特性,更多關於該 知識點 的介紹,可參考官網:https://docs.microsoft.com/en-us/azure/azure-app-configuration/use-feature-flags-dotnet-core

從這篇小文章你可以感受到使用blazor 可以將.NET的整個生態融入到前端,這樣的blazor 是為你賦能。文章裡面的截圖程式碼參見:https://github.com/geffzhang/Abp.BootstrapTheme 


相關文章