Kurse:ASP.NET Core Konfiguration
ASP.NET Core Environments – Spickzettel
ASP.NET Core verwendet sogenannte Environments (Umgebungen), um das Verhalten einer Anwendung je nach Bereitstellungsszenario (Development, Staging, Production) anzupassen.
Übliche Umgebungen
- Development: Lokale Entwicklungsumgebung – ideal zum Testen und Debugging.
- Staging: Vorproduktionsumgebung – bildet die Produktion möglichst genau ab.
- Production: Live-Umgebung für Endnutzer.
Umgebung setzen
Die Umgebung wird über die Umgebungsvariable ASPNETCORE_ENVIRONMENT definiert.
Möglichkeiten zum Setzen
- launchSettings.json
- Im Ordner Properties des Projekts:
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
- Terminal (Windows PowerShell / CMD)
$env:ASPNETCORE_ENVIRONMENT = "Development"
dotnet run
set ASPNETCORE_ENVIRONMENT=Production
dotnet run- macOS / Linux
export ASPNETCORE_ENVIRONMENT=Staging
dotnet run
Zugriff auf die Umgebung im Code
Program.cs
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
}
Controller
public class HomeController : Controller
{
private readonly IWebHostEnvironment _env;
public HomeController(IWebHostEnvironment env)
{
_env = env;
}
public IActionResult Index()
{
ViewBag.CurrentEnvironment = _env.EnvironmentName;
return View();
}
}
Konfigurationsdateien
Erstelle Dateien wie:
- appsettings.Development.json
- appsettings.Staging.json
- appsettings.Production.json
Diese überschreiben Einstellungen aus appsettings.json je nach aktiver Umgebung.
<environment> Tag Helper
In Razor Views:
<environment include="Development">
<script src="~/scripts/dev.js"></script>
</environment>
<environment exclude="Development">
<script src="~/scripts/prod.min.js"></script>
</environment>
Best Practices
- Nutze environment-spezifische Dateien für getrennte Konfigurationen.
- Verwende verschiedene Middleware-Pipelines:
if (app.Environment.IsProduction())
app.UseExceptionHandler("/Error");
- Logging pro Umgebung anpassen.
- Feature Flags über Umgebungsvariablen oder appsettings aktivieren/deaktivieren.
launchSettings.json verstehen
{
"profiles": {
"MyApp": {
"commandName": "Project",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
Interview-Tipps
- Erkläre, warum Environments wichtig sind (z. B. Sicherheit, Flexibilität).
- Zeige, wie man appsettings.{ENV}.json nutzt.
- Beschreibe, wie Middleware sich abhängig von der Umgebung unterscheidet.
- Erkläre, wie man ASPNETCORE_ENVIRONMENT beim Deployment setzt.