Mulai cepat untuk menambahkan bendera fitur ke ASP.NET Core

Dalam mulai cepat ini, Anda akan membuat bendera fitur di Azure App Configuration dan menggunakannya untuk mengontrol ketersediaan halaman web baru secara dinamis di aplikasi ASP.NET Core tanpa memulai ulang atau menyebarkannya kembali.

Dukungan manajemen fitur memperluas fitur konfigurasi dinamis di App Configuration. Contoh dalam mulai cepat ini dibangun pada aplikasi ASP.NET Core yang diperkenalkan dalam tutorial konfigurasi dinamis. Sebelum melanjutkan, selesaikan mulai cepat, dan tutorial untuk membuat aplikasi ASP.NET Core dengan konfigurasi dinamis terlebih dahulu.

Prasyarat

Ikuti dokumen untuk membuat aplikasi ASP.NET Core dengan konfigurasi dinamis.

Membuat bendera fitur

Tambahkan bendera fitur yang disebut Beta ke penyimpanan App Configuration dan biarkan Label dan Deskripsi dengan nilai defaultnya. Untuk informasi selengkapnya tentang cara menambahkan bendera fitur ke penyimpanan menggunakan portal Azure atau CLI, buka Membuat bendera fitur.

Aktifkan bendera fitur bernama Beta

Menggunakan bendera fitur

  1. Navigasikan ke direktori proyek, dan jalankan perintah berikut untuk menambahkan referensi ke paket NuGet Microsoft.FeatureManagement.AspNetCore .

    dotnet add package Microsoft.FeatureManagement.AspNetCore
    
  2. Buka Program.cs, dan tambahkan panggilan ke metode di UseFeatureFlags dalam AddAzureAppConfiguration panggilan.

    // Load configuration from Azure App Configuration
    builder.Configuration.AddAzureAppConfiguration(options =>
    {
        options.Connect(connectionString)
               // Load all keys that start with `TestApp:` and have no label
               .Select("TestApp:*", LabelFilter.Null)
               // Configure to reload configuration if the registered sentinel key is modified
               .ConfigureRefresh(refreshOptions =>
                    refreshOptions.Register("TestApp:Settings:Sentinel", refreshAll: true));
    
        // Load all feature flags with no label
        options.UseFeatureFlags();
    });
    

    Tip

    Ketika tidak ada parameter yang diteruskan ke metode , parameter memuat UseFeatureFlags semua bendera fitur tanpa label di penyimpanan App Configuration Anda. Interval refresh default bendera fitur adalah 30 detik. Anda dapat menyesuaikan perilaku ini melalui FeatureFlagOptions parameter . Misalnya, cuplikan kode berikut hanya memuat bendera fitur yang dimulai dengan TestApp: dalam nama kuncinya dan memiliki dev label. Kode juga mengubah waktu interval refresh menjadi 5 menit. Perhatikan bahwa waktu interval refresh ini terpisah dari itu untuk nilai kunci reguler.

    options.UseFeatureFlags(featureFlagOptions =>
    {
        featureFlagOptions.Select("TestApp:*", "dev");
        featureFlagOptions.CacheExpirationInterval = TimeSpan.FromMinutes(5);
    });
    
  3. Tambahkan manajemen fitur ke kumpulan layanan aplikasi Anda dengan memanggil AddFeatureManagement.

    Perbarui Program.cs dengan kode berikut.

    // Existing code in Program.cs
    // ... ...
    
    builder.Services.AddRazorPages();
    
    // Add Azure App Configuration middleware to the container of services.
    builder.Services.AddAzureAppConfiguration();
    
    // Add feature management to the container of services.
    builder.Services.AddFeatureManagement();
    
    // Bind configuration "TestApp:Settings" section to the Settings object
    builder.Services.Configure<Settings>(builder.Configuration.GetSection("TestApp:Settings"));
    
    var app = builder.Build();
    
    // The rest of existing code in program.cs
    // ... ...
    

    Tambahkan using Microsoft.FeatureManagement; di bagian atas file jika tidak ada.

    Catatan

    Untuk aplikasi Blazor, lihat instruksi untuk mengaktifkan manajemen fitur sebagai layanan tercakup.

  4. Tambahkan halaman Razor kosong baru bernama Beta di bawah direktori Pages . Ini termasuk dua file Beta.cshtml dan Beta.cshtml.cs.

    Buka Beta.cshtml, dan perbarui dengan markup berikut:

    @page
    @model TestAppConfig.Pages.BetaModel
    @{
        ViewData["Title"] = "Beta Page";
    }
    
    <h1>This is the beta website.</h1>
    

    Buka Beta.cshtml.cs, dan tambahkan FeatureGate atribut ke BetaModel kelas . Atribut FeatureGate memastikan halaman Beta hanya dapat diakses saat bendera fitur Beta diaktifkan. Jika bendera fitur Beta tidak diaktifkan, halaman akan mengembalikan 404 Tidak Ditemukan.

    using Microsoft.AspNetCore.Mvc.RazorPages;
    using Microsoft.FeatureManagement.Mvc;
    
    namespace TestAppConfig.Pages
    {
        [FeatureGate("Beta")]
        public class BetaModel : PageModel
        {
            public void OnGet()
            {
            }
        }
    }   
    
  5. Buka Pages/_ViewImports.cshtml, dan daftarkan Pengelola fitur Tag Helper menggunakan direktif @addTagHelper :

    @addTagHelper *, Microsoft.FeatureManagement.AspNetCore
    

    Kode sebelumnya memungkinkan <feature> Tag Helper untuk digunakan pada file proyek .cshtml.

  6. Buka _Layout.cshtml di direktori Bersama Halaman\. Sisipkan tag baru <feature> di antara item bilah navigasi Beranda dan Privasi, seperti yang diperlihatkan di baris berikut ini.

    <nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
        <div class="container">
            <a class="navbar-brand" asp-area="" asp-page="/Index">TestAppConfigNet3</a>
            <button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".navbar-collapse" aria-controls="navbarSupportedContent"
                    aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse">
                <ul class="navbar-nav flex-grow-1">
                    <li class="nav-item">
                        <a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>
                    </li>
                    <feature name="Beta">
                        <li class="nav-item">
                            <a class="nav-link text-dark" asp-area="" asp-page="/Beta">Beta</a>
                        </li>
                    </feature>
                    <li class="nav-item">
                        <a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a>
                    </li>
                </ul>
            </div>
        </div>
    </nav>
    

    Tag <feature> memastikan item menu Beta hanya ditampilkan saat bendera fitur Beta diaktifkan.

Membangun dan menjalankan aplikasi secara lokal

  1. Untuk membangun aplikasi menggunakan .NET Core CLI, jalankan perintah berikut di shell perintah:

    dotnet build
    
  2. Setelah pembangunan berhasil diselesaikan, jalankan perintah berikut dengan tujuan menjalankan aplikasi secara lokal:

    dotnet run
    
  3. Buka jendela browser, dan buka URL yang diperlihatkan dalam output dotnet run. Browser Anda harus menampilkan halaman yang serupa dengan gambar di bawah ini.

    Bendera fitur sebelum diaktifkan

  4. Masuk ke portal Azure. Pilih Semua sumber daya, dan pilih penyimpanan App Configuration yang Anda buat sebelumnya.

  5. Pilih Pengelola fitur dan temukan bendera fitur Beta . Aktifkan bendera dengan memilih kotak centang di bawah Diaktifkan.

  6. Refresh browser beberapa kali. Ketika jendela waktu interval refresh berlalu, halaman akan ditampilkan dengan konten yang diperbarui.

    Bendera fitur setelah diaktifkan

  7. Pilih menu Beta. Ini akan membawa Anda ke situs web beta yang Anda aktifkan secara dinamis.

    Halaman bendera fitur beta

Membersihkan sumber daya

Jika Anda tidak ingin terus menggunakan sumber daya yang dibuat dalam artikel ini, hapus grup sumber daya yang Anda buat di sini untuk menghindari biaya.

Penting

Penghapusan grup sumber daya tidak bisa dipulihkan. Grup sumber daya dan semua sumber daya yang ada di dalamnya akan dihapus secara permanen. Pastikan Anda tidak menghapus grup atau sumber daya yang salah secara tidak sengaja. Jika Anda membuat sumber daya untuk artikel ini dalam grup sumber daya yang ada yang berisi sumber daya lain yang ingin disimpan, hapus setiap sumber daya satu per satu dari panelnya masing-masing, bukan menghapus grup sumber daya.

  1. Masuk ke portal Azure, lalu pilih Grup sumber daya.
  2. Dalam kotak Filter menurut nama, masukkan nama grup sumber daya Anda.
  3. Dalam daftar hasil, pilih nama grup sumber daya untuk melihat gambaran umum.
  4. Pilih Hapus grup sumber daya.
  5. Anda akan diminta untuk mengonfirmasi penghapusan grup sumber daya. Masukkan nama grup sumber daya Anda untuk mengonfirmasi, dan pilih Hapus.

Setelah beberapa saat, grup sumber daya dan semua sumber dayanya akan dihapus.

Langkah berikutnya

Dalam mulai cepat ini, Anda menambahkan kemampuan manajemen fitur ke aplikasi ASP.NET Core di atas konfigurasi dinamis. Pustaka Microsoft.FeatureManagement.AspNetCore menawarkan integrasi yang kaya untuk aplikasi ASP.NET Core, termasuk manajemen fitur dalam tindakan pengontrol MVC, halaman pisau cukur, tampilan, rute, dan middleware. Untuk informasi selengkapnya, lanjutkan ke tutorial berikut.

Meskipun bendera fitur memungkinkan Anda mengaktifkan atau menonaktifkan fungsionalitas di aplikasi, Anda mungkin ingin menyesuaikan bendera fitur berdasarkan logika aplikasi Anda. Filter fitur memungkinkan Anda mengaktifkan bendera fitur secara kondisional. Untuk informasi selengkapnya, lanjutkan ke tutorial berikut.

Azure App Configuration menawarkan filter fitur bawaan yang memungkinkan Anda mengaktifkan bendera fitur hanya selama periode tertentu atau ke audiens yang ditargetkan tertentu dari aplikasi Anda. Untuk informasi selengkapnya, lanjutkan ke tutorial berikut.

Untuk mengaktifkan kemampuan manajemen fitur untuk jenis aplikasi lain, lanjutkan ke tutorial berikut.

Untuk mempelajari selengkapnya tentang mengelola bendera fitur di Azure App Configuration, lanjutkan ke tutorial berikut.