Konfiguracja aplikacji ASP.NET Core jest kluczowym aspektem tworzenia aplikacji internetowych. Obejmuje ona różne aspekty, takie jak ustawienia aplikacji, połączenia do baz danych, dostęp do usług, obsługę błędów i wiele innych. Poniżej znajdziesz podstawowe informacje na temat konfiguracji aplikacji ASP.NET Core.

  1. Konfiguracja w pliku appsettings.json:

    W pliku appsettings.json przechowujesz ustawienia konfiguracyjne Twojej aplikacji. Możesz zdefiniować różne sekcje i klucze, aby przechowywać dane konfiguracyjne. Na przykład, możesz ustawić połączenie do bazy danych, adresy serwerów, klucze API i wiele innych rzeczy.

    Przykład appsettings.json:

    {
      "ConnectionStrings": {
        "DefaultConnection": "Server=localhost;Database=mydatabase;User=sa;Password=mypassword;"
      },
      "AppSettings": {
        "ApiKey": "myapikey",
        "LogLevel": "Information"
      }
    }
    
  2. Ładowanie konfiguracji w Startup.cs:

    W klasie Startup.cs możesz wczytać ustawienia z pliku appsettings.json i dostosować zachowanie aplikacji w oparciu o te ustawienia. Aby to zrobić, dodajemy następujący kod w metodzie ConfigureServices:

    public void ConfigureServices(IServiceCollection services)
    {
        // ...
        services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
    }
    

    Przy czym AppSettings to klasa, która odpowiada strukturze sekcji "AppSettings" w pliku appsettings.json.

  3. Dostęp do konfiguracji w kontrolerach i usługach:

    Teraz możesz uzyskać dostęp do konfiguracji w kontrolerach i usługach, wstrzykując IOptions<T> do konstruktora. Na przykład:

    public class MyController : ControllerBase
    {
        private readonly AppSettings _appSettings;
    
        public MyController(IOptions<AppSettings> appSettings)
        {
            _appSettings = appSettings.Value;
        }
    
        // Teraz możesz użyć _appSettings.ApiKey i inne ustawienia w kontrolerze
    }
    
  4. Konfiguracja zmiennych środowiskowych:

    Możesz także używać zmiennych środowiskowych do konfiguracji aplikacji. Na przykład, możesz ustawić zmienną środowiskową MyApp_ApiKey i odczytać ją w konfiguracji.

    var apiKey = Environment.GetEnvironmentVariable("MyApp_ApiKey");
    
  5. Różne środowiska (Development, Production, itp.):

    W ASP.NET Core możesz mieć różne konfiguracje dla różnych środowisk, takich jak Development, Production itp. W pliku appsettings.json można utworzyć sekcje o nazwach odpowiadających nazwom środowisk, na przykład appsettings.Development.json, i dostosować ustawienia dla każdego z nich.

    Do wyboru konkretnego środowiska używamy zmiennej ASPNETCORE_ENVIRONMENT.

  6. Korzystanie z dostawców konfiguracji zewnętrznych:

    Oprócz appsettings.json, ASP.NET Core umożliwia korzystanie z różnych dostawców konfiguracji, takich jak pliki XML, zmienne środowiskowe, pliki konfiguracyjne Azure Key Vault i wiele innych.

    Przykład korzystania z Azure Key Vault:

    IConfigurationBuilder builder = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddAzureKeyVault(
            $"<https://mykeyvault.vault.azure.net/>",
            "ClientId",
            "ClientSecret");
    IConfigurationRoot configuration = builder.Build();
    

To podstawowa konfiguracja aplikacji ASP.NET Core. Dzięki temu możesz zarządzać ustawieniami i dostosowywać zachowanie swojej aplikacji w zależności od potrzeb i środowiska.

Materiały

Configuration in ASP.NET Core