Proyek ini menunjukkan perilaku konfigurasi rantai Microsoft untuk aplikasi host .NET generik.
Menggunakan NET 6.0 dan pembangun host generik di aplikasi konsol, dengan properti "ucapan" yang ditimpa dengan setiap rantai dalam konfigurasi.
Ini adalah urutan di mana setiap penyedia konfigurasi dirantai diterapkan. Yang terakhir menang.
Terkadang memahami konfigurasi rantai dan apa yang mengesampingkan apa yang bisa menjadi kurva belajar yang lebih besar dari yang diinginkan.
Demo ini adalah untuk membantu pemahaman Anda tentang urutan konfigurasi rantai.
Bagian konfigurasi Azure dari demo ini menggunakan Azure App Configuration Access, yang saat ini gratis untuk satu sumber daya.
Jika menggunakan bagian demo ini, Anda harus mengatur langganan dan lingkungan Azure Anda sebelum meluncurkan demo.
Saya menggunakan properti "ucapan" yang dapat dikonfigurasi, satu dengan label, satu tanpa. Jika Anda ingin menggunakan ini, atau hanya satu atau yang lain, Anda perlu menambahkannya ke konfigurasi aplikasi Azure Anda.
Yang berlabel harus mencocokkan "konfigurasi rantai" sesuai kode yang ada.

Anda juga harus membatalkan komentar bagian AddAzureAppConfiguration di Program.cs .
Keakraban dengan baris perintah diperlukan. Contohnya didasarkan pada bash git untuk windows, tetapi dapat dengan mudah dipetakan untuk PowerShell atau CMD.
Ini mengasumsikan terminal bash. Konversi ke perintah untuk jendela Terminal/PowerShell/CMD favorit Anda.
Ini bekerja mundur dari konfigurasi aplikasi Azure, yang mengesampingkan semua pengaturan sebelumnya, ke prioritas terendah dalam rantai.
Saat berjalan dari baris perintah, bersihkan (tanpa set variabel lingkungan):
Dengan bagian AzureAppConfiguration dari Program.cs Uncommented,
~/source/repos/ChainedConfigurationDemo/pub master
└─ cd ..; dotnet publish -o pub --nologo --verbosity quiet; cd pub
~/source/repos/ChainedConfigurationDemo/pub master
└─ ./ChainedConfigurationDemo.exe Greeting=HelloFromArgs
Starting demo...
In the end, the greeting is "HelloFromAzure"
Press Ctrl-C to stop the host and exit.
Dengan bagian AzureAppConfiguration dari Program.cs berkomentar, di dalam Visual Studio, jalankan aplikasi di Debug.

Dengan Azure dikomentari, dan tidak ada set dotnet_environment, tidak diluncurkan dari peluncuran Visual Studio,

~/source/repos/ChainedConfigurationDemo/pub master
└─ cd ..; dotnet publish -o pub --nologo --verbosity quiet; cd pub
~/source/repos/ChainedConfigurationDemo/pub master
└─ ./ChainedConfigurationDemo.exe Greeting=HelloFromArgs
Starting demo...
In the end, the greeting is "HelloFromArgs"
Press Ctrl-C to stop the host and exit.
Aplikasi ini dikonfigurasi sedemikian rupa sehingga jika dotnet_environment tidak diatur, atau diatur ke sesuatu selain "pengembangan" atau "tes", bangunan konfigurasi jatuh ke appsettings.json (jika properti ada di appsettings.json), dan sebagainya - seperti, misalnya, jika dotnet_environment diatur ke "produksi".
Program.cs berkomentar ~/source/repos/ChainedConfigurationDemo/pub master
└─ cd ..; dotnet publish -o pub --nologo --verbosity quiet; cd pub
~/source/repos/ChainedConfigurationDemo/pub master
└─ export DOTNET_ENVIRONMENT=Development
~/source/repos/ChainedConfigurationDemo/pub master
└─ ./ChainedConfigurationDemo.exe
Starting demo...
In the end, the greeting is "HelloFromAppSettings.Development"
Press Ctrl-C to stop the host and exit.
Program.cs berkomentar ~/source/repos/ChainedConfigurationDemo/pub master
└─ cd ..; dotnet publish -o pub --nologo --verbosity quiet; cd pub
~/source/repos/ChainedConfigurationDemo/pub master
└─ export DOTNET_ENVIRONMENT=Test
~/source/repos/ChainedConfigurationDemo/pub master
└─ ./ChainedConfigurationDemo.exe
Starting demo...
In the end, the greeting is "HelloFromAppSettings.Test"
Press Ctrl-C to stop the host and exit.
~/source/repos/ChainedConfigurationDemo/pub master
└─ unset DOTNET_ENVIRONMENT
~/source/repos/ChainedConfigurationDemo/pub master
└─ ./ChainedConfigurationDemo.exe
Starting demo...
In the end, the greeting is "HelloFromAppSettings"
Press Ctrl-C to stop the host and exit.
Dengan konfigurasi aplikasi saat ini, ini adalah hasil yang sama seperti dalam produksi.
~/source/repos/ChainedConfigurationDemo/pub master
└─ export Greeting=HelloFromOperatingEnvironment
~/source/repos/ChainedConfigurationDemo/pub master
└─ ./ChainedConfigurationDemo.exe
Starting demo...
In the end, the greeting is "HelloFromOperatingEnvironment"
Press Ctrl-C to stop the host and exit.
(Pastikan untuk unset Greeting jika di lingkungan CLI untuk semua kasus lainnya)
Untuk kasing penggunaan Azure opsional, Anda perlu
Untuk #4, demo ini menggunakan string koneksi baca saja dari konfigurasi aplikasi Azure saya, ditarik sebagai variabel lingkungan dari sistem lokal saya.