ASP.NET Core の概要Introduction to ASP.NET Core

著者: Daniel RothRick AndersonShaun LuttinBy Daniel Roth, Rick Anderson, and Shaun Luttin

ASP.NET Core は、インターネットに接続された最新のクラウド対応アプリを構築するための、クロス プラットフォームで高パフォーマンスのオープン ソース フレームワークです。ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern, cloud-enabled, Internet-connected apps. ASP.NET Core では次のことができます。With ASP.NET Core, you can:

  • Web アプリ、Web サービス、モノのインターネット (IoT) アプリ、モバイル バックエンドを構築する。Build web apps and services, Internet of Things (IoT) apps, and mobile backends.
  • Windows、macOS、Linux で好みの開発ツールを使う。Use your favorite development tools on Windows, macOS, and Linux.
  • クラウドまたはオンプレミスに展開する。Deploy to the cloud or on-premises.
  • [.NET Core] で実行する。Run on .NET Core.

ASP.NET Core を選ぶ理由Why choose ASP.NET Core?

何百万もの開発者は、ASP.NET 4.x を使用して、Web アプリを作成しました。Millions of developers use or have used ASP.NET 4.x to create web apps. ASP.NET Core は ASP.NET 4.x を設計し直したものであり、無駄のないモジュール形式のフレームワークになるようなアーキテクチャ変更が含まれています。ASP.NET Core is a redesign of ASP.NET 4.x, including architectural changes that result in a leaner, more modular framework.

ASP.NET Core の利点は次のとおりです。ASP.NET Core provides the following benefits:

ASP.NET Core MVC を使って Web API と Web UI を構築するBuild web APIs and web UI using ASP.NET Core MVC

ASP.NET Core MVC は、Web APIWeb アプリを構築する機能を備えています。ASP.NET Core MVC provides features to build web APIs and web apps:

クライアント側の開発Client-side development

ASP.NET Core は、人気のあるクライアント側のフレームワークとライブラリ (BlazorAngularReactBootstrap など) をシームレスに統合します。ASP.NET Core integrates seamlessly with popular client-side frameworks and libraries, including Blazor, Angular, React, and Bootstrap. 詳細については、ASP.NET Core Blazor の概要 と "クライアント側の開発" の関連トピックを参照してください。For more information, see ASP.NET Core Blazor の概要 and related topics under Client-side development.

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

ASP.NET Core 3.x 以降では、.NET Core のみをターゲットにできます。ASP.NET Core 3.x and later can only target .NET Core. 一般に、ASP.NET Core は .NET Standard ライブラリで構成されています。Generally, ASP.NET Core is composed of .NET Standard libraries. .NET Standard 2.0 を使って作成されたライブラリは、.NET Standard 2.0 を実装しているすべての .NET プラットフォーム上で動作します。Libraries written with .NET Standard 2.0 run on any .NET platform that implements .NET Standard 2.0.

.NET Core を対象とする利点はいくつかあり、リリースのたびにその利点が増えています。There are several advantages to targeting .NET Core, and these advantages increase with each release. .NET Framework 経由による .NET Core には次のような利点があります。Some advantages of .NET Core over .NET Framework include:

ASP.NET Core アプリを開発する場合の概要として、次の順序でチュートリアルを読むことをお勧めします。We recommend the following sequence of tutorials for an introduction to developing ASP.NET Core apps:

  1. 開発または保守管理するアプリの種類に合わせてチュートリアルを選択します。Follow a tutorial for the app type you want to develop or maintain.

    アプリの種類App type シナリオScenario チュートリアルTutorial
    Web アプリWeb app 新しいサーバー側 Web UI 開発New server-side web UI development Razor Pages の使用を開始するGet started with Razor Pages
    Web アプリWeb app MVC アプリの保守管理Maintaining an MVC app MVC の概要Get started with MVC
    Web アプリWeb app クライアント Web UI 開発Client-side web UI development Blazor の概要Get started with Blazor
    Web APIWeb API RESTful HTTP サービスRESTful HTTP services Web API の作成Create a web API
    リモート プロシージャ コール アプリRemote Procedure Call app プロトコル バッファーを利用したコントラクト優先サービスContract-first services using Protocol Buffers gRPC サービスの概要Get started with a gRPC service
    リアルタイムのアプリReal-time app サーバーと接続クライアント間での双方向通信Bidirectional communication between servers and connected clients SignalR の概要Get started with SignalR
  2. 基本のデータ アクセスの実行方法を示すチュートリアルは次のとおりです。Follow a tutorial that shows how to do basic data access.

    シナリオScenario チュートリアルTutorial
    新しい開発New development Entity Framework Core を使用した Razor PagesRazor Pages with Entity Framework Core
    MVC アプリの保守管理Maintaining an MVC app Entity Framework Core を使用した MVCMVC with Entity Framework Core
  3. すべての種類のアプリに該当する ASP.NET Core の基本の概要は、次を参照してください。Read an overview of ASP.NET Core fundamentals that apply to all app types.

  4. 興味のあるその他のトピックは、目次から参照してください。Browse the table of contents for other topics of interest.

対話式 Web API チュートリアルもあります。†There's also an interactive web API tutorial. 開発ツールはローカルにインストールする必要がありません。No local installation of development tools is required. このコードは、ブラウザーの Azure Cloud Shell で実行し、テストには curl を使用します。The code runs in an Azure Cloud Shell in your browser, and curl is used for testing.

.NET Framework からの移行Migrate from .NET Framework

ASP.NET 4.x アプリを ASP.NET Core に移行するためのリファレンス ガイドについては、「ASP.NET から ASP.NET Core への移行」を参照してください。For a reference guide to migrating ASP.NET 4.x apps to ASP.NET Core, see ASP.NET から ASP.NET Core への移行.

ASP.NET Core は、インターネットに接続された最新のクラウド対応アプリを構築するための、クロス プラットフォームで高パフォーマンスのオープン ソース フレームワークです。ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern, cloud-enabled, Internet-connected apps. ASP.NET Core では次のことができます。With ASP.NET Core, you can:

ASP.NET Core を選ぶ理由Why choose ASP.NET Core?

何百万もの開発者は、ASP.NET 4.x を使用して、Web アプリを作成しました。Millions of developers use or have used ASP.NET 4.x to create web apps. ASP.NET Core は ASP.NET 4.x を設計し直したものであり、無駄のないモジュール形式のフレームワークになるようにアーキテクチャが変更されています。ASP.NET Core is a redesign of ASP.NET 4.x, with architectural changes that result in a leaner, more modular framework.

ASP.NET Core の利点は次のとおりです。ASP.NET Core provides the following benefits:

ASP.NET Core MVC を使って Web API と Web UI を構築するBuild web APIs and web UI using ASP.NET Core MVC

ASP.NET Core MVC は、Web APIWeb アプリを構築する機能を備えています。ASP.NET Core MVC provides features to build web APIs and web apps:

クライアント側の開発Client-side development

ASP.NET Core は、人気のあるクライアント側のフレームワークとライブラリ (BlazorAngularReactBootstrap など) をシームレスに統合します。ASP.NET Core integrates seamlessly with popular client-side frameworks and libraries, including Blazor, Angular, React, and Bootstrap. 詳細については、ASP.NET Core Blazor の概要 と "クライアント側の開発" の関連トピックを参照してください。For more information, see ASP.NET Core Blazor の概要 and related topics under Client-side development.

.NET Framework を対象とする ASP.NET CoreASP.NET Core targeting .NET Framework

ASP.NET Core 2.x は、.NET Core または .NET Framework を対象にすることができます。ASP.NET Core 2.x can target .NET Core or .NET Framework. .NET Framework を対象とする ASP.NET Core アプリはクロスプラットフォームではありません—Windows でのみ実行されます。ASP.NET Core apps targeting .NET Framework aren't cross-platform—they run on Windows only. 一般に、ASP.NET Core 2.x は .NET Standard ライブラリで構成されています。Generally, ASP.NET Core 2.x is made up of .NET Standard libraries. .NET Standard 2.0 を使って作成されたライブラリは、.NET Standard 2.0 を実装しているすべての .NET プラットフォーム上で動作します。Libraries written with .NET Standard 2.0 run on any .NET platform that implements .NET Standard 2.0.

ASP.NET Core 2.x は、.NET Standard 2.0 を実装している .NET Framework バージョンにおいてサポートされています。ASP.NET Core 2.x is supported on .NET Framework versions that implement .NET Standard 2.0:

  • .NET Framework の最新バージョンをお勧めします。.NET Framework latest version is recommended.
  • .NET Framework 4.6.1 以降。.NET Framework 4.6.1 and later.

ASP.NET Core 3.0 以降は、.NET Core でのみ実行されます。ASP.NET Core 3.0 and later will only run on .NET Core. この変更に関する詳細については、「ASP.NET Core 3.0 で導入される変更について」を参照してください。For more details regarding this change, see A first look at changes coming in ASP.NET Core 3.0.

.NET Core を対象とする利点はいくつかあり、リリースのたびにその利点が増えています。There are several advantages to targeting .NET Core, and these advantages increase with each release. .NET Framework 経由による .NET Core には次のような利点があります。Some advantages of .NET Core over .NET Framework include:

.NET Framework から .NET Core までの API ギャップを埋める目的で、Windows 互換機能パックにより、多くの Windows 限定の API が .NET Core で利用できるようになりました。To help close the API gap from .NET Framework to .NET Core, the Windows Compatibility Pack made thousands of Windows-only APIs available in .NET Core. このような API は .NET Core 1.x で利用できませんでした。These APIs weren't available in .NET Core 1.x.

ASP.NET Core アプリを開発する場合の概要として、次の順序でチュートリアルと記事を読むことをお勧めします。We recommend the following sequence of tutorials and articles for an introduction to developing ASP.NET Core apps:

  1. 開発または管理するアプリの種類別のチュートリアルは次のとおりです。Follow a tutorial for the type of app you want to develop or maintain.

    アプリの種類App type シナリオScenario チュートリアルTutorial
    Web アプリWeb app 新規の開発For new development Razor Pages の使用を開始するGet started with Razor Pages
    Web アプリWeb app MVC アプリの管理For maintaining an MVC app MVC の概要Get started with MVC
    Web APIWeb API Web API の作成Create a web API
    リアルタイムのアプリReal-time app SignalR の概要Get started with SignalR
  2. 基本のデータ アクセスの実行方法を示すチュートリアルは次のとおりです。Follow a tutorial that shows how to do basic data access.

    シナリオScenario チュートリアルTutorial
    新規の開発For new development Entity Framework Core を使用した Razor PagesRazor Pages with Entity Framework Core
    MVC アプリの管理For maintaining an MVC app Entity Framework Core を使用した MVCMVC with Entity Framework Core
  3. すべての種類のアプリに該当する ASP.NET Core の基本の概要は、次を参照してください。Read an overview of ASP.NET Core fundamentals that apply to all app types.

  4. 興味のあるその他のトピックは、目次から参照してください。Browse the Table of Contents for other topics of interest.

すべてブラウザーでたどる Web API のチュートリアルもあります。ローカルに IDE をインストールする必要はありません。†There's also a web API tutorial that you follow entirely in the browser, no local IDE installation required. このコードは、Azure Cloud Shell で実行し、テストには curl を使用します。The code runs in an Azure Cloud Shell, and curl is used for testing.

.NET Framework からの移行Migrate from .NET Framework

ASP.NET アプリを ASP.NET Core に移行するためのリファレンス ガイドについては、「ASP.NET から ASP.NET Core への移行」を参照してください。For a reference guide to migrating ASP.NET apps to ASP.NET Core, see ASP.NET から ASP.NET Core への移行.

サンプルをダウンロードする方法How to download a sample

多くの記事やチュートリアルにサンプル コードへのリンクが含まれています。Many of the articles and tutorials include links to sample code.

  1. ASP.NET リポジトリの zip ファイルをダウンロードします。Download the ASP.NET repository zip file.
  2. Docs-master.zip ファイルを解凍します。Unzip the Docs-master.zip file.
  3. サンプル リンクの URL を使って、サンプル ディレクトリに移動します。Use the URL in the sample link to help you navigate to the sample directory.

サンプル コードのプリプロセッサ ディレクティブPreprocessor directives in sample code

複数のシナリオを示すため、サンプル アプリでは #define#if-#else/#elif-#endif のプリプロセッサ ディレクティブを使用してさまざまなサンプル コードのセクションを選択してコンパイルし、実行します。To demonstrate multiple scenarios, sample apps use the #define and #if-#else/#elif-#endif preprocessor directives to selectively compile and run different sections of sample code. このアプローチを活用するサンプルでは、C# ファイルの上部にある #define ディレクティブを設定して、実行するシナリオに関連付けられたシンボルを定義します。For those samples that make use of this approach, set the #define directive at the top of the C# files to define the symbol associated with the scenario that you want to run. 一部のサンプルでは、シナリオを実行するために複数のファイルの上部でシンボルを定義する必要があります。Some samples require defining the symbol at the top of multiple files in order to run a scenario.

たとえば、次の #define のシンボル一覧は、4 つのシナリオが使用可能である (シンボルごとに 1 つのシナリオ) ことを示しています。For example, the following #define symbol list indicates that four scenarios are available (one scenario per symbol). 現在のサンプル構成では TemplateCode のシナリオが実行されます。The current sample configuration runs the TemplateCode scenario:

#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode

ExpandDefault のシナリオを実行するサンプルを変更するには、ExpandDefault のシンボルを定義し、残りのシンボルをコメント アウトしたままにします。To change the sample to run the ExpandDefault scenario, define the ExpandDefault symbol and leave the remaining symbols commented-out:

#define ExpandDefault // TemplateCode or LogFromMain or FilterInCode

C# プリプロセッサ ディレクティブを使用してコードのセクションを選択的にコンパイルする方法の詳細については、「#define (C# リファレンス)」および「#if (C# リファレンス)」を参照してください。For more information on using C# preprocessor directives to selectively compile sections of code, see #define (C# Reference) and #if (C# Reference).

サンプル コードのリージョンRegions in sample code

一部のサンプル アプリには、#region#end-region の C# ディレクティブに囲まれたコードのセクションが含まれています。Some sample apps contain sections of code surrounded by #region and #endregion C# directives. ドキュメントのビルド システムによって、レンダリングされたドキュメントのトピックにこのリージョンが挿入されます。The documentation build system injects these regions into the rendered documentation topics.

リージョン名には通常、"snippet" という単語が含まれています。Region names usually contain the word "snippet." 次の例は snippet_WebHostDefaults という名前のリージョンを示しています。The following example shows a region named snippet_WebHostDefaults:

#region snippet_WebHostDefaults
Host.CreateDefaultBuilder(args)
    .ConfigureWebHostDefaults(webBuilder =>
    {
        webBuilder.UseStartup<Startup>();
    });
#endregion

先述の C# コード スニペットは、トピックのマークダウン ファイルの次の行で示されています。The preceding C# code snippet is referenced in the topic's markdown file with the following line:

[!code-csharp[](sample/SampleApp/Program.cs?name=snippet_WebHostDefaults)]

コードを囲む #region#endregion のディレクティブは安全に無視 (または削除) することができます。You may safely ignore (or remove) the #region and #endregion directives that surround the code. トピックで説明されているサンプル シナリオを実行する予定がある場合は、これらのディレクティブ内のコードを変更しないでください。Don't alter the code within these directives if you plan to run the sample scenarios described in the topic. 他のシナリオを試す場合は、自由にコードを変更できます。Feel free to alter the code when experimenting with other scenarios.

詳細については、「Contribute to the ASP.NET documentation: Code snippets (ASP.NET に貢献する: コード スニペット)」を参照してください。For more information, see Contribute to the ASP.NET documentation: Code snippets.

次の手順Next steps

詳細については、次のリソースを参照してください。For more information, see the following resources: