Hızlı Başlangıç: ASP.NET Core uygulamasına özellik bayrakları ekleme

Bu hızlı başlangıçta, ASP.NET Core kullanarak bir ASP.NET Core uygulamasında özellik Azure Uygulama Yapılandırması. Tüm özellik bayraklarınızı merkezi olarak depolamak ve bunların eyaletlerini kontrol etmek için App Configuration hizmetini kullanacağız.

.NET Core Özellik Yönetimi kitaplıkları, kapsamlı özellik bayrağı desteğiyle çerçeveyi genişletmektedir. Bu kitaplıklar .NET Core yapılandırma sistemi üzerine inşa edilmiştir. .NET Core yapılandırma sağlayıcısı aracılığıyla Uygulama Yapılandırması ile sorunsuz bir şekilde tümleştirildi.

Önkoşullar

Uygulama Yapılandırma deposu oluşturma

  1. Yeni bir uygulama yapılandırma deposu oluşturmak için Azure Portaloturum açın. Giriş sayfasının sol üst köşesinde kaynak oluştur' u seçin. Market 'te Ara kutusuna uygulama yapılandırması ' nı girin ve ENTER' u seçin.

    Uygulama yapılandırması ara

  2. Arama sonuçlarından uygulama yapılandırması ' nı seçin ve ardından Oluştur' u seçin.

    Oluştur’u seçin

  3. Uygulama yapılandırması oluştur bölmesinde, aşağıdaki ayarları girin:

    Ayar Önerilen değer Açıklama
    Abonelik Aboneliğiniz Uygulama yapılandırmasını test etmek için kullanmak istediğiniz Azure aboneliğini seçin. Hesabınızda yalnızca bir abonelik varsa, bu otomatik olarak seçilir ve abonelik listesi gösterilmez.
    Kaynak grubu AppConfigTestResources Uygulama yapılandırma deposu kaynağınız için bir kaynak grubu seçin veya oluşturun. Bu grup, kaynak grubunu silerek aynı anda silmek isteyebileceğiniz birden çok kaynağı düzenlemek için yararlıdır. Daha fazla bilgi için Azure kaynaklarınızı yönetmek için kaynak gruplarını kullanma konusunu inceleyin.
    Kaynak adı Genel olarak benzersiz bir ad Uygulama yapılandırma deposu kaynağı için kullanılacak benzersiz bir kaynak adı girin. Ad, 5 ila 50 karakter arasında bir dize olmalı ve yalnızca rakam, harf ve - karakter içermelidir. Ad, karakteriyle başlayamaz veya bitemez - .
    Konum Central US Uygulama yapılandırma deponuzın barındırıldığı coğrafi konumu belirtmek için konum ' i kullanın. En iyi performansı elde etmek için, kaynağı uygulamanızın diğer bileşenleriyle aynı bölgede oluşturun.
    Fiyatlandırma katmanı Ücretsiz İstediğiniz fiyatlandırma katmanını seçin. Daha fazla bilgi için bkz. uygulama yapılandırma fiyatlandırma sayfası.
  4. Ayarlarınızı doğrulamak için gözden geçir + oluştur ' u seçin.

  5. Oluştur’u seçin. Dağıtım birkaç dakika sürebilir.

  6. Dağıtım bittikten sonra uygulama yapılandırma kaynağına gidin. Ayarlar > Erişim anahtarları öğesini seçin. Birincil salt okunurdur anahtar bağlantı dizesini bir yere unutmayın. Uygulamanızı oluşturduğunuz uygulama yapılandırma deposuyla iletişim kuracak şekilde yapılandırmak için bu bağlantı dizesini daha sonra kullanacaksınız.

  1. Beta adlı bir özellik > bayrağı > eklemek için İşlemler Özellik Yöneticisi Ekle'yi seçin.

    Beta adlı özellik bayrağını etkinleştirme

    Etiket'i şimdilik boş bırakın. Yeni özellik bayrağını kaydetmek için Uygula'ya tıklayın.

ASP.NET Core web uygulaması oluşturma

.NET Core komut satırı arabirimini (CLI) kullanarak yeni bir MVC ASP.NET Core oluşturun. Visual Studio yerine .NET Core CLI kullanmanın avantajı, .NET Core CLI, macOS ve Linux platformlarında Windows kullanılabilir durumdadır.

Yeni bir TestFeatureFlags klasöründe ASP.NET Core MVC projesi oluşturmak için aşağıdaki komutu çalıştırın:

dotnet new mvc --no-https --output TestFeatureFlags

Gizli dizi Yöneticisi ekleme

Gizli dizi Yöneticisi olarak adlandırılan bir araç, geliştirme çalışması için hassas verileri proje ağacınızdaki dışında depolar. Bu yaklaşım, uygulama gizli dizilerini kaynak kodunun içinde yanlışlıkla paylaşmayı önlemeye yardımcı olur. ASP.NET Core projesinde gizli yöneticinin kullanımını etkinleştirmek için aşağıdaki adımları izleyin:

Projenin kök dizinine gidin ve projede gizli dizileri etkinleştirmek için aşağıdaki komutu çalıştırın:

dotnet user-secrets init

UserSecretsIdGUID içeren bir öğe . csproj dosyasına eklenir:

<Project Sdk="Microsoft.NET.Sdk.Web">
    
    <PropertyGroup>
        <TargetFramework>net5.0</TargetFramework>
        <UserSecretsId>79a3edd0-2092-40a2-a04d-dcb46d5ca9ed</UserSecretsId>
    </PropertyGroup>

</Project>

İpucu

Gizli yönetici hakkında daha fazla bilgi edinmek için bkz. ASP.NET Core geliştirme sırasında uygulama gizli dizileri Için güvenli depolama.

Bağlan Yapılandırma deposuna yapılandırma

  1. Aşağıdaki komutları çalıştırarak Microsoft.Azure.AppConfiguration.AspNetCore ve Microsoft.FeatureManagement.AspNetCore NuGet paketlerini yükleyin:

    dotnet add package Microsoft.Azure.AppConfiguration.AspNetCore
    
    dotnet add package Microsoft.FeatureManagement.AspNetCore
    
  2. Aşağıdaki komutu .csproj dosyasıyla aynı dizinde çalıştırın. Komut, App Configuration store'uz için bağlantı ConnectionStrings:AppConfig dizesini depolar adlı gizli diziyi depolamak için Gizli Dizi Yöneticisi'ni kullanır. yer <your_connection_string> tutucusunu Uygulama Yapılandırma mağazanıza bağlı bağlantı dizesiyle değiştirin. Bağlantı dizesini erişim anahtarları altında, bağlantı dizesini Azure portal.

    dotnet user-secrets set ConnectionStrings:AppConfig "<your_connection_string>"
    

    Gizli Gizli Yönetici yalnızca web uygulamasını yerel olarak test etmek için kullanılır. Uygulama Azure App Service'a dağıtıldığında,bağlantı dizesini depolamak için gizli dizi App Service yerine App Service Dizeleri uygulama ayarını kullanın.

    .NET Core Yapılandırma API'sini kullanarak bu gizli gizli bilgilere erişin. İki nokta üst üste ( : ) tüm desteklenen platformlarda Yapılandırma API'si ile yapılandırma adı içinde çalışır. Daha fazla bilgi için bkz. Yapılandırma anahtarları ve değerleri.

  3. Program.cs içinde, yöntemini CreateWebHostBuilder çağırarak Uygulama Yapılandırması'nın kullanımı için yöntemini AddAzureAppConfiguration güncelleştirin.

    Önemli

    CreateHostBuilder , CreateWebHostBuilder .NET Core 3.x'te yerini almaktadır. Ortamınıza göre doğru söz dizimini seçin.

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
                webBuilder.ConfigureAppConfiguration(config =>
                {
                    var settings = config.Build();
                    var connection = settings.GetConnectionString("AppConfig");
                    config.AddAzureAppConfiguration(options =>
                        options.Connect(connection).UseFeatureFlags());
                }).UseStartup<Startup>());
    

    Önceki değişiklikle, Uygulama Yapılandırması için yapılandırma sağlayıcısı .NET Core Yapılandırma API'sini kaydettirdi.

  4. Startup.cs içinde, .NET Core özellik yöneticisine bir başvuru ekleyin:

    using Microsoft.FeatureManagement;
    
  5. yöntemini Startup.ConfigureServices çağırarak özellik bayrağı desteği eklemek için yöntemini AddFeatureManagement güncelleştirin. İsteğe bağlı olarak, çağırarak özellik bayraklarıyla kullanılacak herhangi bir filtreyi AddFeatureFilter<FilterType>() dahilebilirsiniz:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllersWithViews();
        services.AddFeatureManagement();
    }
    
  6. Kök proje dizinine aşağıdaki kodla bir MyFeatureFlags.cs dosyası ekleyin:

    namespace TestFeatureFlags
    {
        public enum MyFeatureFlags
        {
            Beta
        }
    }
    
  7. Controllers dizinine aşağıdaki kodla bir BetaController.cs dosyası ekleyin:

    using Microsoft.AspNetCore.Mvc;
    using Microsoft.FeatureManagement;
    using Microsoft.FeatureManagement.Mvc;
    
    namespace TestFeatureFlags.Controllers
    {
        public class BetaController: Controller
        {
            private readonly IFeatureManager _featureManager;
    
            public BetaController(IFeatureManagerSnapshot featureManager) =>
                _featureManager = featureManager;
    
            [FeatureGate(MyFeatureFlags.Beta)]
            public IActionResult Index() => View();
        }
    }
    
  8. Views/_ViewImports.cshtml içinde, bir yönerge kullanarak özellik yöneticisi Etiket Yardımcısı'na @addTagHelper kaydolabilirsiniz:

    @addTagHelper *, Microsoft.FeatureManagement.AspNetCore
    

    Yukarıdaki kod, Projenin <feature> .cshtml dosyalarında Etiket Yardımcı'sı'nın kullanılmaktadır.

  9. Paylaşılan _Layout görünümler dizininde _Layout.cshtml \ dosyasını açın. altındaki <nav> çubuk kodunu <body> > <header> bulun. Aşağıdaki <feature> vurgulanan satırlarda gösterildiği gibi Giriş ve Gizlilik gezinti çubuğu öğeleri arasına yeni bir etiket ekleyin.

    ms.lasthandoff: 03/29/2021
    ms.locfileid: "98663021"
    ---
    ```html
     //...
    <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-controller="Home" asp-action="Index">TestFeatureFlags</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-controller="Home" asp-action="Index">Home</a>
                    </li>
                    <feature name="Beta">
                    <li class="nav-item">
                        <a class="nav-link text-dark" asp-area="" asp-controller="Beta" asp-action="Index">Beta</a>
                    </li>
                    </feature>
                    <li class="nav-item">
                        <a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
    
  10. Aşağıdaki işaretlemeyi içeren bir Views/Beta dizini ve Index.cshtml dosyası oluşturun:

    @{
        ViewData["Title"] = "Beta Home Page";
    }
    
    <h1>This is the beta website.</h1>
    

Uygulamayı yerel olarak derleme ve çalıştırma

  1. Uygulamayı derlemek için .NET Core CLI kabuğunda aşağıdaki komutu çalıştırın:

    dotnet build
    
  2. Derleme başarıyla tamamlandıktan sonra web uygulamasını yerel olarak çalıştırmak için aşağıdaki komutu çalıştırın:

    dotnet run
    
  3. Bir tarayıcı penceresi açın ve yerel olarak http://localhost:5000 barındırılan web uygulamasının varsayılan URL'si olan adresine gidin. Web önizlemesinde çalışıyorsanız web Azure Cloud Shell düğmesini ve ardından Yapılandır'ı seçin. İstendiğinde 5000 bağlantı noktasını seçin.

    Web Önizleme düğmesini bulma

    Tarayıcınız aşağıdaki görüntüye benzer bir sayfa görüntülemeli.

    Değişiklik öncesinde yerel hızlı başlangıç uygulaması

  4. Azure Portal oturum açın. Tüm kaynaklar'ı seçin ve hızlı başlangıçta oluşturduğunuz Uygulama Yapılandırma mağazası örneğini seçin.

  5. Özellik yöneticisi'ni seçin.

  6. Etkin'in altındaki onay kutusunu seçerek Beta bayrağını etkinleştirin.

  7. Komut kabuğuna geri dön. dotnet Ctrl+Ctuşlarına basarak çalışan işlemi iptal edin. kullanarak uygulamanızı yeniden dotnet run başlatın.

  8. Yeni yapılandırma ayarlarını görmek için tarayıcı sayfasını yenileyin.

    Değişiklik sonrasında yerel hızlı başlangıç uygulaması

Kaynakları temizleme

Bu makalede oluşturulan kaynakları kullanmaya devam etmek istemiyorsanız, ücretlendirmemek için burada oluşturduğunuz kaynak grubunu silin.

Önemli

Silinen kaynak grupları geri alınamaz. Kaynak grubu ve içindeki tüm kaynaklar kalıcı olarak silinir. Yanlış kaynak grubunu veya kaynakları yanlışlıkla silmediğinizden emin olun. Bu makaleye ait kaynakları tutmak istediğiniz diğer kaynakları içeren bir kaynak grubu içinde oluşturduysanız, kaynak grubunu silmek yerine her kaynağı ilgili bölmeden ayrı ayrı silin.

  1. Azure Portaloturum açın ve kaynak grupları' nı seçin.
  2. Ada göre filtrele kutusuna kaynak grubunuzun adını girin.
  3. Sonuç listesinde, bir genel bakışı görmek için kaynak grubu adını seçin.
  4. Kaynak grubunu sil'i seçin.
  5. Kaynak grubunun silinmesini onaylamanız istenir. Onaylamak için kaynak grubunuzun adını girin ve Sil' i seçin.

Birkaç dakika sonra kaynak grubu ve tüm kaynakları silinir.

Sonraki adımlar

Bu hızlı başlangıçta, yeni bir Uygulama Yapılandırma deposu oluşturdunız ve bunu Özellik Yönetimi kitaplıkları aracılığıyla ASP.NET Core bir web uygulamasındaki özellikleri yönetmek için kullandınız.