微軟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 注入,如下代碼所示:
有一點要注意:功能管理
中的 功能開關
讀取的值來自於配置文件,如果你想讓 功能開關
的值來源於 Configuration 文件的不同節點,必須在 service 註冊時單獨指定一下。
爲了能夠在 Blazor Wassembly中用上 功能管理(feature management)
,需要通過依賴注入的方式將其注入到 Blazor 組件中:
使用時調用IFeatureManager 接口的方法IsEnabledAsync,代碼如下:
用法很簡單吧,可以看到 .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