Feature toggling using ASP.NET
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).
You can download and install Visual studio Community from here, and create a new project. To add the FeatureToggle package to your solution type
PM> Install-Package FeatureToggle
inside the Package manager console.
General pattern
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:
Final thought
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.
Cheers 🙂