.NET .NET Aspire の概要
.NET Aspire は、監視可能な運用対応アプリを構築するためのツール、テンプレート、パッケージのセットです。.NET Aspire は、最新のアプリ開発で特定の課題をブートストラップまたは改善する NuGet パッケージのコレクションを通じて提供されます。 今日のアプリでは、一般的にデータベース、メッセージング、キャッシュなどの多数のサービスが使用されており、その多くは .NET.NET Aspire Integrationsを介してサポートされています。 サポートの詳細については、.NET.NET Aspire サポート ポリシーのを参照してください。
なぜ .NET.NET Aspire?
.NET .NET Aspire は、さまざまなプロジェクトとリソースを持つアプリを構築するエクスペリエンスを向上させます。 デプロイされたシナリオをエミュレートする開発時の生産性の強化により、相互接続されたアプリをすばやく開発できます。 柔軟性を高めるために設計された .NET.NET Aspire を使用すると、パーツを好みのツールやワークフローに置き換えたり拡張したりできます。 主な機能は次のとおりです。
- Dev-Time オーケストレーション: .NET.NET Aspire は、複数プロジェクトのアプリケーション、コンテナー リソース、およびその他の依存関係を実行して接続するための機能 ローカル開発環境提供します。
- 統合: .NET Aspire 統合は、一般的に使用されるサービス (Redis や Postgresなど) 用の NuGet パッケージであり、標準化されたインターフェイスにより、アプリと一貫してシームレスに接続できます。
- ツール: .NET Aspire には、Visual Studio、Visual Studio Code、.NET プロジェクトの作成と操作に役立つ .NET 用のプロジェクト テンプレートとツール エクスペリエンスが付属しています。
開発時オーケストレーション
.NET .NET Aspireでは、"オーケストレーション" は主に、アプリの構成と相互接続の管理を簡略化することで、ローカル開発 エクスペリエンスを強化することに重点を置いています。 .NET .NET Aspireのオーケストレーションは、運用環境で使用される堅牢なシステム (Kubernetesなど) を置き換えることを意図していない点に注意することが重要です。 代わりに、サービス検出、環境変数、コンテナー構成のセットアップを効率化し、低レベルの実装の詳細に対処する必要がない抽象化のセットです。 .NET .NET Aspireを使用すると、コードは、複雑な手動手順を必要とせずに開発マシン上で一貫したブートストラップ エクスペリエンスを実現し、開発フェーズ中の管理が容易になります。
.NET .NET Aspire オーケストレーションは、次の懸念事項を支援します。
- アプリ構成: アプリケーションを構成する .NET プロジェクト、コンテナー、実行可能ファイル、クラウド リソースを指定します。
- サービスの検出と接続文字列の管理: アプリ ホストは、開発者エクスペリエンスを簡略化するために、適切な接続文字列、ネットワーク構成、およびサービス検出情報を挿入します。
たとえば、.NET Aspireを使用して、次のコードはローカル Redis コンテナー リソースを作成し、それが使用可能になるまで待機してから、いくつかのヘルパー メソッド呼び出しで "frontend"
プロジェクト内の適切な接続文字列を構成します。
// Create a distributed application builder given the command line arguments.
var builder = DistributedApplication.CreateBuilder(args);
// Add a Redis server to the application.
var cache = builder.AddRedis("cache");
// Add the frontend project to the application and configure it to use the
// Redis server, defined as a referenced dependency.
builder.AddProject<Projects.MyFrontend>("frontend")
.WithReference(cache)
.WaitFor(cache);
詳細については、オーケストレーションの概要
大事な
AddRedis を呼び出すと、ローカル開発環境に新しい Redis コンテナーが作成されます。 既存の Redis インスタンスを使用する場合は、AddConnectionString メソッドを使用して既存の接続文字列を参照できます。 詳細については、「既存のリソースを参照する」を参照してください。
.NET .NET Aspire 統合
.NET .NET Aspire 統合 は、Redis や PostgreSQLなどの一般的なサービスやプラットフォームへの接続を簡略化するように設計された NuGet パッケージです。 .NET .NET Aspire 統合では、正常性チェックやテレメトリの追加などの標準化されたパターンを使用して、クラウド リソースのセットアップと対話が処理されます。 統合は 2 倍です。"ホスティング" 統合 接続先のサービスを表し、"クライアント" 統合 は、そのサービスのクライアントまたはコンシューマーを表します。 つまり、多くのホスティング パッケージには、コード内のサービス接続を処理する対応するクライアント パッケージがあります。
各統合は、.NET.NET Aspire アプリ ホストと連携するように設計されており、名前付きリソースを参照 によって構成が自動的に挿入されます。 つまり、Example.ServiceFoo
たとえば、.NET.NET Aspire Service Bus 統合を使用した次のコードを考えてみましょう。
builder.AddAzureServiceBusClient("servicebus");
AddAzureServiceBusClient メソッドは、次の問題を処理します。
- ServiceBusClientに接続するための DI コンテナーにシングルトンとして Azure Service Bus を登録します。
- コードまたは設定を通じて ServiceBusClient 構成をインラインで適用します。
- Azure Service Bus の使用状況に固有の対応する正常性チェック、ログ記録、テレメトリを有効にします。
使用可能な統合の完全な一覧については、.NET.NET Aspire 統合 概要ページを参照してください。
プロジェクト テンプレートとツール
.NET Aspire では、Visual Studio、Visual Studio Code、および .NET CLI用の一連のプロジェクト テンプレートとツール エクスペリエンスが提供されます。 これらのテンプレートは、.NET Aspire プロジェクトを作成して操作したり、既存のコードベースに .NET Aspire を追加したりできるように設計されています。 テンプレートには、すぐに使い始めるための意見が反映された一連のデフォルト設定が含まれています。たとえば、正常性チェックを有効にし、.NET アプリでのログインを可能にするための定型コードが含まれています。 これらの既定値は完全にカスタマイズ可能であるため、ニーズに合わせて編集および調整できます。
.NET .NET Aspire テンプレートには、一般的なサービス構成を処理する定型的な拡張メソッドも含まれています。
builder.AddServiceDefaults();
AddServiceDefaults
の機能の詳細については、「.NET.NET Aspire サービスのデフォルト値を参照してください。
Program.cs ファイルに追加すると、上記のコードで次の問題が処理されます。
- OpenTelemetry: ASP.NET Core、gRPC、HTTP の書式設定されたログ記録、ランタイム メトリック、組み込みメーター、トレースを設定します。 詳細については、.NET.NET Aspire テレメトリをご参照ください。
-
既定の正常性チェック: ツールがクエリを実行してアプリを監視できる既定の正常性チェック エンドポイントを追加します。 詳細については、C#でのアプリの正常性チェックの
を参照してください。 - サービス検出: アプリ サービス検出 を有効にし、それに応じて HttpClient を構成します。
次の手順
.NET Aspire