This project shows various aspects of incorporating Feature Flags into a project.
This is an ASP.NET Web API project that exposes a couple simple endpoints for testing different ways to setup feature flags.
if (await _featureManager.IsEnabledAsync("ShowWeather"))
{
// Whatever you do when the feature is enabled
}appsettings.json
{
"FeatureManagement": {
"ShowWeather": true
}
}- General usage of the provided Microsoft.FeatureManagement.AspNetCore package
- Configuration based setup of Feature Flags
- Time & Percentage based Feature Filters
- Custom Feature Filters
- Custom abstraction over Microsoft provided library
- Azure App Configuration Feature Management integration
OpenFeature is an open specification that provides a vendor-agnostic, community-driven API for feature flagging that works with your favorite feature flag management tool or in-house solution. OpenFeature is designed to work with any feature flag management tool or in-house solution. This enables you to switch between platforms or consolidate multiple platforms much more easily. feature flags. They provide a .NET SDK (Docs) that is used in the example project within this repo.
LaunchDarkly is a feature management platform that allows software development teams to deliver to their customers. They provide a dotnet SDK to integrate with their platform (Docs). The included example project uses a second library project to abstract away the Launch Darkly SDK just in case another feature management service is to be used in the future.
Split is a unified feature flagging and experimentation platform enabling product and engineering teams to reduce cycle times, mitigate release risk, and maximize business impact throughout the Feature Delivery Lifecycle. They provide a dotnet SDK to integrate with their platform (Docs). The included example project uses a second library project to abstract away the Split SDK just in case another feature management service is to be used in the future.
Flagsmith provides an all-in-one platform for developing, implementing, and managing your feature flags. They provide a dotnet SDK to integrate with their platform (Docs). The included example project uses a second library project to abstract away the Flagsmith SDK just in case another feature management service is to be used in the future.