Lussatite.FeatureManagement
0.2.0
See the version list below for details.
dotnet add package Lussatite.FeatureManagement --version 0.2.0
NuGet\Install-Package Lussatite.FeatureManagement -Version 0.2.0
<PackageReference Include="Lussatite.FeatureManagement" Version="0.2.0" />
paket add Lussatite.FeatureManagement --version 0.2.0
#r "nuget: Lussatite.FeatureManagement, 0.2.0"
// Install Lussatite.FeatureManagement as a Cake Addin
#addin nuget:?package=Lussatite.FeatureManagement&version=0.2.0
// Install Lussatite.FeatureManagement as a Cake Tool
#tool nuget:?package=Lussatite.FeatureManagement&version=0.2.0
Lussatite.FeatureManagement
A light implementation of Microsoft.FeatureManagement interfaces.
- Compatibility with IFeatureManager and IFeatureManagerSnapshot. You should be able to upgrade to the full Microsoft.FeatureManagement NuGet package later.
- A basic implementation that is simpler to wire up then the full Microsoft.FeatureManagement package. This can be useful in situations where there's no support for the AddFeatureManagement() method in your application.
- A few read-only
ISessionManager
implementations. Note that this is not quite what Microsoft had in mind forISessionManager
, but it serves as a good extension point for injecting values into the IFeatureManager result.
Quickstart
Take a dependency on
Lussatite.FeatureManagement
andLussatite.FeatureManagement.LazyCache
.Define a set of string constants for the names of your features. Look at the various static TestFeatures.cs files for ideas.
Create a value provider by implementing ISessionManager or use one or more of the
Lussatite.FeatureManagement.SessionManagers.*
packages. Note that Lussaite.FeatureManagement does not write back to the session manager (unlike the Microsoft.FeatureManagement implementation).Wire-up the following in your IoC/DI container:
- Session manager classes will need to be injected into the feature manager manually, since order does matter.
LussatiteLazyCacheFeatureManager
asIFeatureManagerSnapshot
(usually per-request / scoped lifetime).
Inject
IFeatureManagerSnapshot
into your controller or service classes.await _feature.IsEnabledAsync(string feature)
to obtain the status of the feature flag.
Packages
Lussatite.FeatureManagement:
Target: .NET Standard 2.0
LussatiteFeatureManager
: A basic implementation ofIFeatureManager
.- This does not implement the
Task<bool> IsEnabledAsync<TContext>(string feature, TContext context)
method. - This does not make any calls back to the ISessionManager
Task SetAsync(string featureName, bool enabled)
method.
Lussatite.FeatureManagement.LazyCache:
Target: .NET Standard 2.0
LussatiteLazyCacheFeatureManager
: A cachingIFeatureManagerSnapshot
implementation that usesLazyCache
.- This does not implement the
Task<bool> IsEnabledAsync<TContext>(string feature, TContext context)
method. - This does not make any calls back to the ISessionManager
Task SetAsync(string featureName, bool enabled)
method.
Lussatite.FeatureManagement.SessionManagers.Core:
Target: .NET Core 3.1 (also compatible with .NET 5+)
ConfigurationValueSessionManager
: A read-only ISessionManager implementation that usesIConfiguration
to obtain its values.SqlSessionManager
: A read-only ISessionManager implementation that uses the user-providedDbCommand
to obtain its values.
Lussatite.FeatureManagement.SessionManagers.Framework:
Target: .NET Framework 4.8
ConfigurationValueSessionManager
: A read-only ISessionManager implementation that uses the static classConfigurationManager
to obtain its values.SqlSessionManager
: A read-only ISessionManager implementation that uses the user-providedDbCommand
to obtain its values.
Build Status
References
Product | Versions |
---|---|
.NET | net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows |
.NET Core | netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1 |
.NET Standard | netstandard2.0 netstandard2.1 |
.NET Framework | net461 net462 net463 net47 net471 net472 net48 net481 |
MonoAndroid | monoandroid |
MonoMac | monomac |
MonoTouch | monotouch |
Tizen | tizen40 tizen60 |
Xamarin.iOS | xamarinios |
Xamarin.Mac | xamarinmac |
Xamarin.TVOS | xamarintvos |
Xamarin.WatchOS | xamarinwatchos |
-
.NETStandard 2.0
- Microsoft.FeatureManagement (>= 2.5.1)
- System.Linq.Async (>= 4.1.1)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Lussatite.FeatureManagement:
Package | Downloads |
---|---|
RimDev.AspNetCore.FeatureFlags
A library for strongly typed feature flags in .NET Standard 2.0. |
|
Lussatite.FeatureManagement.SessionManagers
A set of ISessionManager implementations for .NET Standard 2.0 which return boolean null/true/false values. |
|
Lussatite.FeatureManagement.SessionManagers.Framework
A set of ISessionManager implementations for .NET Framework 4.8 which return boolean null/true/false values. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.6.3 | 2,218 | 6/29/2022 |
1.6.2 | 1,256 | 6/28/2022 |
1.6.1 | 631 | 6/28/2022 |
1.6.0 | 1,030 | 6/15/2022 |
1.5.0 | 630 | 6/9/2022 |
1.4.1 | 871 | 5/24/2022 |
1.4.0 | 353 | 5/24/2022 |
1.3.1 | 360 | 5/23/2022 |
1.3.0 | 355 | 5/22/2022 |
1.2.0 | 221 | 5/20/2022 |
1.1.0 | 213 | 5/19/2022 |
1.0.0 | 233 | 5/16/2022 |
0.2.1 | 235 | 5/15/2022 |
0.2.0 | 997 | 5/14/2022 |
0.1.1 | 249 | 5/12/2022 |
0.1.0 | 243 | 5/11/2022 |