Microsoft Windows プラットフォームで彼らのガイダンスに従うには、プラットフォームを深く理解している必要があると思います。
3 番目の要素である構成を環境に保存するという提案についてのご意見に従い、Windows プラットフォームの環境変数とは正確には何なのかを自問する必要があります。答えは Windows レジストリです。現在、私は Windows レジストリを利用するサーバー アプリケーションの開発に本業で取り組んでおり、自分の役割 (継続的インテグレーション、ビルド、およびインストーラーに関心があります) を考えると、私たちがしなければならない復讐心で本当に嫌いです。 Windows レジストリを使用しますが、これは Windows プラットフォームで行うことです。
Windows レジストリは、言語や OS に依存しない標準では明らかに機能しませんが、Windows プラットフォームでは、Windows レジストリ キーに実装されているプレーンなバニラ環境変数を使用する場合でも失敗します。
私は時々、資格情報を SCM (ちなみに、近年は主に TFS) に保存するという罪を犯しますが、アプリケーション自体、主にビルド インフラストラクチャ (つまり、決してデプロイされないもの) に対しては決して行いません。アプリケーション コードから完全に分離されている)。
app/web.config を使用して資格情報を保存することもできます (暗号化機能もあります) が、一般的にはお勧めできません。
また、データベースをバックエンド (リレーショナル、非リレーショナル、実際にはあらゆる種類のデータベース) として使用する場合、一部の構成はそこに保存される可能性があり、一部の構成はそこに格納するのにさらに適している場合があります (つまり、マルチテナント アプリケーション)。 、テナント関連の構成を分離したいと本当に思っており、多くの場合、共有された構成はテナント 0 の特別なストアにまとめられてしまいます)。そこのあなた。
2 番目の質問については、12factor マニフェストには不慣れなため (ただし、基本的な概念ではなく、これまで読んだことから)、現時点で .Net の参照アーキテクチャについて提案することはできません。
2番目の質問に関する更新
また、もう 1 つの質問については、2 番目の要因である依存関係が、文字通り厳密なアプローチを取ると、Microsoft プラットフォームで適切なリファレンス実装を見つけるのを妨げる可能性があると言えます。
Windows インストーラーや高レベルのインストール オーサリング ツール (Wix、InstallShield など) のようなものは、RubyGems や CPAN に匹敵するものではなく、NuGet はまだ普及していません。
作成者が 12factor を知らなかったとしても、マニフェストがかなり賢明なことを要求している場合でも、NuGet フィードを参照して参照実装を探すことができます。優れた開発者はほとんどそれらまたはかなり類似した概念に従っています。
このアプローチの例として、AyendeのRavenDBを参照することをお勧めします。NuGetを介して取得することができます。すべてではないにしても、ほとんどの 12factor ガイ ボックス ( intro、features、およびsourceコード)。