<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://mediawiki.wissen-ahrensburg.de/index.php?action=history&amp;feed=atom&amp;title=Webframeworkk%2FASP.NET_Core%2FKonfiguration</id>
	<title>Webframeworkk/ASP.NET Core/Konfiguration - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.wissen-ahrensburg.de/index.php?action=history&amp;feed=atom&amp;title=Webframeworkk%2FASP.NET_Core%2FKonfiguration"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.wissen-ahrensburg.de/index.php?title=Webframeworkk/ASP.NET_Core/Konfiguration&amp;action=history"/>
	<updated>2026-08-19T16:52:00Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Dokument</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://mediawiki.wissen-ahrensburg.de/index.php?title=Webframeworkk/ASP.NET_Core/Konfiguration&amp;diff=266&amp;oldid=prev</id>
		<title>imported&gt;Import: Version 191</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.wissen-ahrensburg.de/index.php?title=Webframeworkk/ASP.NET_Core/Konfiguration&amp;diff=266&amp;oldid=prev"/>
		<updated>2026-02-18T22:12:42Z</updated>

		<summary type="html">&lt;p&gt;Version 191&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).&amp;#039;&amp;#039;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Dieses Tutorial bietet einen umfassenden Einstieg in das Konfigurationssystem von ASP.NET Core. Es richtet sich an Entwickler, die lernen möchten, wie man Einstellungen und sensible Daten sicher und flexibel verwaltet.&lt;br /&gt;
&lt;br /&gt;
== 1. Grundlagen der Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Konfigurationsquellen:&amp;#039;&amp;#039;&amp;#039; JSON-Dateien, Umgebungsvariablen, Kommandozeilenargumente, In-Memory-Objekte, Azure Key Vault, Azure App Configuration, User Secrets.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Key-Value-Prinzip:&amp;#039;&amp;#039;&amp;#039; Einstellungen werden als Schlüssel-Wert-Paare gespeichert.&lt;br /&gt;
&lt;br /&gt;
== 2. Typische Konfigurationsquellen ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;appsettings.json:&amp;#039;&amp;#039;&amp;#039; Standardkonfiguration, nicht-sensible Daten.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;appsettings.{Environment}.json:&amp;#039;&amp;#039;&amp;#039; Umgebungsabhängige Überschreibungen.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Umgebungsvariablen:&amp;#039;&amp;#039;&amp;#039; Für geheime oder umgebungsspezifische Werte.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;User Secrets:&amp;#039;&amp;#039;&amp;#039; Für lokale Entwicklung, keine Produktion.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Azure Key Vault/App Configuration:&amp;#039;&amp;#039;&amp;#039; Für zentrale, sichere Verwaltung und Feature-Flags.&lt;br /&gt;
&lt;br /&gt;
== 3. Hinzufügen von Konfigurationsquellen ==&lt;br /&gt;
&lt;br /&gt;
Im &amp;lt;code&amp;gt;Program.cs&amp;lt;/code&amp;gt; werden Quellen in der gewünschten Reihenfolge hinzugefügt (letzte gewinnt):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;configuration.AddJsonFile(&amp;quot;appsettings.json&amp;quot;, optional: false, reloadOnChange: true);&lt;br /&gt;
configuration.AddJsonFile($&amp;quot;appsettings.{env.EnvironmentName}.json&amp;quot;, optional: true, reloadOnChange: true);&lt;br /&gt;
configuration.AddEnvironmentVariables();&lt;br /&gt;
configuration.AddUserSecrets&amp;amp;lt;Program&amp;amp;gt;();&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== 4. Zugriff auf Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;IConfiguration:&amp;#039;&amp;#039;&amp;#039; Zentrale Schnittstelle, Zugriff auf Werte per Indexer oder Methoden wie &amp;lt;code&amp;gt;GetSection&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GetValue&amp;amp;lt;T&amp;amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GetConnectionString&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Dependency Injection:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;IConfiguration&amp;lt;/code&amp;gt; wird in Controller/Services per Konstruktor injiziert.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Options Pattern:&amp;#039;&amp;#039;&amp;#039; Starke Typisierung durch eigene Options-Klassen und &amp;lt;code&amp;gt;IOptions&amp;amp;lt;T&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 5. Hierarchische Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
* JSON-Struktur erlaubt Abschnitte und verschachtelte Werte.&lt;br /&gt;
* Zugriff mit Doppelpunkten, z.B. &amp;lt;code&amp;gt;Logging:LogLevel:Default&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Arrays und komplexe Objekte werden unterstützt.&lt;br /&gt;
&lt;br /&gt;
== 6. Best Practices ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Layered Configuration:&amp;#039;&amp;#039;&amp;#039; Mehrere Quellen mit klarer Priorität.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Trennung sensibler Daten:&amp;#039;&amp;#039;&amp;#039; Secrets nie in Code/Repo, sondern in Key Vault/User Secrets.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Validierung:&amp;#039;&amp;#039;&amp;#039; Konfiguration beim Start prüfen.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ReloadOnChange:&amp;#039;&amp;#039;&amp;#039; Automatisches Neuladen bei Dateiänderung.&lt;br /&gt;
&lt;br /&gt;
== 7. Beispiel: Options Pattern ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;public class MyOptions { public string Option1 { get; set; } public int Option2 { get; set; } }&lt;br /&gt;
builder.Services.Configure&amp;lt;MyOptions&amp;gt;(builder.Configuration.GetSection(&amp;quot;MyOptions&amp;quot;));&lt;br /&gt;
public class MyService {&lt;br /&gt;
  private readonly IOptions&amp;lt;MyOptions&amp;gt; _options;&lt;br /&gt;
  public MyService(IOptions&amp;lt;MyOptions&amp;gt; options) { _options = options; }&lt;br /&gt;
  public void DoSomething() { var opt = _options.Value.Option1; }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== 8. Umgang mit Secrets ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;User Secrets:&amp;#039;&amp;#039;&amp;#039; Für Entwicklung, per &amp;lt;code&amp;gt;dotnet user-secrets&amp;lt;/code&amp;gt; CLI verwalten.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Azure Key Vault:&amp;#039;&amp;#039;&amp;#039; Für Produktion, zentrale Verwaltung und Rotation.&lt;br /&gt;
&lt;br /&gt;
== 9. Umgebungsvariablen ==&lt;br /&gt;
&lt;br /&gt;
* Doppelte Unterstriche (&amp;lt;code&amp;gt;__&amp;lt;/code&amp;gt;) für Hierarchie, z.B. &amp;lt;code&amp;gt;ASPNETCORE_Logging__LogLevel__Default&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Überschreiben Werte aus JSON-Dateien.&lt;br /&gt;
&lt;br /&gt;
== 10. Eigene JSON-Dateien ==&lt;br /&gt;
&lt;br /&gt;
* Zusätzliche Konfigurationsdateien für Modularität möglich.&lt;br /&gt;
* Einbinden mit &amp;lt;code&amp;gt;AddJsonFile(&amp;amp;quot;customsettings.json&amp;amp;quot;, optional: true)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Fazit:&amp;#039;&amp;#039;&amp;#039; Das ASP.NET Core-Konfigurationssystem ist flexibel, sicher und unterstützt Best Practices für moderne Softwareentwicklung. Durch die Kombination verschiedener Quellen, starke Typisierung und sichere Verwaltung sensibler Daten lassen sich robuste und wartbare Anwendungen erstellen.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>imported&gt;Import</name></author>
	</entry>
</feed>