Partager via


Activer les fonctionnalités conditionnelles avec un filtre personnalisé dans une application ASP.NET Core

Les indicateurs de fonctionnalités peuvent utiliser des filtres de fonctionnalités pour activer des fonctionnalités de manière conditionnelle. Pour plus d’informations sur les filtres de fonctionnalités, consultez Activer les fonctionnalités conditionnelles avec des filtres de fonctionnalités.

Ce guide vous montre comment implémenter un filtre de fonctionnalités personnalisé dans une application ASP.NET Core et utiliser le filtre de fonctionnalités pour activer les fonctionnalités de manière conditionnelle.

Prérequis

Implémenter un filtre de fonctionnalité personnalisé

Dans votre magasin App Configuration, l’indicateur de fonctionnalité bêta a un filtre de fonctionnalités personnalisé nommé Random. Ce filtre a un Percentage paramètre. Pour implémenter le filtre de fonctionnalités, vous activez l’indicateur de fonctionnalité bêta en fonction de la chance définie par le Percentage paramètre.

  1. Accédez au dossier qui contient le projet d’application ASP.NET Core à partir du guide de démarrage rapide de gestion des fonctionnalités répertorié dans Prérequis.

  2. Ajoutez un fichier RandomFilter.cs qui contient le code suivant :

    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);
            }
        }
    }
    

    La RandomFilter classe du code précédent implémente l’interface IFeatureFilter à partir de la Microsoft.FeatureManagement bibliothèque. L’interface IFeatureFilter a une méthode unique nommée EvaluateAsync, appelée chaque fois qu’un indicateur de fonctionnalité est évalué. Dans EvaluateAsync, un filtre de fonctionnalités active un indicateur de fonctionnalité en retournant true.

    Dans ce code, la RandomFilter classe est décorée avec FilterAliasAttribute, ce qui donne à votre filtre l’alias Random. Cet alias correspond au nom du filtre dans l’indicateur de fonctionnalité Bêta dans App Configuration.

  3. Ouvrez le fichier Program.cs. Enregistrez RandomFilter en ajoutant un appel à la méthode AddFeatureFilter, comme indiqué dans le code suivant :

    // Existing code in Program.cs
    // ... ...
    
    // Add feature management to the container of services.
    builder.Services.AddFeatureManagement()
                    .AddFeatureFilter<RandomFilter>();
    
    // The rest of the existing code in Program.cs
    // ... ...
    

Appliquer le filtre de fonctionnalités

  1. Générez votre application à l’aide de la dotnet build commande. Exécutez-la ensuite en utilisant dotnet run.

  2. Dans la sortie de la dotnet run commande, recherchez une URL sur laquelle l’application web écoute. Ouvrez un navigateur et accédez à cette URL.

  3. Actualisez le navigateur à plusieurs reprises. Le menu bêta s’affiche parfois sur la page web, et parfois il ne le fait pas. L’indicateur de fonctionnalité bêta n’est pas activé et désactivé manuellement. La variation est due au nombre aléatoire généré par l’implémentation RandomFilter de EvaluateAsync lorsque l’indicateur de fonctionnalité est évalué.

    Capture d’écran d’un navigateur ouvert à localhost :7207. Le texte de la page indique les données d’Azure App Configuration. Aucun menu bêta n’est visible.

    Capture d’écran d’un navigateur ouvert à localhost :7207. Le texte de la page indique les données d’Azure App Configuration. Un menu bêta est mis en surbrillance.

Étapes suivantes

Pour en savoir plus sur les filtres de fonctionnalités intégrés, passez aux documents suivants :

Pour l’aperçu complet des fonctionnalités de la bibliothèque de gestion des fonctionnalités .NET, consultez le document suivant :