Masterly.BusinessRules.FeatureManagement
3.0.0
dotnet add package Masterly.BusinessRules.FeatureManagement --version 3.0.0
NuGet\Install-Package Masterly.BusinessRules.FeatureManagement -Version 3.0.0
<PackageReference Include="Masterly.BusinessRules.FeatureManagement" Version="3.0.0" />
<PackageVersion Include="Masterly.BusinessRules.FeatureManagement" Version="3.0.0" />
<PackageReference Include="Masterly.BusinessRules.FeatureManagement" />
paket add Masterly.BusinessRules.FeatureManagement --version 3.0.0
#r "nuget: Masterly.BusinessRules.FeatureManagement, 3.0.0"
#:package Masterly.BusinessRules.FeatureManagement@3.0.0
#addin nuget:?package=Masterly.BusinessRules.FeatureManagement&version=3.0.0
#tool nuget:?package=Masterly.BusinessRules.FeatureManagement&version=3.0.0
Masterly.BusinessRules.FeatureManagement
Drives feature-gated business rules from Microsoft.FeatureManagement flags and variants, so a rule can be off, in shadow mode for a percentage of users, or enforced, using the same flags as the rest of your application.
This is a companion package of Masterly.BusinessRules, a composable business-rule engine for .NET.
Install
dotnet add package Masterly.BusinessRules.FeatureManagement
- Target framework:
netstandard2.1(.NET Core 3.0+, .NET 5+) - Dependencies:
Masterly.BusinessRules,Microsoft.FeatureManagement4.8.0
Example
using Masterly.BusinessRules;
using Masterly.BusinessRules.FeatureManagement;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.FeatureManagement;
public static class Registration
{
// Registers one provider as IRuleFeatureFlagProvider and IAsyncRuleFeatureFlagProvider.
public static IServiceCollection AddRuleFeatureFlags(this IServiceCollection services)
{
services.AddFeatureManagement();
return services.AddBusinessRulesFeatureManagement();
}
}
public sealed class CheckoutRules
{
private readonly IAsyncRuleFeatureFlagProvider _flags;
public CheckoutRules(IAsyncRuleFeatureFlagProvider flags)
{
_flags = flags;
}
// The flag decides per evaluation whether the rule is off, shadowed or enforced.
// The stable key keeps each customer in the same rollout bucket.
public IAsyncBusinessRule CreditScore(IAsyncBusinessRule creditScoreRule)
{
return creditScoreRule.GatedBy("credit-score-v2", _flags, stableKey: context => context.Get<string>("customerId"));
}
}
A plain flag maps to enforced when on and off when off. A variant whose configuration is { "Mode": "Shadow", "Percent": 10 } runs the rule in shadow mode for 10% of keys: violations are reported to observers and ShadowResults, but never block.
Documentation
Variant conventions, targeting, lifetimes and shadow results are covered in the full documentation: https://github.com/a7mdfre7at/Masterly.BusinessRules#readme
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Masterly.BusinessRules (>= 3.0.0)
- Microsoft.FeatureManagement (>= 4.8.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.0.0 | 55 | 10/28/2026 |
Release notes for version 3.0.0: https://github.com/a7mdfre7at/Masterly.BusinessRules/blob/master/CHANGELOG.md