次の方法で共有


ASP.NET Core の概要

ダニエル・ロスリック・アンダーソンショーン・ルティン

これは、この記事の最新バージョンではありません。 現在のリリースについては、 この記事の .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 の利点は次のとおりです。

ASP.NET Core MVC を使って Web API と Web UI を構築する

ASP.NET Core MVC には、 Web APIWeb アプリを構築するための機能が用意されています。

  • モデル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 が含まれており、 AngularReactVueBootstrap などの他の一般的なフロントエンド JavaScript フレームワークとも統合されます。 詳細については、「BlazorASP.NET コア と関連トピック」を参照してください。

ASP.NET Core ターゲット フレームワーク

ASP.NET Core 3.x 以降では、.NET のみをターゲットにできます。

.NET をターゲットにする利点はいくつかあり、リリースのたびにその利点が増えています。 .NET Framework 経由による .NET には次のような利点があります。

ASP.NET Core アプリを開発する場合の概要として、次の順序でチュートリアルを読むことをお勧めします。

  1. 開発または保守管理するアプリの種類に合わせてチュートリアルを選択します。

    アプリの種類 シナリオ チュートリアル
    Web アプリ クライアント Web UI 開発 Blazorを始めましょう
    Web アプリ 新しいサーバー側 Web UI 開発 Razor ページの使い方を始める
    Web アプリ MVC アプリの保守管理 MVC の概要
    Web API RESTful HTTP サービス Web API を作成します
    リモート プロシージャ コール アプリ プロトコル バッファーを利用したコントラクト優先サービス gRPC サービスを開始する
    リアルタイムのアプリ サーバーと接続クライアント間での双方向通信 SignalRを始めましょう
  2. 基本のデータ アクセスの実行方法を示すチュートリアルは次のとおりです。

    シナリオ チュートリアル
    新しい開発 Blazor Entity Framework Core を使用する
    新しい開発 Razor Entity Framework Core を使用したページ
    MVC アプリの保守管理 Entity Framework Core を使用した MVC
  3. すべてのアプリの種類に適用される ASP.NET Core の基礎 の概要を確認します。

  4. 興味のあるその他のトピックは、目次から参照してください。

対話型の 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 では次のことができます。

ASP.NET Core を選ぶ理由

何百万人もの開発者が、web アプリを作成するために ASP.NET 4.x を使用しているか、使用しています。 ASP.NET Core は ASP.NET 4.x を設計し直したものであり、無駄のないモジュール形式のフレームワークになるようにアーキテクチャが変更されています。

ASP.NET Core の利点は次のとおりです。

ASP.NET Core MVC を使って Web API と Web UI を構築する

ASP.NET Core MVC には、 Web APIWeb アプリを構築するための機能が用意されています。

クライアント側の開発

ASP.NET Core は、 BlazorAngularReactVueBootstrap など、一般的なクライアント側のフレームワークとライブラリとシームレスに統合されます。 詳細については、「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 には次のような利点があります。

.NET Framework から .NET Core への API ギャップを埋めるために、 Windows 互換機能パック では、.NET Core で何千もの Windows 専用 API を使用できるようになりました。 このような API は .NET Core 1.x で利用できませんでした。

ASP.NET Core アプリを開発する場合の概要として、次の順序でチュートリアルと記事を読むことをお勧めします。

  1. 開発または管理するアプリの種類別のチュートリアルは次のとおりです。

    アプリの種類 シナリオ チュートリアル
    Web アプリ 新規の開発 Razor ページの使い方を始める
    Web アプリ MVC アプリの管理 MVC の概要
    Web API Web API を作成します
    リアルタイムのアプリ SignalRを始めましょう
  2. 基本のデータ アクセスの実行方法を示すチュートリアルは次のとおりです。

    シナリオ チュートリアル
    新規の開発 Razor Entity Framework Core を使用したページ
    MVC アプリの管理 Entity Framework Core を使用した MVC
  3. すべてのアプリの種類に適用される ASP.NET Core の基礎 の概要を確認します。

  4. 興味のあるその他のトピックは、目次から参照してください。

ブラウザーで完全に実行する Web API チュートリアルもあり、ローカル IDE のインストールは必要ありません。 このコードは Azure Cloud Shell で実行され、 curl はテストに使用されます。

.NET Framework からの移行

ASP.NET アプリを ASP.NET Core に移行するためのリファレンス ガイドについては、「ASP.NET から ASP.NET Core への更新」を参照してください。

サンプルをダウンロードする方法

多くの記事やチュートリアルにサンプル コードへのリンクが含まれています。

  1. ASP.NET リポジトリの zip ファイルをダウンロードします。
  2. AspNetCore.Docs-main.zip ファイルを解凍します。
  3. 解凍されたリポジトリ内の記事のサンプルにアクセスするには、記事のサンプル リンクの 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# リファレンス) を参照してください。

破壊的変更とセキュリティ アドバイザリ

重大な変更とセキュリティ アドバイザリは、 お知らせリポジトリで報告されます。 ラベル フィルターを選択すると、お知らせを特定のバージョンに制限できます。

次の手順

詳細については、次のリソースを参照してください。