前の記事では、 ASP.NET MVC プロジェクトを ASP.NET Core MVC に移行し始めました。 この記事では、構成を移行します。
サンプル コードを表示またはダウンロードします (ダウンロード方法)。
セットアップ構成
ASP.NET Core では、以前のバージョンの ASP.NET が使用していた Global.asax ファイルとweb.configファイルは使用されなくなりました。 以前のバージョンの ASP.NET では、アプリケーションの起動ロジックは 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 の 構成の詳細については、「構成」を参照してください。
Warning
この記事では、ユーザーの認証を必要としないローカル データベースを使用します。 運用アプリでは、使用可能な最も安全な認証フローを使用する必要があります。 デプロイされたテスト アプリと運用アプリの認証の詳細については、「セキュリティで保護された認証フロー」をご覧ください。
構成をセットアップするには、プロジェクトのルートにある Startup.cs ファイルに次のコンストラクターとプロパティを追加します。
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
この時点で、 Startup.cs ファイルはコンパイルされません。次の using ステートメントを追加する必要があります。
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 からデータベースの名前に変更します。
Summary
ASP.NET Core では、アプリケーションのすべてのスタートアップ ロジックが 1 つのファイルに配置され、必要なサービスと依存関係を定義および構成できます。 web.config ファイルは、JSON や環境変数など、さまざまなファイル形式を利用できる柔軟な構成機能に置き換えられます。
ASP.NET Core