ASP.NET Core の概要
著者: Daniel Roth、Rick Anderson、Shaun Luttin
Note
これは、この記事の最新バージョンではありません。 現在のリリースについては、この記事の .NET 8 バージョンを参照してください。
警告
このバージョンの ASP.NET Core はサポート対象から除外されました。 詳細については、「.NET および .NET Core サポート ポリシー」を参照してください。 現在のリリースについては、この記事の .NET 8 バージョンを参照してください。
重要
この情報はリリース前の製品に関する事項であり、正式版がリリースされるまでに大幅に変更される可能性があります。 Microsoft はここに示されている情報について、明示か黙示かを問わず、一切保証しません。
現在のリリースについては、この記事の .NET 8 バージョンを参照してください。
ASP.NET Core は、インターネットに接続された最新のクラウド対応アプリを構築するための、クロス プラットフォームで高パフォーマンスのオープン ソース フレームワークです。
ASP.NET Core では次のことができます。
- Web アプリ、Web サービス、モノのインターネット (IoT) アプリ、モバイル バックエンドを構築する。
- Windows、macOS、Linux で好みの開発ツールを使う。
- クラウドまたはオンプレミスに展開する。
- .NET で実行します。
ASP.NET Core を選ぶ理由
何百万もの開発者は、ASP.NET 4.x を使用して、Web アプリを作成しました。 ASP.NET Core は ASP.NET 4.x を設計し直したものであり、無駄のないモジュール形式のフレームワークになるようなアーキテクチャ変更が含まれています。
ASP.NET Core の利点は次のとおりです。
- Web UI と Web API を構築するプロセスの統一。
- テストの容易性を考慮したアーキテクチャ。
- Razor Pages により、ページ コーディングに重点を置いたシナリオがより簡略化され、その生産性が高められます。
- Blazor により、ブラウザー内で JavaScript と共に C# を使用できます。 すべて .NET で記述された、サーバー側とクライアント側アプリのロジックを共有します。
- Windows、macOS、Linux 上で開発および実行できること。
- オープン ソースでコミュニティ重視。
- 最新のクライアント側フレームワークと開発ワークフローの統合。
- gRPC を使用したリモート プロシージャ コール (RPC) サービスのホストのサポート。
- クラウド対応で環境ベースの構成システム。
- 組み込まれている依存性の注入。
- 軽量で高パフォーマンスのモジュール化された HTTP 要求パイプライン。
- 次がホストする機能です。
- side-by-side でのバージョン管理。
- 最新の Web 開発を簡単にするツール。
ASP.NET Core MVC を使って Web API と Web UI を構築する
ASP.NET Core MVC は、Web API と Web アプリを構築する機能を備えています。
- モデル ビュー コントローラー (MVC) パターンは、Web API と Web アプリをテスト可能にするのに役立ちます。
- Razor Pages はページ ベースのプログラミング モデルであり、Web UI の開発を容易にし、生産性を高めます。
- Razor マークアップでは、Razor Pages および MVC ビュー用に生産性の高い構文が提供されます。
- タグ ヘルパーを使うと、Razor ファイルでの HTML 要素の作成とレンダリングに、サーバー側コードを組み込むことができます。
- 複数のデータ形式とコンテンツ ネゴシエーションの組み込みサポートにより、Web API はブラウザーやモバイル デバイスなどのさまざまなクライアントと接続できます。
- モデル バインドは、HTTP 要求からアクション メソッドのパラメーターにデータを自動的にマップします。
- モデル検証では、クライアント側とサーバー側の検証が自動的に実行されます。
クライアント側の開発
ASP.NET Core には、豊富な対話型 Web UI を構築するためのBlazorが含まれています。また、Angular、React、Vue、ブートストラップなど、他の一般的なフロントエンド JavaScript フレームワークとも統合されます。 詳細については、ASP.NET Core Blazor と "クライアント側の開発" の関連トピックを参照してください。
ASP.NET Core ターゲット フレームワーク
ASP.NET Core 3.x 以降では、.NET のみをターゲットにできます。
.NET をターゲットにする利点はいくつかあり、リリースのたびにその利点が増えています。 .NET Framework 経由による .NET には次のような利点があります。
- クロスプラットフォーム。 Windows、macOS、Linux 上で実行される。
- パフォーマンスの向上
- side-by-side でのバージョン管理
- 新しい API
- ソースを開く
推奨のラーニング パス
ASP.NET Core アプリを開発する場合の概要として、次の順序でチュートリアルを読むことをお勧めします。
開発または保守管理するアプリの種類に合わせてチュートリアルを選択します。
アプリの種類 シナリオ チュートリアル Web アプリ 新しいサーバー側 Web UI 開発 Razor Pages の使用を開始する Web アプリ MVC アプリの保守管理 MVC の概要 Web アプリ クライアント Web UI 開発 Blazor の概要 Web API RESTful HTTP サービス Web API の作成† リモート プロシージャ コール アプリ プロトコル バッファーを利用したコントラクト優先サービス gRPC サービスの概要 リアルタイムのアプリ サーバーと接続クライアント間での双方向通信 SignalR の概要 基本のデータ アクセスの実行方法を示すチュートリアルは次のとおりです。
シナリオ チュートリアル 新しい開発 Entity Framework Core を使用した Razor Pages MVC アプリの保守管理 Entity Framework Core を使用した MVC すべての種類のアプリに該当する ASP.NET Core の基本の概要は、次を参照してください。
興味のあるその他のトピックは、目次から参照してください。
†対話式 Web API チュートリアルもあります。 開発ツールはローカルにインストールする必要がありません。 このコードは、ブラウザーの Azure Cloud Shell で実行し、テストには curl を使用します。
.NET Framework からの移行
ASP.NET 4.x アプリを ASP.NET Core に移行するためのリファレンス ガイドについては、「ASP.NET から ASP.NET Core に更新する」を参照してください。
ASP.NET Core は、インターネットに接続された最新のクラウド対応アプリを構築するための、クロス プラットフォームで高パフォーマンスのオープン ソース フレームワークです。 ASP.NET Core では次のことができます。
- Web アプリ、Web サービス、モノのインターネット (IoT) アプリ、モバイル バックエンドを構築する。
- Windows、macOS、Linux で好みの開発ツールを使う。
- クラウドまたはオンプレミスに展開する。
- .NET Core または .NET Framework 上で実行する。
ASP.NET Core を選ぶ理由
何百万もの開発者は、ASP.NET 4.x を使用して、Web アプリを作成しました。 ASP.NET Core は ASP.NET 4.x を設計し直したものであり、無駄のないモジュール形式のフレームワークになるようにアーキテクチャが変更されています。
ASP.NET Core の利点は次のとおりです。
- Web UI と Web API を構築するプロセスの統一。
- テストの容易性を考慮したアーキテクチャ。
- Razor Pages により、ページ コーディングに重点を置いたシナリオがより簡略化され、その生産性が高められます。
- Blazor により、ブラウザー内で JavaScript と共に C# を使用できます。 すべて .NET で記述された、サーバー側とクライアント側アプリのロジックを共有します。
- Windows、macOS、Linux 上で開発および実行できること。
- オープン ソースでコミュニティ重視。
- 最新のクライアント側フレームワークと開発ワークフローの統合。
- gRPC を使用したリモート プロシージャ コール (RPC) サービスのホストのサポート。
- クラウド対応で環境ベースの構成システム。
- 組み込まれている依存性の注入。
- 軽量で高パフォーマンスのモジュール化された HTTP 要求パイプライン。
- 次がホストする機能です。
- side-by-side でのバージョン管理。
- 最新の Web 開発を簡単にするツール。
ASP.NET Core MVC を使って Web API と Web UI を構築する
ASP.NET Core MVC は、Web API と Web アプリを構築する機能を備えています。
- モデル ビュー コントローラー (MVC) パターンは、Web API と Web アプリをテスト可能にするのに役立ちます。
- Razor Pages はページ ベースのプログラミング モデルであり、Web UI の開発を容易にし、生産性を高めます。
- Razor マークアップでは、Razor Pages および MVC ビュー用に生産性の高い構文が提供されます。
- タグ ヘルパーを使うと、Razor ファイルでの HTML 要素の作成とレンダリングに、サーバー側コードを組み込むことができます。
- 複数のデータ形式とコンテンツ ネゴシエーションの組み込みサポートにより、Web API はブラウザーやモバイル デバイスなどのさまざまなクライアントと接続できます。
- モデル バインドは、HTTP 要求からアクション メソッドのパラメーターにデータを自動的にマップします。
- モデル検証では、クライアント側とサーバー側の検証が自動的に実行されます。
クライアント側の開発
ASP.NET Core は、人気のあるクライアント側のフレームワークとライブラリ (Blazor、Angular、React、Vue、ブートストラップなど) をシームレスに統合します。 詳細については、ASP.NET Core Blazor と "クライアント側の開発" の関連トピックを参照してください。
.NET Framework を対象とする ASP.NET Core
ASP.NET Core 2.x は、.NET Core または .NET Framework を対象にすることができます。 .NET Framework を対象とする ASP.NET Core アプリはクロスプラットフォームではありません。Windows でのみ実行されます。 一般に、ASP.NET Core 2.x は .NET Standard ライブラリで構成されています。 .NET Standard 2.0 を使って作成されたライブラリは、.NET Standard 2.0 を実装しているすべての .NET プラットフォーム上で動作します。
ASP.NET Core 2.x は、.NET Standard 2.0 を実装している .NET Framework バージョンにおいてサポートされています。
- .NET Framework の最新バージョンをお勧めします。
- .NET Framework 4.6.1 以降。
ASP.NET Core 3.0 以降は、.NET Core でのみ実行されます。 この変更に関する詳細については、「ASP.NET Core 3.0 で導入される変更について」を参照してください。
.NET Core を対象とする利点はいくつかあり、リリースのたびにその利点が増えています。 .NET Framework 経由による .NET Core には次のような利点があります。
- クロスプラットフォームである。 macOS、Linux、Windows で実行できる。
- パフォーマンスの向上
- side-by-side でのバージョン管理
- 新しい API
- ソースを開く
.NET Framework から .NET Core までの API ギャップを埋める目的で、Windows 互換機能パックにより、多くの Windows 限定の API が .NET Core で利用できるようになりました。 このような API は .NET Core 1.x で利用できませんでした。
推奨のラーニング パス
ASP.NET Core アプリを開発する場合の概要として、次の順序でチュートリアルと記事を読むことをお勧めします。
開発または管理するアプリの種類別のチュートリアルは次のとおりです。
アプリの種類 シナリオ チュートリアル Web アプリ 新規の開発 Razor Pages の使用を開始する Web アプリ MVC アプリの管理 MVC の概要 Web API Web API の作成† リアルタイムのアプリ SignalR の概要 基本のデータ アクセスの実行方法を示すチュートリアルは次のとおりです。
シナリオ チュートリアル 新規の開発 Entity Framework Core を使用した Razor Pages MVC アプリの管理 Entity Framework Core を使用した MVC すべての種類のアプリに該当する ASP.NET Core の基本の概要は、次を参照してください。
興味のあるその他のトピックは、目次から参照してください。
†すべてブラウザーで実行できる Web API チュートリアルもあります。ローカル IDE のインストールは不要です。 このコードは、Azure Cloud Shell で実行し、テストには curl を使用します。
.NET Framework からの移行
ASP.NET アプリを ASP.NET Core に移行するためのリファレンス ガイドについては、「ASP.NET から ASP.NET Core に更新する」を参照してください。
サンプルをダウンロードする方法
多くの記事やチュートリアルにサンプル コードへのリンクが含まれています。
- ASP.NET リポジトリの zip ファイルをダウンロードします。
AspNetCore.Docs-main.zip
ファイルを解凍します。- 解凍されたリポジトリ内の記事のサンプルにアクセスするには、記事のサンプル リンクの URL を使用して、サンプルのフォルダーに移動します。 通常、記事のサンプル リンクは、"サンプル コードを表示またはダウンロードしてください" というリンク テキストと共に記事の上部に表示されます。
サンプル コードのプリプロセッサ ディレクティブ
複数のシナリオを示すため、サンプル アプリでは #define
と #if-#else/#elif-#endif
のプリプロセッサ ディレクティブを使用してさまざまなサンプル コードのセクションを選択してコンパイルし、実行します。 このアプローチを活用するサンプルでは、C# ファイルの上部にある #define
ディレクティブを設定して、実行するシナリオに関連付けられたシンボルを定義します。 一部のサンプルでは、シナリオを実行するために複数のファイルの上部でシンボルを定義する必要があります。
たとえば、次の #define
のシンボル一覧は、4 つのシナリオが使用可能である (シンボルごとに 1 つのシナリオ) ことを示しています。 現在のサンプル構成では TemplateCode
のシナリオが実行されます。
#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode
ExpandDefault
のシナリオを実行するサンプルを変更するには、ExpandDefault
のシンボルを定義し、残りのシンボルをコメント アウトしたままにします。
#define ExpandDefault // TemplateCode or LogFromMain or FilterInCode
C# プリプロセッサ ディレクティブを使用してコードのセクションを選択的にコンパイルする方法の詳細については、「#define (C# リファレンス)」および「#if (C# リファレンス)」を参照してください。
破壊的変更とセキュリティ アドバイザリ
破壊的変更とセキュリティ アドバイザリは、アナウンス リポジトリで報告されます。 ラベル フィルターを選択すると、特定のバージョンにアナウンスを限定できます。
次の手順
詳細については、次のリソースを参照してください。
- ASP.NET Core を開始する
- Visual Studio を使用して Azure に ASP.NET Core アプリを発行する
- ASP.NET Core の基礎
- 週 1 回の ASP.NET Community Standup では、チームの進行状況とプランが報告され、 新しいブログやサード パーティ製ソフトウェアが取り上げられています。
ASP.NET Core