Kurse:ASP.NET Core Konfiguration: Unterschied zwischen den Versionen

Aus ahrensburg.city
Zur Navigation springen Zur Suche springen
Die Seite wurde neu angelegt: „= 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…“
(kein Unterschied)

Version vom 29. Juni 2025, 20:04 Uhr

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.