DotNetEnv – Die Konfigurations-Superkraft, die du noch nicht kanntest
Lesedauer: 2 Minuten

In modernen .NET-Apps kann es umständlich sein, Konfigurationen nur über appsettings.json oder Umgebungsvariablen des Systems zu verwalten. Genau hier kommt DotNetEnv ins Spiel: Es bringt die einfache .env-Datei-Konfiguration (wie in Node.js, Python oder Linux-Shells) direkt in .NET-Projekte — schnell, unkompliziert und ohne großen Boilerplate-Code.

🧠 Was ist eine .env-Datei?

Eine .env-Datei ist eine einfache Textdatei mit Key-Value-Paaren, die Konfigurationswerte enthält:

Plaintext
API_KEY=12345
GREETING=HalloDotNet
PORT=5000
Plaintext

Diese Datei kann lokal gehalten und z. B. nicht in Git eingecheckt werden, weil sie sensible Werte (wie API-Keys) enthalten kann.

🚀 Warum DotNetEnv?

✔️ Perfekt für kleine Apps, CLI-Tools, Prototypen und Microservices
✔️ Lädt Umgebungsvariablen aus einer .env-Datei
✔️ Kein umfangreicher JSON-Config-Stack nötig
✔️ Funktioniert auch mit Single-File-Apps in .NET 10+Medium

📦 Installation

Installiere zuerst das NuGet-Paket DotNetEnv:

Bash
dotnet add package dotenv.net
Bash

oder im Visual Studio Package Manager:

PowerShell
Install-Package dotenv.net
PowerShell

Die Bibliothek ist leichtgewichtig und eignet sich ideal, um .env-Dateien in deinem .NET-Projekt zu unterstützen.

🛠️ Beispiel: Konsolen-App, die Werte aus .env lädt

Lege im Projektverzeichnis eine Datei namens .env an:

Plaintext
APP_NAME=MeineDotNetApp
API_URL=https://api.beispiel.de
MAX_RETRIES=3
DEBUG_MODE=true
Plaintext

Anschließend erstellen wir eine simple Konsolen-Anwendung:

C#
using DotNetEnv;

Env.Load();

string appName = 
    Environment.GetEnvironmentVariable("APP_NAME") ?? "Unknown";
string apiUrl = 
    Environment.GetEnvironmentVariable("API_URL") ?? "http://localhost";
int maxRetries = 
    int.Parse(Environment.GetEnvironmentVariable("MAX_RETRIES") ?? "1");
bool debugMode = 
    bool.Parse(Environment.GetEnvironmentVariable("DEBUG_MODE") ?? "false");

Console.WriteLine($"App Name: {appName}");
Console.WriteLine($"API URL: {apiUrl}");
Console.WriteLine($"Max Retries: {maxRetries}");
Console.WriteLine($"Debug Mode: {debugMode}");
C#

Mit Env.Load() werden alle Werte aus der .env-Datei in die Umgebungsvariablen des aktuellen Prozesses geladen. Danach kannst du sie über Environment.GetEnvironmentVariable(...) abrufen.

🧪 Wann macht DotNetEnv Sinn?

SzenarioEmpfehlung
Kleine CLI-Tools & Prototypen👍 Perfekt
Microservices👍 Praktisch
Mehrere Umgebungen (Dev/Test/Prod)👍 Mit mehreren .env-Dateien
Produktions-Umgebung mit orchestrierten Secrets🔒 Dann ggf. andere Secret-Manager

Eine .env-Datei sollte typischerweise nicht in Git eingecheckt werden – trage sie lieber in .gitignore ein.

🎯 Fazit

DotNetEnv bringt eine einfach verständliche Konfigurations-Schicht nach .NET, ohne eine übliche JSON-Datei. Das ist besonders nützlich, wenn du:

  • viele Umgebungsvariablen brauchst,
  • schnell verschiedene Konfigurationen testen willst,
  • oder Konfigurationen konsistent über mehrere Sprachen/Tools teilen willst.
Rückblick auf das Jahr 2021 Arbeiten mit ZIP-Dateien in .NET Mit dotnet outdated automatisch NuGet Pakete aktualisieren
View Comments
There are currently no comments.