Feature flags是我经常使用的东西,但在我正在开展的这个新项目开始之前,我从未真正考虑过它。
我通常在web.config文件中使用大量键来实现它,但这种方法有两个主要缺点:
克服这些问题的最佳方法是什么?
答案 0 :(得分:8)
我建议使用IoC来抽象出功能标志的实现 - 所有代码需要访问的内容都是IFeatures.IsEnabled("FeatureA")
。完成此操作后,您可以选择最明智的实施方案 - 以下一些建议:
答案 1 :(得分:4)
您不必在web.config
中存储功能标记。
一个选项是将它们存储在数据库中 - 这样可以在Web场中很好地工作。
请注意,使用功能标记,一旦您处于功能永久打开或关闭的位置(例如从widgetA转换到widgetB,并且您将不再需要任何widgetA代码),您应该删除功能和相关标志。这将有助于管理功能集。
答案 2 :(得分:0)
如果要向C#应用程序添加功能标志,我不建议创建自己的功能标志解决方案,而是使用可以直接与之集成的几种功能标志即服务提供程序之一C#开箱即用。
一种这样的解决方案是Floodgate,它具有适用于.Net的SDK,您可以立即使用应用程序中的功能标志来安装,启动和运行该软件。
免责声明,我叫Eugene,我是Floodgate的创始人。话虽如此,无论您决定使用哪种功能标记提供程序,我的建议都是相同的。