Earn More by Sharing What You Love
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Tim Corey
8m 02s
ASP.NET Core to wieloplatformowy, otwarty framework webowy Microsoftu, który pozwala deweloperom budować nowoczesne aplikacje webowe i natywne dla chmury aplikacje efektywnie. Z najnowszą wersją .NET, ASP.NET Core nadal oferuje lekką, bezpieczną i elastyczną platformę do tworzenia aplikacji webowych, które mogą działać na Windows, Linux i macOS.
W tym artykule zbadamy dogłębniej, jak dostępować do ustawień konfiguracji podczas setupu w ASP.NET Core, podążając za 10-minutowym materiałem szkoleniowym Tima Coreya. Tim demonstruje, jak deweloperzy mogą pobierać wartości konfiguracyjne w program.cs, zanim wstrzykiwanie zależności zostanie całkowicie skonfigurowane, co jest kluczową techniką do tworzenia elastycznych i łatwych w utrzymaniu aplikacji webowych.
Tim Corey zaczyna od podkreślenia znaczenia ustawień aplikacji w ASP.NET Core. Według Tima, appsettings.json to "świetne miejsce do przechowywania konfiguracji", ponieważ pozwala deweloperom zmieniać wartości bez ponownej kompilacji lub ponownej implementacji aplikacji.
W rozwoju webowym często polega się na konfiguracji usług, takich jak ustawianie URL dla API lub dostosowywanie parametrów specyficznych dla środowiska. Zazwyczaj w aplikacji webowej .NET Core deweloperzy uzyskują dostęp do konfiguracji poprzez wstrzykiwanie zależności:
@inject IConfiguration config
Jednak Tim zauważa, że czasami potrzebny jest dostęp do tych wartości konfiguracyjnych podczas instalacji, na przykład przy konfiguracji klientów HTTP lub innych usług w program.cs. Zrobienie tego zapewnia, że aplikacje pozostaną elastyczne i adaptacyjne, przechodząc między różnymi środowiskami, takimi jak rozwój, staging czy produkcja.
Aby zademonstrować, Tim tworzy prostą aplikację Blazor, wyłączając interaktywność, aby skupić się całkowicie na program.cs. Podkreśla, że architektura ASP.NET Core pozwala na oddzielenie konfiguracji od kodu, co ułatwia zarządzanie aplikacjami webowymi i projektami natywnymi dla chmury.
To podejście jest również zgodne z wieloplatformowym charakterem platformy .NET, ponieważ ta sama logika konfiguracji działa na Windows, Linux i macOS bez modyfikacji.
Tim prowadzi nas przez scenariusz, w którym klient HTTP jest zarejestrowany w program.cs:
builder.Services.AddHttpClient("LocalAPI", client =>
{
client.BaseAddress = new Uri("https://localhost:7654");
});
Choć to działa, Tim wyjaśnia, że twarde zakodowanie URL nie jest idealne. Jeśli punkt końcowy API się zmieni, deweloperzy muszą zaktualizować kod i utworzyć pull request na potrzeby wdrożenia. Zamiast tego, zaleca przechowywanie wartości w appsettings.json:
{
"LocalAPI": "https://localapi.fromconfig"
}
To zapewnia, że framework dynamicznie pobiera konfigurację, unikając ponownej kompilacji i zmniejszając błędy podczas wdrożenia. Daje to również zgodność z najlepszymi praktykami dla bezpiecznych i łatwych w utrzymaniu aplikacji webowych.
Tim pokazuje, jak pobierać wartości konfiguracyjne przed wstrzykiwaniem zależności:
var localApiBaseAddress = builder.Configuration.GetValue<string>("LocalAPI");
Kluczowe punkty, które Tim podkreśla:
builder.Configuration jest dostępny przed builder.Build().
Wartości mogą pochodzić z appsettings.json, zmiennych środowiskowych, sekretów użytkownika lub nawet Azure Key Vault.
Pozwala to na dynamiczne konfigurowanie usług, logowania lub innych komponentów frameworka webowego.
Tim ustawia punkt przerwania, aby sprawdzić, czy URL LocalAPI jest poprawnie pobierany. Zauważa, że ta metoda działa na wszystkich obsługiwanych platformach, co czyni ją idealną dla wieloplatformowego rozwoju.
Tim odnosi się do scenariuszy, w których klucz konfiguracji może być brakujący lub pusty. Pokazuje, że można podać wartość domyślną używając GetValue:
var localApiBaseAddress = builder.Configuration.GetValue<string>("LocalAPI", "https://localhost:7654");
To gwarantuje, że aplikacje są gotowe do uruchomienia nawet jeśli konfiguracja nie jest ustawiona, poprawiając obsługę błędów i produktywność deweloperów. Zmniejsza to także prawdopodobieństwo problemów z czasem wykonywania w wdrożeniach w chmurze lub na różnych platformach.
Tim wymienia kilka zalet pobierania konfiguracji podczas setupu:
Dynamiczna konfiguracja: Usługi takie jak HttpClient mogą używać punktów końcowych specyficznych dla środowiska.
Unikaj ponownej kompilacji: Zmiana URL lub innych ustawień nie wymaga już zmian w kodzie.
Elastyczne logowanie i usługi: Konfiguruj logery lub inne usługi frameworka webowego używając wartości konfiguracyjnych.
Wspiera wiele źródeł: Konfiguracja może pochodzić z appsettings.json, zmiennych środowiskowych, sekretów użytkownika lub chmurowych skarbców kluczy.
Podkreśla, że to podejście utrzymuje aplikacje lekkie i łatwe w utrzymaniu, a jednocześnie pełne zalet ASP.NET Core i platformy .NET.
Tim pokazuje, jak porządkuje kod i uruchamia aplikację. Pokazuje, że URL LocalAPI jest albo pobierany z konfiguracji, albo wraca do wartości domyślnej:
var localApiBaseAddress = builder.Configuration.GetValue<string>("LocalAPI", "https://localhost:7654");
Taka elastyczna konfiguracja pozwala deweloperom kontynuować budowanie aplikacji webowych bez martwienia się o twarde zakodowane URL lub powtarzające się pull requesty dla drobnych zmian. Zapewnia to również płynne wieloplatformowe wdrożenia na Linux, Windows lub macOS.
Tim Corey podsumowuje podkreślając prostotę i efektywność dostępu do konfiguracji podczas setupu w ASP.NET Core / .NET 8. Korzystając z:
builder.Configuration.GetValue<t>()
deweloperzy mogą:
Dynamicznie konfigurować usługi
Unikać twardego kodowania wartości w frameworku
Wspierać wiele środowisk i platform
Poprawiać produktywność deweloperów i obsługę błędów
Ta technika jest kluczowa do tworzenia bezpiecznych, łatwych w utrzymaniu i gotowych do chmury aplikacji webowych. Praktyczna demonstracja Tima podkreśla, jak nawet lekka, wieloplatformowa aplikacja ASP.NET Core może być solidna, elastyczna i gotowa na nowoczesny rozwój webowy.
Film Tima Coreya jest obowiązkowy dla deweloperów, którzy chcą opanować zarządzanie konfiguracją w ASP.NET Core. Przestrzegając jego kroków, możesz zapewnić, że twoje aplikacje są elastyczne, łatwe w utrzymaniu i gotowe na wieloplatformowe wdrożenia, środowiska chmurowe oraz nowoczesną architekturę webową.
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!
Join our newsletter, you’ll get exclusive access on article updates. We value your privacy