微软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