構成を ASP.NET Core に移行する

作成者: Steve SmithScott Addie

前の記事では、ASP.NET MVC プロジェクトを ASP.NET Core MVC に移行しました。 この記事では、構成を移行します。

サンプル コードを表示またはダウンロードします (ダウンロード方法)。

セットアップの構成

ASP.NET Core では、以前のバージョンの ASP.NET で使用された Global.asax ファイルと web.config ファイルが使用されません。 初期のバージョンの ASP.NET では、アプリケーションのスタートアップ ロジックが Global.asax 内の Application_StartUp メソッドに置かれました。 その後、ASP.NET MVC では、Startup.cs ファイルがプロジェクトのルートに含まれ、アプリケーションの起動時に呼び出されました。 ASP.NET Core ではこの手法を全面的に採用し、すべてのスタートアップ ロジックを Startup.cs ファイルに配置しました。

web.config ファイルも ASP.NET Core で場所が変更されました。 構成自体は、Startup.cs で説明されるアプリケーション スタートアップ プロシージャの一部として、構成できるようになりました。 構成では引き続き XML ファイルを活用できますが、通常、ASP.NET Core プロジェクトでは、appsettings.json のように JSON 形式ファイルで構成値が置かれます。 ASP.NET Core の構成システムでは、環境変数にも簡単にアクセスできます。変数により、環境固有の値により安全で堅牢な場所を提供できます。 これは特に、ソース管理にチェックインすべきではない、接続文字列や API キーのようなシークレットに当てはまります。 ASP.NET Core の構成に関する詳細については、「構成」を参照してください。

この記事では、前の記事で部分的に移行した ASP.NET Core プロジェクトから始めます。 構成を設定するには、プロジェクトのルートにある Startup.cs ファイルに次のコンストラクターとプロパティを追加します。

public Startup(IConfiguration configuration)
{
    Configuration = configuration;
}

public IConfiguration Configuration { get; }

次の using ステートメントを追加する必要があるため、この時点では Startup.cs ファイルはコンパイルされないことに注意してください。

using Microsoft.Extensions.Configuration;

適切な項目テンプレートを使用し、プロジェクトのルートに appsettings.json ファイルを追加します。

Add AppSettings JSON

構成設定を web.config から移行する

今回の ASP.NET MVC プロジェクトには、web.config<connectionStrings> 要素に必須のデータベース接続文字列を含めました。 今回の ASP.NET Core プロジェクトでは、appsettings.json ファイルにこの情報を格納します。 appsettings.json 開き、次が既に含まれていることを確認します。

{
    "Data": {
        "DefaultConnection": {
            "ConnectionString": "Server=(localdb)\\MSSQLLocalDB;Database=_CHANGE_ME;Trusted_Connection=True;"
        }
    }
}

上の強調表示された行で、データベースの名前を _CHANGE_ME からお使いのデータベースの名前に変更します。

まとめ

ASP.NET Core では、1 つのファイルにすべてのスタートアップ ロジックが置かれます。その中で、必要なサービスと依存関係を定義し、構成できます。 JSON など、さまざまなファイル形式と環境変数を活用できる柔軟な構成特徴で web.config ファイルが置換されます。