. NETコア:複数の環境


つの最高の機能の.NETコアは、複数の環境で動作する能力です.開発、テスト、生産などの環境を使用できます.この構成により、アプリケーションが実行されている環境に応じて動作を変更できます.この出版物の目的は、アプリケーション開発の良いプラクティスと一緒に、この新機能の可能な用途を議論することです.
開発、ステージング、およびプロダクションの異なる構成を実行またはロードする必要がある環境を3つ仮定します.ASP .NETコアは、これらの環境を「環境変数」という変数によって区別することができます.参照している変数はaspnetcorestra enviromentと呼ばれます.これは私たちの環境を設定できるようになります.最も一般的な値は、開発、ステージング、および生産です.
この変数が設定されると、実行時にこの変数の値がどのようなものか、アプリケーションがどのような環境で実行されているかを検出できます.
Linuxでは大文字小文字が区別されているので、ファイルと構成は良い慣習として大文字と小文字と区別されます.

開発


この環境は、アプリケーションの開発中に使用することです.どうやって設定するのですか?プロジェクトを右クリックし、設定を選択する必要があります.ウィンドウが開き、次のウィンドウで参照できるように左側のタブ「Debug」から選択します.
この画面を変更すると、LaunchSesstingで設定が変更されます.プロパティフォルダ内のJSONファイル.このファイルでは、必要に応じて任意の環境を含めることができます.たとえば、次のコードに示すようにいくつかの構成プロファイルを追加できます.
{
    "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
        "applicationUrl": "http://localhost:40088/",
        "sslPort": 0
    }
},
    "profiles": { 
        "IIS Express": {
            "commandName": "IISExpress",
            "launchBrowser": true,
        "environmentVariables":{ 
            "ASPNETCORE_ENVIRONMENT": "Development"
        }
    } 
},
    "IIS Express (Staging)": { 
        "commandName": "IISExpress",
        "launchBrowser": true,
        "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Staging"
        }
    }
}
ファイル内のこれらの設定のいずれかを変更すると、効果は自動的に行われません.我々は、サーバーを再起動する必要があります、特にkestrelを再起動する必要があります、一度それが正しく変更を検出できるように変更されている.

演出


これは、テストやプリプロダクション環境で使用する環境です.生産への動きをする前に、ほとんど常に最終テストのために.この環境は、ほとんど常に展開ミラーを減らすための生産ミラーであるべきです.

生産


これはしばしば生きている環境です.これは、アプリケーションのセキュリティ、パフォーマンス、および信頼性の特性を構成する環境です.生産環境にはいくつかの特徴があります.
  • キャッシュ機能を有効にする
    パッケージのようなクライアント側のファイル設定、JSファイルとCSSファイルまたはCDN(コンテンツ配信ネットワーク)設定
  • などのクライアント側ファイル設定
  • 無効な診断機能
  • ログ設定と監視の設定を有効にします.
  • リストは、各アプリケーションのニーズに応じて長くすることができます.

    環境の設定


    Windowsでは、アプリケーションが実行されると、設定を使用できます.
    コマンドライン
    環境変数を設定する
    パワーシェル
    環境変数"開発"
    これらのコマンドは、実行中のウィンドウが開いている間にのみ有効になります.閉じるこの動画はお気に入りから削除されています.グローバルに値を設定したい場合は、「コントロールパネル」「システム」「高度システム構成」から設定する必要があります.「詳細オプション」タブでは、次のスクリーンショットに示すように、AspNetChoreRenu環境変数を追加する必要があります.

    MacOSではbashから以下のコマンドを使わなければなりません
    環境を開発する
    オペレーティングシステムまたはマシンレベルでは、変数を設定しなければなりません.BASHRCまたは.バッシュ.プロファイルファイル.ファイルを編集しなければなりません.
    環境変数のエクスポート
    Linuxでは、オープンセッション用のコンソールからエクスポートコマンドを使用したり、オペレーティングシステムやマシン全体のバッヘフプロファイルファイルを変更する必要があります.

    ランタイムで環境を確認する方法


    ASP .ASP . NETは、メインコンテナー内の依存性注入によって利用できるIhostingEnvimentインターフェイスに基づいてサービスを提供します.起動時に.CSファイルはEnv変数がどのように注入されるかを見ることができます.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
            app.UseDatabaseErrorPage();
            app.UseBrowserLink();
        }else{
            app.UseExceptionHandler("/Home/Error");
        }
    }
    
    アプリケーションを実行している間、特定の環境をチェックするには、iHostingEnvironmentにメソッドIniviroment(“環境名”)を提供します.
    このコードでは、環境が開発環境であるかどうかを尋ねることができます.たとえば、我々はそのアプリを参照してください.usebrowserlink ()が設定されている.どちらがプロダクションで使用されないのか、ビジュアルスタジオの特徴です.
    また、MVCビュー内のタグヘルパーを使用してこれらの構成を使用する可能性があります.たとえば、圧縮されたファイルを使用するために開発やステージングやプロダクションで非圧縮CSSまたはJSファイルを使用するように指示することができます.
    <environment include="Development">
        <div>The effective tag is: &lt;environment include="Development"&gt;</div>
    </environment>
    <environment exclude="Development">
        <div>The effective tag is: &lt;environment exclude="Development"&gt;</div>
    </environment>
    <environment include="Staging,Development,Staging_2">
        <div>
            The effective tag is:
            &lt;environment include="Staging,Development,Staging_2"&gt;
        </div>
    </environment>
    

    結論


    ASP .NETコアには、開発者としての機能のいくつかの機能を持っているだけでなく、我々は通常動作する環境の偉大な制御の非常に良い利点を取ることができます.この設定では、環境変数の値の単純な変更を使用してアプリケーションの動作を変更できます.