Feature toggling using ASP.NET
Feature toggling is a technique in software development that attempts to provide an alternative to maintaining multiple source-code branches (known as feature branches), such that the feature can be tested, even before it is completed and ready for release. — Wikipedia
I have already write about feature toggling in this article. The following post describes how to implementing feature toggling using ASP.NET.
Setup the project
The following demo uses the Feature Toggle NuGet package developed by Jason Roberts . At time of writing, the package is NOT compatible with ASP.NET Core version (details here: https://github.com/jason-roberts/FeatureToggle/issues/121).
PM> Install-Package FeatureToggle
inside the Package manager console.
The FeatureToggle package implements a strongly typed pattern, here’s an typical usage schema:
An strongly typed pattern avoid runtime execution errors caused by constant and magic strings. The IFeatureToggle interface defines the structure of the Toggle class, the IFeatureProvider defines the configuration location and the configuration store.
Creating Your Own Custom Toggles
To create your own custom toggle is necessary implement IFeatureToggle. You can also customize the provider behavoir by override the ToggleValueProvider property.
Using Feature Toggle
Using FeatureToggle plugin is very simple, you need create a new class in your project which extend one of Toggle classes, each Toggle class has a specific behavoir, here’s a list of default toggles. The following snippet uses the SimpleFeatureToggle class:
The SimpleFeatureToggle class reads the web.config file of the project to detect if the feature is enabled or not:
Here’s more information about the FeatureToggle package. It is very useful to implement standard feature toggling and custom feature toggling behaviours.
For an overview on Feature Toggling, click here.