Tutorial: Aktivieren bedingter Features mit einem benutzerdefinierten Filter in einer ASP.NET Core-Anwendung
Featureflags können Featurefilter verwenden, um Features bedingt zu aktivieren. Weitere Informationen zu Featurefiltern erhalten Sie im Tutorial: Aktivieren von bedingten Features mit Featurefiltern.
Das in diesem Tutorial verwendete Beispiel basiert auf der ASP.NET Core-Anwendung, die im Schnellstart der Featureverwaltung eingeführt wurde. Bevor Sie fortfahren, führen Sie den Schnellstart aus, um eine ASP.NET Core-Anwendung mit einem Beta-Featureflag zu erstellen. Nach Abschluss müssen Sie dem Beta-Featureflag in Ihrem App Configuration-Speicher einen benutzerdefinierten Featurefilter hinzufügen.
In diesem Tutorial erfahren Sie, wie Sie einen benutzerdefinierten Featurefilter implementieren und den Featurefilter verwenden, um Features bedingt zu aktivieren.
Voraussetzungen
- Erstellen Sie eine ASP.NET Core-App mit einem Featureflag.
- Hinzufügen eines benutzerdefinierten Featurefilters zum Featureflag
Implementieren eines benutzerdefinierten Featurefilters
Sie haben einen benutzerdefinierten Featurefilter namens Random mit einem Percentage-Parameter für Ihr Beta-Featureflag in den Voraussetzungen hinzugefügt. Als Nächstes implementieren Sie den Featurefilter, um das Beta-Featureflag basierend auf der durch den Percentage-Parameter definierten Chance zu aktivieren.
Fügen Sie eine Datei
RandomFilter.cs
mit dem folgenden Code hinzu.using Microsoft.FeatureManagement; namespace TestAppConfig { [FilterAlias("Random")] public class RandomFilter : IFeatureFilter { private readonly Random _random; public RandomFilter() { _random = new Random(); } public Task<bool> EvaluateAsync(FeatureFilterEvaluationContext context) { int percentage = context.Parameters.GetSection("Percentage").Get<int>(); int randomNumber = _random.Next(100); return Task.FromResult(randomNumber <= percentage); } } }
Sie haben eine
RandomFilter
-Klasse hinzugefügt, die dieIFeatureFilter
-Schnittstelle aus derMicrosoft.FeatureManagement
-Bibliothek implementiert. DieIFeatureFilter
-Schnittstelle verfügt über eine einzelne Methode namensEvaluateAsync
, die immer dann aufgerufen wird, wenn ein Featureflag ausgewertet wird. InEvaluateAsync
aktiviert ein Featurefilter ein Featureflag, indemtrue
zurückgegeben wird.Sie haben dem
RandomFilter
einFilterAliasAttribute
hinzugefügt, um Ihrem Filter einen Alias Random zuzuweisen, der dem Filternamen entspricht, den Sie im Beta-Featureflag in Azure App Configuration festgelegt haben.Öffnen Sie die Datei Program.cs, und registrieren Sie den
RandomFilter
, indem Sie dieAddFeatureFilter
-Methode aufrufen.// The rest of existing code in Program.cs // ... ... // Add feature management to the container of services. builder.Services.AddFeatureManagement() .AddFeatureFilter<RandomFilter>(); // The rest of existing code in Program.cs // ... ...
Featurefilter in Aktion
Starten Sie die Anwendung neu, und aktualisieren Sie den Browser ein paar Mal. Ohne das Featureflag manuell umzuschalten, sehen Sie, dass das Beta-Menü manchmal angezeigt wird und manchmal nicht.
Nächste Schritte
Wenn Sie mehr über die eingebauten Featurefilter erfahren möchten, fahren Sie mit den folgenden Tutorials fort.
Eine vollständige Übersicht über die .NET-Featureverwaltungsbibliothek finden Sie im folgenden Dokument.