演習 - 新しい .NET Aspire プロジェクトを作成する
会社の最新プロジェクトで新しいサービスに取り組む前に、システムに .NET Aspire のすべての前提条件があることを確認する必要があります。 チェックする最善の方法は、スターター テンプレートを使用して新しい .NET Aspire プロジェクトを作成することです。
演習では、すべての前提条件をインストールし、新しい .NET Aspire スターター アプリを作成します。 次に、Redis を使用してキャッシュ コンポーネントをアプリに追加する方法について説明します。 最後に、アプリケーションをテストし、Aspire ダッシュボードを手短に調べましょう。
このタブを選択すると、Visual Studio のこの演習の手順が表示されます。
必須コンポーネントのインストール
前のユニットでは、前提条件について説明しました。 では、そのインストール手順を説明します。
.NET 8 をインストールする
この .NET 8 のリンクに従って、オペレーティング システムに適したインストーラーを選択します。 たとえば、Windows 11 と最新のプロセッサを使用している場合は、x64 .NET 8 SDK for Windows を選択します。
ダウンロードが完了した後、インストーラーを実行し、指示に従います。 ターミナル ウィンドウで、次のコマンドを実行して、インストールが成功したことを確認します。
dotnet --version
インストールした .NET SDK のバージョン番号が表示されるはずです。 次に例を示します。
8.0.300-preview.24203.14
Visual Studio 2022 Preview をインストールする
この Visual Studio 2022 Preview のリンクに従って、[プレビューのダウンロード] を選択します。 ダウンロードが完了した後、インストーラーを実行し、指示に従います。
Docker Desktop のインストール
この Docker Desktop のリンクに従って、オペレーティング システムに適したインストーラーを選択します。 ダウンロードが完了した後、インストーラーを実行し、指示に従います。
Docker Desktop アプリケーションを開き、サービス契約に同意します。
.NET Aspire ワークロードのインストール
Visual Studio を使用して次のように .NET Aspire ワークロードをインストールします。
Visual Studio インストーラーを実行します。
Visual Studioの横にある [変更]を選択します。
ASP.NET と Web 開発 ワークロードを選択します。
[インストールの詳細]パネルで、[.NET Aspire SDK (プレビュー)]を選択します。
[変更]を選択 して .NET Asper コンポーネントをインストールします。
最新バージョンの .NET Aspire がインストールされていることを確認し、新しいターミナルで次のコマンドを実行します。
dotnet workload list
ワークロードをインストールすると、次の内容が表示されます。
Installed Workload Id Manifest Version Installation Source
---------------------------------------------------------------------------------------------
aspire 8.0.0/8.0.100 SDK 8.0.300-preview.24203, VS 17.10.34902.84
Use `dotnet workload search` to find additional workloads to install.
新しい .NET Aspire Starter アプリの作成
前提条件がインストールされたので、新しいアプリを作成しましょう。
Visual Studio を開きます。 ダイアログ ボックスで、[新しいプロジェクトの作成] を選択します。
[テンプレートの検索] ボックスに aspire と入力します。
[.NET Aspire Starter Application] を選択し、[次へ] を選択します。
[ソリューション名] ボックスに AspireTestApp と入力します。
[場所] ボックスに、新しいアプリを作成するフォルダーを入力します。
[次へ] を選択します。
既定の [.NET 8.0 (長期サポート)] は選択したままにします。
[キャッシュに Redis を使用する (サポートされているコンテナー ランタイムが必要です)をオフにします。
次のステップでは、Redis サポートを手動で追加します。
[作成] を選択します
メニューから [デバッグ] を選択し、[デバッグの開始] を選択します (または、F5 キーを押します)。
Docker エンジンの起動を求められたら、[はい] を選択します。
ダッシュボードが既定の Web ブラウザーで開きます。
Webfrontend エンドポイントのURL を選択します。 ポートはランダムに割り当てられるため、ダッシュボードが一致しない場合があります。
Blazor アプリには、表示する予測データを取得するためにバックエンド API サービスを呼び出す単純なカウンター ページとお天気ページがあります。
Blazor アプリと .NET Aspire ダッシュボードの [ブラウザー] タブを閉じます。 Visual Studio で、デバッグを停止します。
キャッシュ コンポーネントを .NET Aspire プロジェクトに追加する
次に、Redis キャッシュ コンポーネントを .NET Aspire プロジェクトに追加しましょう。 次のアプリ ホストから始めます。
- ソリューション エクスプローラーで、 AspireTestApp.AppHost プロジェクトを右クリックし、[NuGet パッケージの管理] を選択します。
- [参照] タブを選択し、 [プレリリースを含める] を選択します。
- aspire redis で検索し、Aspire.Hosting.Redis パッケージを選択します。
- 右側のウィンドウの、[バージョン] で 最新 の 8.0.0 を選択し、[インストール] を選択します。
- [ライセンスの同意] ウィンドウで、[同意する] を選択します。
Redis 構成をアプリ ホスト プロジェクトに追加するには、AspireTestApp.AppHost/Program.cs ファイルを開き、次のコードを追加します。
// Add Redis var redis = builder.AddRedis("cache");
このコードは、ローカル Redis コンテナー インスタンスを作成するようにオーケストレーションを構成します。
Redis キャッシュを使用するには、現在の Webfrontend サービスを変更します。 このコードを
builder.AddProject<Projects.AspireTestApp_Web>("webfrontend") .WithExternalHttpEndpoints() .WithReference(apiService);
このコードにします。
builder.AddProject<Projects.AspireTestApp_Web>("webfrontend") .WithExternalHttpEndpoints() .WithReference(apiService) .WithReference(redis);
拡張メソッドは
WithReference
、出力キャッシュに Redis を自動的に使用するように UI を構成します。次に、使用中のプロジェクトで Redis が利用できます。
- ソリューション エクスプローラーで、 AspireTestApp.Web プロジェクトを右クリックし、[NuGet パッケージの管理] を選択します。
- [参照] タブを選択し、 [プレリリースを含める] を選択します。
- aspire redis を検索し、Aspire.StackExchange.Redis.OutputCaching パッケージを選択 します。
- 右側のウィンドウの、[バージョン] で 最新 の 8.0.0 を選択し、[インストール] を選択します。
- [ライセンスの同意] ウィンドウで、[同意する] を選択します。
次に、Visual Studio を使用して、Redis コンポーネントを使用するコードを追加します。
必要に応じて、Visual Studio で AspireTestAppソリューションを開きます 。
ソリューション エクスプローラーで、AspireTestApp.Web プロジェクトの下にある Program.cs を選択します。
次のコードを
var builder = WebApplication.CreateBuilder(args);
の下に追加します。// Add Redis caching builder.AddRedisOutputCache("cache");
このコードによって以下が行われます。
- 指定された接続名で Redisインスタンスを使用できるように ASP.NET Core 出力キャッシュを構成します。
- 対応する正常性チェック、ログ記録、テレメトリが自動的に有効なります。
AspireTestApp.Web/Components/Pages/Home.razor の内容を次のコードに置き換えます。
@page "/" @attribute [OutputCache(Duration = 10)] <PageTitle>Home</PageTitle> <h1>Hello, world!</h1> Welcome to your new app on @DateTime.Now
上記のコードでは、属性
OutputCache
は、10秒の期間を指定します。 ページがキャッシュされた後、10 秒間のウィンドウ内にある後続の要求は、すべてキャッシュされた出力を受け取ります。
Aspireは、アプリケーションに新しいコンポーネントを簡単に追加できるように設計されていることが確認できます。 NuGet パッケージを追加してアプリケーションに新しいコンポーネントを追加し、 Web と AppHost プロジェクトの Program.cs ファイルに数行のコードを追加します。 Aspire は、Redis コンテナーと出力キャッシュを自動的に構成します。
アプリケーションをテストする
次に、アプリケーションを実行して、キャッシュの動作を確認しましょう。 Visual Studio:
メニューから [デバッグ] を選択し、[デバッグの開始] を選択します (または、F5 キーを押します)。 ソリューションがビルドされ、既定の Web ブラウザーで [Aspire ダッシュボード] が開きます。
Webfrontend サービスのエンドポイント URL を選択して、アプリケーションのホーム ページを表示します。
ブラウザーで、ページを数回更新します。 ページ上の時刻は、10 秒間のキャッシュ期間内に変更されません。
ソリューションによって Redis コンテナーが作成されます。 Docker デスクトップを開き 、コンテナーが実行されているのを確認します。
Visual Studio で実行されているソリューションを停止するには、Shift+F5 キーを押します。
Docker デスクトップ を開き、[コンテナー/アプリ] を選択します。 redis:latest が実行さていないことが確認できます。
.NET Aspire を使用して、新しいキャッシュ コンポーネントをアプリケーションに追加するのがいかに簡単であるかを確認できました。 NuGet パッケージを追加し、その後、数行のコードを追加しました。 .NET Aspire は、Redis コンテナーと出力キャッシュを自動的に構成しました。