構成を ASP.NET Core に移行する
前の記事では、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
ファイルを追加します。
構成設定を 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 ファイルが置換されます。
ASP.NET Core