Snabbstart: Lägga till funktionsflaggor i en ASP.NET Core app
I den här snabbstarten skapar du en implementering från början till slut av funktionshanteringen i en ASP.NET Core-app med Azure App Configuration. Du använder tjänsten App Configuration att lagra alla funktionsflaggor centralt och kontrollera deras tillstånd.
.NET Core-biblioteken för funktionshantering utökar ramverket med omfattande stöd för funktionsflaggan. Dessa bibliotek bygger på .NET Core-konfigurationssystemet. De integreras sömlöst med App Configuration via dess .NET Core-konfigurationsprovider.
Förutsättningar
- Azure-prenumeration – skapa en kostnadsfritt
- .NET Core SDK
Skapa en App Configuration butik
Om du vill skapa ett nytt konfigurations Arkiv för appen loggar du in på Azure Portal. I det övre vänstra hörnet på Start sidan väljer du skapa en resurs. I rutan Sök på Marketplace anger du app-konfiguration och väljer RETUR.

Välj app-konfiguration från Sök resultaten och välj sedan skapa.

I fönstret skapa app-konfiguration anger du följande inställningar:
Inställning Föreslaget värde Beskrivning Prenumeration Din prenumeration Välj den Azure-prenumeration du vill använda för att testa App Configuration. Om ditt konto bara har en prenumeration väljs den automatiskt och ingen prenumerations lista visas. Resursgrupp AppConfigTestResources Välj eller skapa en resurs grupp för din app Configuration Store-resurs. Den här gruppen är användbar för att organisera flera resurser som du kanske vill ta bort samtidigt genom att ta bort resurs gruppen. Mer information finns i använda resurs grupper för att hantera dina Azure-resurser. Resurs namn Globalt unikt namn Ange ett unikt resurs namn som ska användas för appens konfigurations Arkiv resurs. Namnet måste vara en sträng mellan 5 och 50 tecken och får bara innehålla siffror, bokstäver och -tecknet. Namnet får inte börja eller sluta med-specialtecknet.Plats USA, centrala Använd Plats till att ange den geografiska plats där appkonfigurationsarkivets resurs finns. För bästa prestanda skapar du resursen i samma region som andra komponenter i ditt program. Prisnivå Kostnadsfri Välj önskad pris nivå. Mer information finns på sidan med prissättning för app-konfiguration. Välj Granska + skapa för att validera inställningarna.
Välj Skapa. Distributionen kan ta några minuter.
När distributionen är klar går du till appen konfigurations resurs. Välj Inställningar > Åtkomstnycklar. Anteckna den primära skrivskyddade nyckel anslutnings strängen. Du kommer att använda den här anslutnings strängen senare för att konfigurera programmet för att kommunicera med det app-konfigurations lager som du har skapat.
Välj Operations > Feature Manager Lägg till > för att lägga till en funktionsflagga med namnet Beta.

Lämna Etikett tom för tillfället. Välj Använd för att spara den nya funktionsflaggan.
Skapa en ASP.NET Core-webbapp
Använd .NET Core-kommandoradsgränssnittet (CLI) för att skapa ett nytt ASP.NET Core MVC-projekt. Fördelen med att använda .NET Core CLI stället för Visual Studio är att .NET Core CLI är tillgänglig på Windows,macOS- och Linux-plattformarna.
Kör följande kommando för att skapa ett ASP.NET Core MVC-projekt i en ny TestFeatureFlags-mapp:
dotnet new mvc --no-https --output TestFeatureFlags
Lägga till Secret Manager
Ett verktyg som kallas Secret Manager lagrar känsliga data för utvecklings arbete utanför projekt trädet. Den här metoden hjälper till att förhindra oavsiktlig delning av apphemligheter i källkoden. Utför följande steg för att aktivera användning av Secret Manager i ASP.NET Core-projektet:
Navigera till projektets rot Katalog och kör följande kommando för att aktivera hemligheter för lagring i projektet:
dotnet user-secrets init
Ett UserSecretsId element som innehåller ett GUID läggs till i . CSPROJ -filen:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<UserSecretsId>79a3edd0-2092-40a2-a04d-dcb46d5ca9ed</UserSecretsId>
</PropertyGroup>
</Project>
Tips
Mer information om Secret Manager finns i säker lagring av program hemligheter i utveckling i ASP.net Core.
Anslut till en App Configuration butik
Installera NuGet-paketen Microsoft.Azure.AppConfiguration.AspNetCore och Microsoft.FeatureManagement.AspNetCore genom att köra följande kommandon:
dotnet add package Microsoft.Azure.AppConfiguration.AspNetCoredotnet add package Microsoft.FeatureManagement.AspNetCoreKör följande kommando i samma katalog som .csproj-filen. Kommandot använder Secret Manager för att lagra en hemlighet med namnet
ConnectionStrings:AppConfig, som lagrar anslutningssträngen för App Configuration store. Ersätt<your_connection_string>platshållaren med App Configuration store-anslutningssträngen. Du hittar anslutningssträngen under Åtkomstnycklar i Azure Portal.dotnet user-secrets set ConnectionStrings:AppConfig "<your_connection_string>"Secret Manager används endast för att testa webbappen lokalt. När appen distribueras till Azure App Service använderdu programinställningen Anslutningssträngar i App Service i stället för Secret Manager för att lagra anslutningssträngen.
Få åtkomst till den här hemligheten med hjälp av .NET Core-konfigurations-API:et. Ett kolon (
:) fungerar i konfigurationsnamnet med konfigurations-API:et på alla plattformar som stöds. Mer information finns i Konfigurationsnycklar och värden.I Program.cs uppdaterar du metoden
CreateWebHostBuilderför att använda App Configuration genom att anropa metodenAddAzureAppConfiguration.Viktigt
CreateHostBuilderersätterCreateWebHostBuilderi .NET Core 3.x. Välj rätt syntax baserat på din miljö.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>());Med den föregående ändringen har konfigurationsprovidern för App Configuration registrerats med .NET Core-konfigurations-API:et.
I Startup.cs lägger du till en referens till funktionshanteraren för .NET Core:
using Microsoft.FeatureManagement;Uppdatera metoden
Startup.ConfigureServicesför att lägga till stöd för funktionsflaggan genom att anropa metodenAddFeatureManagement. Du kan också inkludera alla filter som ska användas med funktionsflaggor genom att anropaAddFeatureFilter<FilterType>():public void ConfigureServices(IServiceCollection services) { services.AddControllersWithViews(); services.AddFeatureManagement(); }Lägg till filen MyFeatureFlags.cs i rotprojektkatalogen med följande kod:
namespace TestFeatureFlags { public enum MyFeatureFlags { Beta } }Lägg till en BetaController.cs-fil i katalogen Controllers med följande kod:
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(); } }I Views/_ViewImports.cshtml registrerar du Tag Helper för funktionshanteraren med hjälp av ett
@addTagHelper-direktiv:@addTagHelper *, Microsoft.FeatureManagement.AspNetCoreKoden ovan gör att
<feature>Tag Helper kan användas i projektets .cshtml-filer.Öppna _Layout.cshtml i katalogen Vyer \ delad. Leta upp
<nav>streckkoden under<body>><header>. Infoga en ny<feature>tagg mellan navigeringsfältsobjekten Start och Sekretess, som du ser i de markerade raderna nedan.ms.lasthandoff: 03/29/2021 ms.locfileid: "98663020" --- ```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>Skapa en Views/Beta-katalog och en Index.cshtml-fil som innehåller följande kod:
@{ ViewData["Title"] = "Beta Home Page"; } <h1>This is the beta website.</h1>
Skapa och köra appen lokalt
Kör följande kommando i kommandogränssnittet för .NET Core CLI skapa appen med hjälp av .NET Core CLI:
dotnet buildNär bygget är klart kör du följande kommando för att köra webbappen lokalt:
dotnet runÖppna ett webbläsarfönster och gå till
http://localhost:5000, som är standard-URL:en för webbappen som finns lokalt. Om du arbetar i Azure Cloud Shell väljer du knappen Webbförhandsgranskning följt av Konfigurera. Välj port 5000 när du uppmanas till det.
Webbläsaren bör visa en sida som liknar bilden nedan.
Logga in på Azure-portalen. Välj Alla resurser och välj den App Configuration Store-instans som du skapade i snabbstarten.
Välj Funktionshanteraren.
Aktivera betaflaggan genom att markera kryssrutan under Aktiverad.
Gå tillbaka till kommandogränssnittet. Avbryt körningsprocessen
dotnetgenom att trycka på Ctrl+C. Starta om appen med hjälp avdotnet run.Uppdatera webbläsarsidan för att visa de nya konfigurationsinställningarna.
Rensa resurser
Om du inte vill fortsätta använda resurserna som skapats i den här artikeln tar du bort resurs gruppen som du skapade här för att undvika avgifter.
Viktigt
Att ta bort en resursgrupp kan inte ångras. Resurs gruppen och alla resurser i den tas bort permanent. Var noga så att du inte tar bort fel resursgrupp eller resurser av misstag. Om du har skapat resurserna för den här artikeln i en resurs grupp som innehåller andra resurser som du vill behålla, tar du bort varje resurs separat från dess respektive fönster i stället för att ta bort resurs gruppen.
- Logga in på Azure Portaloch välj resurs grupper.
- I rutan Filtrera efter namn anger du namnet på din resurs grupp.
- I listan resultat väljer du resurs gruppens namn för att se en översikt.
- Välj Ta bort resursgrupp.
- Du blir ombedd att bekräfta borttagningen av resursgruppen. Ange namnet på resurs gruppen som ska bekräftas och välj ta bort.
Efter en liten stund tas resurs gruppen och alla dess resurser bort.
Nästa steg
I den här snabbstarten skapade du ett nytt App Configuration store och använde det för att hantera funktioner i en ASP.NET Core-webbapp via biblioteken för funktionshantering.