Bagikan melalui


Mengaktifkan fitur kondisional dengan filter kustom dalam aplikasi ASP.NET Core

Bendera fitur dapat menggunakan filter fitur untuk mengaktifkan fitur secara kondisional. Untuk informasi selengkapnya tentang filter fitur, lihat Mengaktifkan fitur kondisional dengan filter fitur.

Panduan ini menunjukkan kepada Anda cara menerapkan filter fitur kustom di aplikasi ASP.NET Core dan menggunakan filter fitur untuk mengaktifkan fitur secara kondisional.

Prasyarat

Menerapkan filter fitur kustom

Di penyimpanan App Configuration Anda, bendera fitur Beta memiliki filter fitur kustom bernama Random. Filter tersebut memiliki Percentage parameter . Untuk menerapkan filter fitur, Anda mengaktifkan bendera fitur Beta berdasarkan kemungkinan yang ditentukan oleh parameter Percentage.

  1. Buka folder yang berisi proyek aplikasi ASP.NET Core dari panduan memulai cepat manajemen fitur yang tercantum dalam Prasyarat.

  2. Tambahkan file RandomFilter.cs yang berisi kode berikut:

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

    Kelas RandomFilter dalam kode sebelumnya mengimplementasikan IFeatureFilter antarmuka dari Microsoft.FeatureManagement pustaka. Antarmuka IFeatureFilter memiliki satu metode bernama EvaluateAsync, yang dipanggil setiap kali bendera fitur dievaluasi. Di EvaluateAsync, filter fitur memungkinkan bendera fitur dengan mengembalikan true.

    Dalam kode ini, kelas RandomFilter diberikan FilterAliasAttribute, yang memberikan filter Anda alias Random. Alias tersebut cocok dengan nama filter di bendera fitur Beta di App Configuration.

  3. Buka file Program.cs. Daftarkan RandomFilter dengan menambahkan panggilan ke metode AddFeatureFilter, seperti yang diperlihatkan dalam kode di bawah ini.

    // 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
    // ... ...
    

Menerapkan filter fitur

  1. Buat aplikasi Anda dengan menggunakan dotnet build perintah . Kemudian jalankan dengan menggunakan dotnet run.

  2. Dalam output dari perintah dotnet run, temukan URL yang digunakan aplikasi web untuk mendengarkan. Buka browser dan buka URL tersebut.

  3. Muat ulang peramban beberapa kali. Menu Beta terkadang muncul di halaman web, dan terkadang tidak. Bendera fitur Beta tidak diaktifkan dan dinonaktifkan secara manual. Variasi disebabkan oleh angka acak yang RandomFilter dihasilkan implementasi EvaluateAsync ketika bendera fitur dievaluasi.

    Cuplikan layar browser yang terbuka untuk localhost:7207. Teks di halaman menyatakan Data dari Azure App Configuration. Tidak ada menu Beta yang terlihat.

    Tangkapan layar browser yang terbuka ke localhost:7207. Teks di halaman menyatakan Data dari Azure App Configuration. Menu Beta disorot.

Langkah berikutnya

Untuk mengetahui selengkapnya tentang filter fitur bawaan, lanjutkan ke dokumen berikut:

Untuk ikhtisar fitur pada pustaka manajemen fitur .NET, silakan lanjut ke dokumen berikut.