注
これは、この記事の最新バージョンではありません。 現在のリリースについては、 この記事の .NET 9 バージョンを参照してください。
警告
このバージョンの ASP.NET Core はサポート対象から除外されました。 詳細については、 .NET および .NET Core サポート ポリシーを参照してください。 現在のリリースについては、 この記事の .NET 9 バージョンを参照してください。
重要
この情報はリリース前の製品に関する事項であり、正式版がリリースされるまでに大幅に変更される可能性があります。 Microsoft はここに示されている情報について、明示か黙示かを問わず、一切保証しません。
現在のリリースについては、 この記事の .NET 9 バージョンを参照してください。
ASP.NET Core は、現代的な Web アプリケーションを構築するためのクロスプラットフォームかつハイ パフォーマンスのフレームワークです。 この オープン ソース フレームワークを使用すると、開発者は Windows、macOS、Linux で実行できる Web アプリケーション、サービス、API を作成できます。 大規模なアプリ開発用に構築されており、任意のサイズのワークロードを処理できるため、エンタープライズ レベルのアプリケーションに対して堅牢な選択肢となります。
ASP.NET Core では次のことができます。
- Web アプリとサービス、 Azure IoT (モノのインターネット) アプリ、モバイル バックエンドを構築します。
- Windows、macOS、Linux で好みの開発ツールを使う。
- クラウドまたはオンプレミスに展開する。
- .NET で実行します。
ASP.NET Core を選ぶ理由
何百万人もの開発者が、web アプリを作成するために ASP.NET 4.x を使用しているか、使用しています。 ASP.NET Core は ASP.NET 4.x を設計し直したものであり、無駄のないモジュール形式のフレームワークになるようなアーキテクチャ変更が含まれています。
ASP.NET Core の利点は次のとおりです。
- Web UI と Web API を構築するプロセスの統一。
- テストの容易性を考慮したアーキテクチャ。
- Blazor により、ブラウザー内で JavaScript と共に C# を使用できます。 すべて .NET で記述された、サーバー側とクライアント側アプリのロジックを共有します。
- Razor Pages を使用すると、ページに重点を置いたコーディングシナリオがより簡単で生産性が向上します。
- Windows、macOS、Linux 上で開発および実行できること。
- オープン ソースと コミュニティに重点を置いた。
- 最新の クライアント側フレームワーク と開発ワークフローの統合。
- gRPC を使用したリモート プロシージャ コール (RPC) サービスのホストのサポート。
- クラウド対応の環境ベースの 構成システム。
- 組み込みの 依存性注入。
- 軽量で 高パフォーマンスでモジュール式の HTTP 要求パイプライン。
- 次がホストする機能です。
- サイド バイ サイドのバージョン管理。
- 最新の Web 開発を簡単にするツール。
ASP.NET Core MVC を使って Web API と Web UI を構築する
ASP.NET Core MVC には、 Web API と Web アプリを構築するための機能が用意されています。
- モデルView-Controller (MVC) パターンは、Web API と Web アプリをテスト可能にするのに役立ちます。
- Blazorは、WebAssembly を介したサーバー側レンダリングとクライアント側レンダリングの両方をサポートする C# に基づくコンポーネント ベースの Web UI フレームワークです。
- Razor Pages は、Web UI の構築を容易にし、生産性を向上させるページ ベースのプログラミング モデルです。
- Razor マークアップ は、 Razor Pages ビューと MVC ビューの生産性の高い構文を提供します。
- タグ ヘルパーを 使用すると、サーバー側のコードを使用して、 Razor ファイル内の HTML 要素の作成とレンダリングに参加できます。
- 複数のデータ形式とコンテンツ ネゴシエーションの組み込みサポートにより、Web API はブラウザーやモバイル デバイスなど、幅広いクライアントに到達できます。
- モデル バインド は、HTTP 要求のデータをアクション メソッド パラメーターに自動的にマップします。
- モデル検証 では、クライアント側とサーバー側の検証が自動的に実行されます。
クライアント側の開発
ASP.NET Core には、豊富な対話型 Web UI を構築するための Blazor が含まれており、 Angular、 React、 Vue、 Bootstrap などの他の一般的なフロントエンド JavaScript フレームワークとも統合されます。 詳細については、「BlazorASP.NET コア と関連トピック」を参照してください。
ASP.NET Core ターゲット フレームワーク
ASP.NET Core 3.x 以降では、.NET のみをターゲットにできます。
.NET をターゲットにする利点はいくつかあり、リリースのたびにその利点が増えています。 .NET Framework 経由による .NET には次のような利点があります。
- クロスプラットフォーム。 Windows、macOS、Linux 上で実行される。
- パフォーマンスの向上
- サイド バイ サイドのバージョン管理
- 新しい API
- ソースを開く
推奨のラーニング パス
ASP.NET Core アプリを開発する場合の概要として、次の順序でチュートリアルを読むことをお勧めします。
開発または保守管理するアプリの種類に合わせてチュートリアルを選択します。
アプリの種類 シナリオ チュートリアル Web アプリ クライアント Web UI 開発 Blazorを始めましょう Web アプリ 新しいサーバー側 Web UI 開発 Razor ページの使い方を始める Web アプリ MVC アプリの保守管理 MVC の概要 Web API RESTful HTTP サービス Web API を作成します† リモート プロシージャ コール アプリ プロトコル バッファーを利用したコントラクト優先サービス gRPC サービスを開始する リアルタイムのアプリ サーバーと接続クライアント間での双方向通信 SignalRを始めましょう 基本のデータ アクセスの実行方法を示すチュートリアルは次のとおりです。
シナリオ チュートリアル 新しい開発 Blazor Entity Framework Core を使用する 新しい開発 Razor Entity Framework Core を使用したページ 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 アプリとサービス、 Azure IoT (モノのインターネット) アプリ、モバイル バックエンドを構築します。
- Windows、macOS、Linux で好みの開発ツールを使う。
- クラウドまたはオンプレミスに展開する。
- .NET Core または .NET Framework で実行します。
ASP.NET Core を選ぶ理由
何百万人もの開発者が、web アプリを作成するために ASP.NET 4.x を使用しているか、使用しています。 ASP.NET Core は ASP.NET 4.x を設計し直したものであり、無駄のないモジュール形式のフレームワークになるようにアーキテクチャが変更されています。
ASP.NET Core の利点は次のとおりです。
- Web UI と Web API を構築するプロセスの統一。
- テストの容易性を考慮したアーキテクチャ。
- Blazor により、ブラウザー内で JavaScript と共に C# を使用できます。 すべて .NET で記述された、サーバー側とクライアント側アプリのロジックを共有します。
- Razor Pages を使用すると、ページに重点を置いたコーディングシナリオがより簡単で生産性が向上します。
- Windows、macOS、Linux 上で開発および実行できること。
- オープン ソースと コミュニティに重点を置いた。
- 最新の クライアント側フレームワーク と開発ワークフローの統合。
- gRPC を使用したリモート プロシージャ コール (RPC) サービスのホストのサポート。
- クラウド対応の環境ベースの 構成システム。
- 組み込みの 依存性注入。
- 軽量で 高パフォーマンスでモジュール式の HTTP 要求パイプライン。
- 次がホストする機能です。
- サイド バイ サイドのバージョン管理。
- 最新の Web 開発を簡単にするツール。
ASP.NET Core MVC を使って Web API と Web UI を構築する
ASP.NET Core MVC には、 Web API と Web アプリを構築するための機能が用意されています。
- モデルView-Controller (MVC) パターンは、Web API と Web アプリをテスト可能にするのに役立ちます。
- Razor Pages は、Web UI の構築を容易にし、生産性を向上させるページ ベースのプログラミング モデルです。
- Razor マークアップ は、 Razor Pages ビューと MVC ビューの生産性の高い構文を提供します。
- タグ ヘルパーを 使用すると、サーバー側のコードを使用して、 Razor ファイル内の HTML 要素の作成とレンダリングに参加できます。
- 複数のデータ形式とコンテンツ ネゴシエーションの組み込みサポートにより、Web API はブラウザーやモバイル デバイスなど、幅広いクライアントに到達できます。
- モデル バインド は、HTTP 要求のデータをアクション メソッド パラメーターに自動的にマップします。
- モデル検証 では、クライアント側とサーバー側の検証が自動的に実行されます。
クライアント側の開発
ASP.NET Core は、 Blazor、 Angular、 React、 Vue、 Bootstrap など、一般的なクライアント側のフレームワークとライブラリとシームレスに統合されます。 詳細については、「BlazorASP.NET コア と関連トピック」を参照してください。
.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 で実行できる。
- パフォーマンスの向上
- サイド バイ サイドのバージョン管理
- 新しい API
- ソースを開く
.NET Framework から .NET Core への API ギャップを埋めるために、 Windows 互換機能パック では、.NET Core で何千もの Windows 専用 API を使用できるようになりました。 このような API は .NET Core 1.x で利用できませんでした。
推奨のラーニング パス
ASP.NET Core アプリを開発する場合の概要として、次の順序でチュートリアルと記事を読むことをお勧めします。
開発または管理するアプリの種類別のチュートリアルは次のとおりです。
アプリの種類 シナリオ チュートリアル Web アプリ 新規の開発 Razor ページの使い方を始める Web アプリ MVC アプリの管理 MVC の概要 Web API Web API を作成します† リアルタイムのアプリ SignalRを始めましょう 基本のデータ アクセスの実行方法を示すチュートリアルは次のとおりです。
シナリオ チュートリアル 新規の開発 Razor Entity Framework Core を使用したページ 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# リファレンス) を参照してください。
破壊的変更とセキュリティ アドバイザリ
重大な変更とセキュリティ アドバイザリは、 お知らせリポジトリで報告されます。 ラベル フィルターを選択すると、お知らせを特定のバージョンに制限できます。
次の手順
詳細については、次のリソースを参照してください。
- Blazorを始めましょう
- ASP.NET Core の概要
- Visual Studio を使用して ASP.NET Core アプリを Azure に発行する
- ASP.NET コアの基礎
- 毎週の ASP.NET コミュニティのスタンドアップ では、チームの進捗状況と計画について説明します。 新しいブログやサード パーティ製ソフトウェアが取り上げられています。
ASP.NET Core