次の方法で共有


.NET .NET Aspire の概要

.NET Aspire は、監視可能な運用対応アプリを構築するための強力なツール、テンプレート、パッケージのセットです。.NET Aspire は、特定のクラウドネイティブの懸念事項を処理する NuGet パッケージのコレクションを通じて提供されます。 クラウドネイティブ アプリは、多くの場合、単一のモノリシック コード ベースではなく、相互接続された小さな部分またはマイクロサービスで構成されます。 クラウドネイティブ アプリは、通常、データベース、メッセージング、キャッシュなど、多数のサービスを使用します。 サポートの詳細については、.NET.NET Aspire サポート ポリシーのを参照してください。

分散アプリケーション は、複数のノード (異なるホストで実行されているコンテナーなど) に コンピューティング リソースを使用するアプリケーションです。 このようなノードは、ユーザーに応答を配信するためにネットワーク境界を介して通信する必要があります。 クラウドネイティブ アプリは、クラウド インフラストラクチャのスケーラビリティ、回復性、管理性を最大限に活用する特定の種類の分散アプリです。

なぜ .NET.NET Aspire?

.NET Aspire は、クラウドネイティブ アプリを構築するエクスペリエンス .NET 向上するように設計されています。 分散アプリの構築と実行に役立つ、一貫性のある、意見に従った一連のツールとパターンが提供されます。 .NET .NET Aspire は、次の機能をサポートするように設計されています。

  • オーケストレーション: は、ローカル開発環境に対してマルチプロジェクト アプリケーションとその依存関係 実行および接続するための機能を提供します。
  • 統合: .NET Aspire 統合は、一般的に使用されるサービス (Redis や Postgresなど) 用の NuGet パッケージであり、標準化されたインターフェイスにより、アプリと一貫してシームレスに接続できます。
  • ツール: .NET Aspire には、Visual Studio、Visual Studio Code、.NET プロジェクトの作成と操作に役立つ .NET Aspire 用のプロジェクト テンプレートとツール エクスペリエンスが付属しています。

オーケストレーション

.NET .NET Aspireでは、オーケストレーションは主に、クラウドネイティブ アプリの構成と相互接続の管理を簡素化することで、ローカル開発 エクスペリエンスを強化することに重点を置いています。 .NET .NET Aspireのオーケストレーションは、運用環境で使用される堅牢なシステム (Kubernetesなど) を置き換えることを意図していない点に注意することが重要です。 代わりに、サービス検出、環境変数、コンテナー構成のセットアップを効率化する抽象化のセットが用意されているため、低レベルの実装の詳細に対処する必要がなくなります。 これらの抽象化により、多数の統合とサービスを持つアプリ間で一貫したセットアップ パターンが保証されるため、開発フェーズ中に複雑なアプリケーションを簡単に管理できます。

.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 統合では、正常性チェックやテレメトリの追加など、標準化された構成パターンによって、クラウドネイティブの多くの懸念事項が処理されます。 統合は二重の性質を持ち、一方は接続先のサービスを表し、もう一方はそのサービスの client または利用者を表します。 つまり、各ホスティング パッケージには、サービス接続を処理する対応する client パッケージがあります。

各統合は、.NET.NET Aspire オーケストレーションを操作するように設計されており、名前付きリソースを参照 によって構成が自動的に挿入されます。 つまり、Example.ServiceFoo Example.ServiceBar参照している場合、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.NET Aspire プロジェクトの作成と操作に役立ちます。 テンプレートは意見が出ていて、すぐに始めるのに役立つ一連の既定値が付属しています。 これには、テレメトリ、正常性チェック、サービス検出など、クラウドネイティブ アプリに共通する定型コードと構成が含まれます。 詳細については、.NET.NET Aspire テンプレートのを参照してください。

.NET .NET Aspire テンプレートには、一般的なサービス構成を処理する定型的な拡張メソッドも含まれています。

builder.AddServiceDefaults();

AddServiceDefaults の機能の詳細については、「.NET.NET Aspire サービスのデフォルト値を参照してください。

Program.cs ファイルに追加すると、上記のコードで次の問題が処理されます。

  • OpenTelemetry: ASP.NET Core、gRPC、HTTP の書式設定されたログ記録、ランタイム メトリック、組み込みメーター、トレースを設定します。 詳細については、.NET.NET Aspire テレメトリをご参照ください。
  • 既定の正常性チェック: ツールがクエリを実行してアプリを監視できる既定の正常性チェック エンドポイントを追加します。 詳細については、C#でのアプリの正常性チェックの を参照してください。
  • サービス検出: アプリ サービス検出 を有効にし、それに応じて HttpClient を構成します。

次の手順