ASP.NET Core Blazor 用のツール

注意

これは、この記事の最新バージョンではありません。 現在のリリースについては、この記事の .NET 8 バージョンを参照してください。

警告

このバージョンの ASP.NET Core はサポート対象から除外されました。 詳細については、「.NET および .NET Core サポート ポリシー」を参照してください。 現在のリリースについては、この記事の .NET 8 バージョンを参照してください。

重要

この情報はリリース前の製品に関する事項であり、正式版がリリースされるまでに大幅に変更される可能性があります。 Microsoft はここに示されている情報について、明示か黙示かを問わず、一切保証しません。

現在のリリースについては、この記事の .NET 8 バージョンを参照してください。

この記事では、いくつかのツールを使用し、Blazor アプリを構築するためのツールについて説明します。

  • Visual Studio (VS): Windows の .NET 開発者向けの最も包括的な統合開発環境 (IDE) です。 ソフトウェア開発のあらゆるステージを向上させるためのツールと機能が含まれています。
  • Visual Studio Code (VS Code) は、Blazor アプリの開発に使用できるオープン ソースのクロスプラットフォーム コード エディターです。
  • .NET CLI: .NET コマンド ライン インターフェイス (CLI) は、.NET アプリケーションの開発、構築、実行、および発行を行うためのクロスプラットフォーム ツールチェーンです。 .NET CLI は、.NET SDK に付属しており、SDK がサポートする任意のプラットフォームで動作します。

お使いのツールに合わせて、この記事のピボットを選択します。

Visual Studio を使用して Blazor アプリを作成するには、次のガイダンスを使用します。

  • ASP.NET および Web 開発ワークロードと共に、最新バージョンの Visual Studio をインストールする

  • 使用できる Blazor テンプレートのいずれかを使って、新しいプロジェクトを作成します。

    • Blazor Web アプリ: 対話型サーバー側レンダリング (対話型 SSR) とクライアント側レンダリング (CSR) をサポートする Blazor Web アプリを作成します。 Blazor Web アプリ テンプレートは、Blazor で作業を開始してサーバー側とクライアント側の Blazor 機能について学習するのにお勧めです。
    • Blazor WebAssembly スタンドアロン アプリ: 静的サイトとしてデプロイできるスタンドアロンのクライアント Web アプリを作成します。

[次へ] を選択します。

  • ASP.NET および Web 開発ワークロードと共に、最新バージョンの Visual Studio をインストールする

  • 新しいプロジェクトを作成します。

    • Blazor Server エクスペリエンスの場合は、デモ コードと Bootstrap を含む Blazor Server アプリ テンプレートを選択するか、デモ コードと Bootstrap を含まない Blazor Server App Empty テンプレートを選択します。 [次へ] を選択します。
    • スタンドアロンの Blazor WebAssembly エクスペリエンスの場合は、デモ コードと Bootstrap を含む Blazor WebAssembly App テンプレートを選択するか、デモ コードと Bootstrap を含まない Blazor WebAssembly App Empty テンプレートを選択します。 [次へ] を選択します。
  • ASP.NET および Web 開発ワークロードと共に、最新バージョンの Visual Studio をインストールする

  • 新しいプロジェクトを作成します。

    • Blazor Server エクスペリエンスの場合は、 Blazor Server アプリ テンプレートを選択します。 [次へ] を選択します。
    • Blazor WebAssembly エクスペリエンスの場合は、 Blazor WebAssembly アプリ テンプレートを選択します。 [次へ] を選択します。
  • "ホストされている" Blazor WebAssembly アプリの場合は、[追加情報] ダイアログで [ASP.NET Core Hosted] (ホストされている ASP.NET Core) チェックボックスをオンにします。
  • [作成] を選択します

Visual Studio Code は、Blazor アプリの開発に使用できるオープン ソースのクロスプラットフォーム統合開発環境 (IDE) です。

ご利用のプラットフォーム用の最新バージョンの Visual Studio Code をインストールします。

Visual Studio Code 用の C# 開発キットをインストールします。 詳細については、「ASP.NET Core Blazor アプリをデバッグする」を参照してください。

VS Code を初めて使用する場合は、VS Code のドキュメントを参照してください。 .NET SDK を初めて使用する場合は、「.NET SDK とは」と .NET SDK ドキュメントの関連記事を参照してください。

新しいプロジェクトを作成します。

  • VS Code を開きます。

  • [エクスプローラー] ビューに移動し、[.NET プロジェクトの作成] ボタンを選択します。 あるいは、[コマンド パレット]Ctrl+Shift+P キーで呼び出し、「.NET」と入力して、.NET: New Project コマンドを見つけて選択することもできます。

  • 一覧から Blazor プロジェクト テンプレートを選択します。

  • [プロジェクトの場所] ダイアログで、プロジェクト用のフォルダーを作成または選択します。

  • [コマンド パレット] にプロジェクトの名前を入力するか、既定の名前をそのまま使用します。

  • [プロジェクトの作成] を選択してプロジェクトを作成するか、[すべてのテンプレート オプションを表示する] を選択してプロジェクトのオプションを調整します。 テンプレートとオプションの詳細については、「Blazor プロジェクト テンプレートとテンプレート オプション」セクションを参照してください。

  • キーボードの F5 キーを押して、デバッガーありでアプリを実行するか、Ctrl+F5 キーを押して、デバッガーなしでアプリを実行します。

    [コマンド パレット] では、デバッガーを選択するよう求められます。 一覧から [C#] を選択します。

    次に、https 起動構成を選択します。

  • アプリを停止するには、キーボードの Shift+F5 キーを押します。

Blazor ドキュメントの複数の箇所にある ASP.NET Core の開発に関する Visual Studio Code (VS Code) の手順では、.NET SDKの一部である .NET CLI が使用されています。 .NET CLI コマンドは、VS Code の統合ターミナルで発行されます。これは、既定では PowerShell コマンド シェルです。 ターミナルを開くには、メニュー バーの [ターミナル] メニューから [新しいターミナル] を選択します。

Visual Studio Code の構成と使用の詳細については、Visual Studio Code のドキュメントを参照してください。

ホストされている Blazor WebAssembly の起動とタスクの構成

ホストされている Blazor WebAssemblyソリューションについては、launch.json ファイルと tasks.json ファイルを含む .vscode フォルダーを追加 (または移動) します。このフォルダーには、通常のプロジェクト フォルダーである Client、Server、Shared が含まれます。 Server プロジェクトでホストされている Blazor WebAssembly アプリが launch.json ファイルと tasks.json ファイルの構成によって実行されるように更新または確認します。

Properties/launchSettings.json ファイルを調べ、applicationUrl プロパティからアプリの URL を確認します。 フレームワークのバージョンによって、URL プロトコルはセキュリティで保護されている (HTTPS) https://localhost:{PORT}、またはセキュリティで保護されていない (HTTP) http://localhost:{PORT} です。この {PORT} プレースホルダーは割り当てられたポートです。 launch.json ファイルで使うために、この URL をメモしておきます。

.vscode/launch.json ファイルの起動構成で:

  • 現在の作業ディレクトリ (cwd) を Server プロジェクト フォルダーに設定します。
  • url プロパティを使用して、アプリの URL を指定します。 Properties/launchSettings.json ファイルからの以前に記録した値を使用します。
"cwd": "${workspaceFolder}/{SERVER APP FOLDER}",
"url": "{URL}"

上記の構成例では:

  • {SERVER APP FOLDER} プレースホルダーは Server プロジェクトのフォルダーです (通常は Server)。
  • {URL} プレースホルダーはアプリの URL であり、アプリの Properties/launchSettings.json ファイルの applicationUrl プロパティに指定されています。

Microsoft Edge よりも Google Chrome が優先される場合は、構成に "browser": "chrome" という追加のプロパティを更新または追加します。

次の .vscode/launch.json ファイルの例では:

  • 現在の作業ディレクトリを Server フォルダーに設定します。
  • アプリの URL を http://localhost:7268 に設定します。
  • 既定のブラウザーを Microsoft Edge から Google Chrome に変更します。
"cwd": "${workspaceFolder}/Server",
"url": "http://localhost:7268",
"browser": "chrome"

完全な .vscode/launch.json ファイル:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "blazorwasm",
      "name": "Launch and Debug Blazor WebAssembly Application",
      "request": "launch",
      "cwd": "${workspaceFolder}/Server",
      "url": "http://localhost:7268",
      "browser": "chrome"
    }
  ]
}

.vscode/tasks.json で、 Server アプリのプロジェクト ファイルへのパスを指定する build 引数を追加します。

"${workspaceFolder}/{SERVER APP FOLDER}/{PROJECT NAME}.csproj",

前の引数は次のとおりです。

  • {SERVER APP FOLDER} プレースホルダーは Server プロジェクトのフォルダーです (通常は Server)。
  • {PROJECT NAME} プレースホルダーはアプリの名前です。通常、Blazor WebAssembly プロジェクト テンプレートから生成されたアプリ内のソリューションの名前の後に .Server が付けられています。

ソリューションの Server フォルダーに BlazorHosted という名前の Server プロジェクトを含むサンプル .vscode/tasks.json ファイルを次に示します。

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build",
      "command": "dotnet",
      "type": "process",
        "args": [
          "build",
          "${workspaceFolder}/Server/BlazorHosted.Server.csproj",
          "/property:GenerateFullPaths=true",
          "/consoleloggerparameters:NoSummary",
        ],
        "group": "build",
        "presentation": {
          "reveal": "silent"
        },
        "problemMatcher": "$msCompile"
    }
  ]
}

Note

現時点ではブラウザー デバッグのみサポートされています。

dotnet watch run を使用してアプリを実行するなどして、デバッグ中にホステッド Blazor WebAssembly ソリューションのバックエンド Server アプリを自動的に再構築することはできません。

.vscode/launch.json (launch の構成):

...
"cwd": "${workspaceFolder}/{SERVER APP FOLDER}",
...

現在の作業ディレクトリの前の構成 (cwd) では、{SERVER APP FOLDER} プレースホルダーは Server プロジェクトのフォルダーです (通常は "Server")。

システム上で Microsoft Edge が使用されており、Google Chrome がインストールされていない場合は、"browser": "edge" の追加のプロパティを構成に追加します。

Server のプロジェクト フォルダー、およびそれによって、既定のブラウザーである Google Chrome ではなく、Microsoft Edge がデバッグ実行用のブラウザーとして生成される例を次に示します。

...
"cwd": "${workspaceFolder}/Server",
"browser": "edge"
...

.vscode/tasks.json (dotnet コマンド 引数):

...
"${workspaceFolder}/{SERVER APP FOLDER}/{PROJECT NAME}.csproj",
...

前の引数は次のとおりです。

  • {SERVER APP FOLDER} プレースホルダーは Server プロジェクトのフォルダーです (通常は "Server")。
  • {PROJECT NAME} プレースホルダーはアプリの名前です。通常、Blazor プロジェクト テンプレートから生成されたアプリ内のソリューションの名前の後に ".Server" が付けられた名前となっています。

Blazor WebAssembly アプリでの SignalR の使用に関するチュートリアルの次の例では、Server のプロジェクト フォルダー名と BlazorWebAssemblySignalRApp.Server のプロジェクト名を使用します。

...
"args": [
  "build",
    "${workspaceFolder}/Server/BlazorWebAssemblySignalRApp.Server.csproj",
    ...
],
...

.NET SDK は一連のライブラリとツールであり、開発者はこれを使って .NET のアプリケーションやライブラリを作成できます。

.NET SDK をインストールします。 コマンドは、.NET CLI を使用してコマンド シェルで発行されます。

以前に .NET SDK を 1 つ以上インストールしており、アクティブなバージョンを確認する場合は、コマンド シェルで次のコマンドを実行します。

dotnet --version

.NET SDK を初めて使用する場合は、「.NET SDK とは」と .NET SDK ドキュメントの関連記事を参照してください。

新しいプロジェクトを作成します。

  • cd コマンドを使用して、プロジェクト フォルダーを作成するディレクトリに移動します (たとえば、cd c:/users/Bernie_Kopell/Documents)。

  • 既定の対話型サーバー側レンダリング (対話型 SSR) を使用した Blazor Web アプリ エクスペリエンスを得るには、次のコマンドを実行します。

    dotnet new blazor -o BlazorApp
    
  • スタンドアロンの Blazor WebAssembly エクスペリエンスを得るには、blazorwasm テンプレートを使うコマンド シェルで次のコマンドを実行します。

    dotnet new blazorwasm -o BlazorApp
    

新しいプロジェクトを作成します。

  • cd コマンドを使用して、プロジェクト フォルダーを作成するディレクトリに移動します (たとえば、cd c:/users/Bernie_Kopell/Documents)。

  • デモ コードと Bootstrap が含まれる Blazor Server エクスペリエンスの場合は、次のコマンドを実行します。

    dotnet new blazorserver -o BlazorApp
    
  • デモ コードと Bootstrap を使用したスタンドアロンの Blazor WebAssembly エクスペリエンスの場合は、次のコマンドを実行します。

    dotnet new blazorwasm -o BlazorApp
    
  • デモ コードと Bootstrap が含まれるホステッド Blazor WebAssembly エクスペリエンスの場合は、ホステッド オプション (-ho/--hosted) をコマンドに追加します。

    dotnet new blazorwasm -o BlazorApp -ho
    

新しいプロジェクトを作成します。

  • cd コマンドを使用して、プロジェクト フォルダーを作成するディレクトリに移動します (たとえば、cd c:/users/Bernie_Kopell/Documents)。

  • Blazor WebAssembly エクスペリエンスの場合、次のコマンドを実行します。

    dotnet new blazorwasm -o BlazorApp
    
  • ホステッド Blazor WebAssembly エクスペリエンスの場合は、ホステッド オプション (-ho または --hosted) をコマンドに追加します。

    dotnet new blazorwasm -o BlazorApp -ho
    
  • Blazor Server エクスペリエンスの場合、次のコマンドを実行します。

    dotnet new blazorserver -o BlazorApp
    

テンプレートとオプションの詳細については、「Blazor プロジェクト テンプレートとテンプレート オプション」セクションを参照してください。

アプリを実行する

重要

Blazor Web アプリを実行する際は、ソリューションのサーバー プロジェクト (名前が .Client で終わらないプロジェクト) からアプリを起動します。

重要

ホストされている Blazor WebAssembly アプリを実行する場合は、ソリューションの Server プロジェクトから、そのアプリを実行します。

キーボードの Ctrl+F5 キーを押してデバッガーなしでアプリを実行します。

SSL を使用するようにプロジェクトが構成されていない場合、Visual Studio に次のダイアログが表示されます。

[自己署名証明書の信頼] ダイアログ

ASP.NET Core SSL 証明書を信頼する場合は、[はい] を選択します。

次のダイアログが表示されます。

セキュリティ警告のダイアログ

リスクを確認し、証明書をインストールする場合は、[はい] を選択します。

Firefox ブラウザーの HTTPS 開発証明書の信頼の詳細については、「ASP.NET Core で HTTPS を適用する」を参照してください。

Visual Studio:

  • アプリをコンパイルして実行します。
  • https://localhost:{PORT} で既定のブラウザーを起動すると、アプリの UI が表示されます。 {PORT} プレースホルダーは、アプリの作成時に割り当てられたランダムなポートです。 ローカル ポートの競合によりポートを変更する必要がある場合は、プロジェクトの Properties/launchSettings.json ファイルでポートを変更します。

Firefox 以外のブラウザーで HTTPS 開発証明書を信頼する方法については、「HTTPS 開発証明書の信頼に関するガイダンス」を参照してください。 Firefox ブラウザーを使用する場合は、「Firefox の証明書信頼に関するガイダンス」を参照してください。

VS Code で、Ctrl+F5 キー (Windows) または +F5 キー (macOS) を押して、デバッグなしでアプリを実行します。

VS Code の UI 上部にある [コマンド パレット][デバッガーの選択] プロンプトで、[C#] を選択します。 次のプロンプトで、HTTPS プロファイル ([https]) を選択します。

https://localhost:{PORT} で既定のブラウザーが起動し、アプリの UI が表示されます。 {PORT} プレースホルダーは、アプリの作成時に割り当てられたランダムなポートです。 ローカル ポートの競合によりポートを変更する必要がある場合は、プロジェクトの Properties/launchSettings.json ファイルでポートを変更します。

Firefox 以外のブラウザーで HTTPS 開発証明書を信頼する方法については、「HTTPS 開発証明書の信頼に関するガイダンス」を参照してください。 Firefox ブラウザーを使用する場合は、その記事の「Firefox の証明書信頼に関するガイダンス」セクションを参照してください。

プロジェクトのルート フォルダーに開いたコマンド シェルで、dotnet watch コマンドを実行し、アプリをコンパイルして起動します。

dotnet watch

https://localhost:{PORT} で既定のブラウザーが起動し、アプリの UI が表示されます。 {PORT} プレースホルダーは、アプリの作成時に割り当てられたランダムなポートです。 ローカル ポートの競合によりポートを変更する必要がある場合は、プロジェクトの Properties/launchSettings.json ファイルでポートを変更します。

Blazor Web アプリ プロジェクト テンプレートから作成されたアプリを .NET CLI で実行すると、アプリの起動設定ファイル (Properties/launchSettings.json) で最初に見つかるプロファイルが HTTP (安全でない) プロファイル (http) であるため、アプリは HTTP (安全でない) エンドポイントで実行されます。 HTTP プロファイルが最初の位置に配置されたのは、Windows 以外のユーザーに対して SSL/HTTPS セキュリティの採用による移行を容易にするためです。

アプリを SSL/HTTPS で実行する方法の 1 つに、-lp|--launch-profile オプションhttps プロファイル名を指定して dotnet watch コマンドに渡す方法があります。

dotnet watch -lp https

もう 1 つの方法は、Properties/launchSettings.json ファイル内で http プロファイルよりも上の位置にhttps プロファイルを移動し、変更を保存する方法です。 ファイル内のプロファイルの順序を変更すると、dotnet watch コマンドは常に既定で https プロファイルを使用します。

アプリを停止する

次のいずれかの方法を使用してアプリを停止します。

  • ブラウザー ウィンドウを閉じます。
  • Visual Studio で、次のいずれかを実行します。
    • Visual Studio のメニュー バーの [停止] ボタンを使用します。

      Visual Studio のメニュー バーの [停止] ボタン

    • キーボードの Shift+F5 キーを押します。

次の方法を使用してアプリを停止します。

  1. ブラウザー ウィンドウを閉じます。
  2. VS Code では、次のいずれかを実行します。
    • [実行] メニューから [デバッグの停止] を選択します。
    • キーボードの Shift+F5 キーを押します。

次の方法を使用してアプリを停止します。

  1. ブラウザー ウィンドウを閉じます。
  2. コマンド シェルで、Ctrl+C キー (Windows) または +C キー (macOS) を押します。

Visual Studio ソリューション ファイル (.sln)

"ソリューション" とは、1 つまたは複数の関連するコード プロジェクトを整理するためのコンテナーです。 ソリューション ファイルでは独自の形式が使用され、直接編集することは意図されていません。

Visual Studio および Visual Studio Code (VS Code) は、ソリューション ファイル (.sln) を使用してソリューションの設定を格納します。 .NET CLI はソリューション ファイルを使用してプロジェクトを整理しませんが、dotnet sln コマンド を使用して、ソリューション ファイルの作成やソリューション ファイル内のプロジェクトの一覧表示/変更を行うことができます。 発行、テスト、パッケージ化など、他のさまざまな .NET CLI コマンドで、ソリューション ファイルのパスが使用されます。

Blazor ドキュメント全体で、"ソリューション" は、Blazor WebAssembly プロジェクト テンプレート ([ASP.NET Core でホストされた] オプションが有効) またはBlazor Hybrid プロジェクト テンプレートから作成されたアプリを示すために使用されます。 これらのプロジェクト テンプレートから生成されたアプリには、既定でソリューション ファイル (.sln) が含まれています。 ホストされている Blazor WebAssembly アプリで、開発者が Visual Studio を使用していないのであれば、.NET CLI コマンドで使用されていないソリューション ファイルは、無視または削除することができます。

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

Blazor プロジェクト テンプレートとテンプレート オプション

Blazor フレームワークには、新しいアプリを作成するためのプロジェクト テンプレートが用意されています。 Blazor 開発用に選択したツール (Visual Studio、Visual Studio Code、または .NET コマンド ライン インターフェイス (CLI)) に関わらず、このテンプレートは、新しい Blazor プロジェクトとソリューションを作成するために使用されます。

  • Blazor Web アプリ プロジェクト テンプレート: blazor
  • スタンドアロン Blazor WebAssembly アプリ プロジェクトのテンプレート: blazorwasm
  • Blazor Server プロジェクト テンプレート: blazorserverblazorserver-empty
  • Blazor WebAssembly プロジェクト テンプレート: blazorwasmblazorwasm-empty
  • Blazor Server プロジェクト テンプレート: blazorserver
  • Blazor WebAssembly プロジェクト テンプレート: blazorwasm

Blazor プロジェクト テンプレートについて詳しくは、「ASP.NET Core Blazor プロジェクトの構造」をご覧ください。

次のサブセクションで使用されるレンダリングの用語と概念は、基礎の概要に関する記事の次のセクションで紹介されています。

レンダリング モードの詳細なガイダンスは、ASP.NET Core Blazorレンダリング モードに関する記事で提供されています。

対話型レンダリング モード

  • [サーバー] オプションを使うと、既定で対話型サーバー側レンダリング (対話型 SSR) が有効になります。
  • クライアント側レンダリング (CSR) でのみ対話機能を有効にするには、[WebAssembly] オプションを使用します。
  • 両方の対話型レンダリング モードと、実行時に自動的に切り替える機能を有効にするには、[自動 (サーバーと WebAssembly)] (自動) レンダリング モード オプションを使用します。
  • インタラクティビティが None に設定されている場合、生成されるアプリにはインタラクティビティはありません。 アプリは、静的なサーバー側レンダリング専用に構成されます。

対話型自動レンダリング モードでは、.NET アプリ バンドルとランタイムがブラウザーにダウンロードされる間は最初に対話型 SSR が使用されます。 .NET WebAssembly ランタイムがアクティブになると、レンダリング モードは対話型の WebAssembly レンダリングに切り替わります。

既定では、Blazor Web アプリ テンプレートによって、1 つのプロジェクトを使用する静的および対話型の両方の SSR が有効になります。 CSR も有効にした場合、プロジェクトには、WebAssembly ベース コンポーネント用の追加のクライアント プロジェクト (.Client) も含められます。 クライアント プロジェクトからビルドされた出力がブラウザーにダウンロードされ、クライアントで実行されます。 WebAssembly または自動レンダリング モードを使うコンポーネントは、すべてクライアント プロジェクトからビルドする必要があります。

重要

Blazor Web アプリを使用する場合、Blazor ドキュメントのサンプル コンポーネントのほとんどは、機能するために、また記事で説明されている概念を実証するためにインタラクティビティを "必要とします"。 記事で提供されているサンプル コンポーネントをテストする場合は、アプリがグローバル インタラクティビティを採用しているか、コンポーネントが対話型レンダリング モードを採用していることを確認してください。

対話機能の場所

対話機能の場所のオプション:

  • ページ/コンポーネントごと: 既定では、ページまたはコンポーネントごとにインタラクティビティを設定します。
  • グローバル: このオプションを使用すると、アプリ全体の対話機能がグローバルに設定されます。

インタラクティビティの場所は、[対話型レンダリング モード]None でなく、認証が有効でない場合にのみ設定できます。

サンプル ページ

サンプル ページとブートストラップ スタイルに基づくレイアウトを含めるには、[サンプル ページを含める] オプションを使用します。 サンプル ページとブートストラップ スタイル指定のないプロジェクトでは、このオプションを無効にします。

テンプレート オプションに関する追加のガイダンス

テンプレート オプションの詳細については、以下のリソースを参照してください。

  • .NET Core ドキュメント内の記事「dotnet new 用の .NET の既定のテンプレート」:
    • blazorserver (blazorserver-empty オプションを含む)
    • blazorwasm (blazorwasm-empty オプションを含む)
  • コマンド シェルで dotnet new CLI コマンドにヘルプ オプション (-h または --help) を渡します:
    • dotnet new blazorserver -h
    • dotnet new blazorserver-empty -h
    • dotnet new blazorwasm -h
    • dotnet new blazorwasm-empty -h

テンプレート オプションの詳細については、以下のリソースを参照してください。

  • .NET Core ドキュメント内の記事「dotnet new 用の .NET の既定のテンプレート」:
  • コマンド シェルで dotnet new CLI コマンドにヘルプ オプション (-h または --help) を渡します:
    • dotnet new blazorserver -h
    • dotnet new blazorwasm -h

その他のリソース