編集

次の方法で共有


.NET の熱望についてよく寄せられる質問

この記事では、.NET Aspire についてよく寄せられる質問の一覧を示します。 より包括的な概要については、.NET のアスパイアの概要を参照してください。

オーケストレーションのために Docker Compose よりも .NET Aspire を選択する理由

Docker Compose は優れていますが、複数のプロジェクトまたは実行可能ファイルを実行する必要がある場合は非生産的です。 Docker Compose では、開発者はコンテナー イメージをビルドし、コンテナー内でアプリを実行する必要があります。 これは、フロントエンド、バックエンド、ワーカー、データベースを実行するだけの場合の障壁です。 .NET のアスパイアでは、既に知っていることを超えて何も学ぶ必要はありません。

宣言型コードを使用した構成は、YAML を使用するよりも優れています。 任意の形式の抽象化またはコンポジションを実行しようとすると、Docker Compose が複雑になります (たとえば、古い eshopOnContainers アプリのを参照)。 さらに、環境変数の置換 (およびインクルード) があり、型や IntelliSense がなく、正確に何が実行されているかを考えるのが難しくなります。 デバッグも困難です。 .NET Aspire は、実際のプログラミング言語を使用して Compose などのオーケストレーターに簡単に開始してスケールアップできる、より優れたエクスペリエンスを実現します。

.NET アスパイアにプロジェクトを追加する方法

builder.AddProject("<name>", "<path/to/project.csproj>") API を使用して、.NET アスパイア ソリューションにプロジェクトを手動で追加できます。

ターゲット のクラウド プロバイダー ツールを使用せずに .NET Aspire をデプロイする方法

.NET Aspire では、既存のプロジェクトまたはソリューションのデプロイは制限されません。 .NET Aspire は、ツール作成者が任意のクラウド プロバイダーへのデプロイ用の成果物を生成するために使用する、配置マニフェスト を公開します。 ただし、残念ながら、すべてのクラウド プロバイダーがこのマニフェストに基づくデプロイ用のツールを提供しているわけではありません。 マニフェストは、アプリのリソースとその間の依存関係を記述する単純な JSON ファイルです。 マニフェストは、Azure Developer CLI によって Azure にデプロイするために使用されます。 同様に、Aspir8 はマニフェストを使用して Kubernetes にデプロイします。 マニフェストを使用して、使用しているリソースをサポートする任意のクラウド プロバイダーにデプロイできます。

.NET Aspire アプリを Azure の依存関係なしで構築し、他の場所にデプロイすることはできますか?

はい。Azure 独自の依存関係を使用せずに、.NET Aspire アプリを構築できます。 .NET Aspire は Azure にデプロイするためのファースト パーティソリューションを提供していますが、これは要件ではありません。 .NET Aspire は、任意の場所で実行されるアプリケーションを構築するために使用できるクラウドネイティブ スタックです。 すべての Azure 固有のオファリングは、明示的にそのように呼び出されます。

Kubernetes で Docker Compose 経由で .NET アスパイア サービス検出を使用する理由

.NET アスパイア サービス検出 API は、さまざまなプロバイダー (Kubernetes や Consul など) と連携する抽象化です。 大きな利点の1つは、ローカルで動作し、によって支えられているということです.NET の IConfiguration 抽象化。 つまり、コードが変更されないように、コンピューティング ファブリック全体にサービス検出を実装できます。 Azure App Service または Azure Functions に複数の Kubernetes クラスターまたはサービスがある場合は、1 つのクラスターまたは複数のクラスターでローカルに動作するようにアプリケーション コードを根本的に変更する必要はありません。 それが抽象化の利点です。

OpenTelemetry が .NET で使用できる場合に .NET Aspire を使用する理由

.NETの熱望は上の大きな賭けを取ります.NET と OpenTelemetry の統合。 .NET アスパイア ダッシュボードは、さまざまなテレメトリ データを視覚化する標準の OTLP サーバーです。 これらのオープンな標準に頼ると、より広範なエコシステムとの互換性を損なうことなく、これらのものを簡単に構築できます。

Grafana、Jaeger、Prometheus が .NET で動作する場合に .NET Aspire を使用する理由

.NET Aspire は、これらのツールの代わりではなく、補完的なテクノロジです。 .NET Aspire は、監視可能なアプリケーションを簡単に構築できる一連のライブラリとツールです。 詳細については、Grafana と Prometheus を示す .NET Aspire サンプル リポジトリ の メトリックの例を参照してください。

既存のフレームワークが適切に機能する場合に別のフレームワークを作成する理由

.NET のアスパイアはフレームワークではなく、なスタックです。 おそらく、最も議論の余地のある部分は、オーケストレーション モデルを構築するために使用できる DistributedApplication API です。NET ベースの言語。 今日はすべてが可能ですが、簡単ではありません。 Unix の理念を使用して、クラウドネイティブ エコシステム全体が構築され、さまざまな CNCF ソフトウェアを結び付けてスタックを構築します。 .NET Aspire は、クラウドネイティブ空間からの学習を使用して同じことを試み、(同じ構成要素を使用する方法で) いくつかの意見を選びます。 .NET Aspire がスタックのさまざまな部分を構築する方法に関する新しい点の 1 つは、他のアプリケーション、フレームワーク、またはサービスのアクセスや互換性を制限しないという点です。 人々はそれをより多く遊ぶにつれて、彼らはそれがいかに構成可能で拡張可能であるかを認識します。

.NET のアスパイアと Microsoft Orleans の違い

Microsoft Orleans と .NET の熱望は補完的なテクノロジです。

Orleans は、分散アクター ベースのフレームワークです。 .NET Aspire は、監視可能な運用対応の分散アプリケーションを構築するためのクラウド対応のスタックです。 これには、開発者の内部ループを簡略化するローカル オーケストレーション機能と、一般的に使用されるアプリケーションの依存関係と統合するための再利用可能なオピニオン コンポーネントが含まれています。 Orleans ベースのソリューションには、.NET Aspire をオーケストレーション目的で使用できるデータ ストアやキャッシュなどの外部依存関係が引き続き存在します。

詳細については、「.NET で Orleans を使用する と、対応する Orleans 投票アプリのサンプルを参照してください。

.NET アスパイアと Dapr の違いは何ですか?

Dapr と .NET のアスパイアは補完的なテクノロジです。

Dapr が基になるクラウド プラットフォームの一部を抽象化する場合、.NET Aspire は、基になるクラウド テクノロジを抽象化することなく、意見を持った構成を提供します。 ある。Dapr を使用する NET ベースのアプリケーションでは、.NET Aspire を使用して、ローカル開発者の内部ループを調整し、デプロイを合理化できます。 .NET Aspire には、内部ループ中の Dapr サイドカー プロセスの起動をサポートする拡張機能が含まれています。

詳細については、「.NET アスパイア で Dapr を使用する と、.NET Aspire サンプル リポジトリの対応する Dapr サンプル アプリ を参照してください。

.NET Aspire と Project Tye の違いは何ですか?

Project Tye は、マイクロ サービスの起動とオーケストレーションを調査し、Kubernetes などのオーケストレーターへのデプロイをサポートする実験でした。 .NET Aspire は Tye のスーパーセットであり、オーケストレーションとデプロイの機能と、一般的なクラウドネイティブの依存関係を統合するためのオピニオンコンポーネントが含まれています。 .NET の熱望は、Project Tye 実験の進化と見なすことができます。

.NET Aspire と Azure SDK for .NET はどのように関連していますか?

.NET Aspire は、Azure SDK for .NETに依存するコンポーネントを提供し、ストレージ (Azure Blob Storage、Azure Storage キュー、および Azure Table Storage)、データベース (Azure Cosmos DB と Entity Framework Coreを使用した Azure Cosmos DB の )、メッセージングの 、およびセキュリティ

.NET アスパイアと Kubernetes の関連

.NET Aspire を使用すると、ローカル開発環境で実行可能ファイルやコンテナーとして調整できる分散アプリケーションを簡単に開発できます。 Kubernetes は、複数のマシン間でコンテナーを調整および管理するテクノロジです。 .NET アスパイア プロジェクトでは、ツール作成者が Kubernetes へのデプロイ用の成果物を生成するために使用できる マニフェスト を生成できます。 基本的に、Kubernetes は .NET アスパイア プロジェクトのデプロイ ターゲットです。

ワーカー サービスは .NET アスパイアでサポートされていますか?

はい。worker サービスは完全にサポートされており、作業を開始するのに役立つドキュメントとサンプルがあります。 ワーカー サービスは、バックグラウンド タスク、スケジュールされたタスク、または実行時間の長いタスクを .NET Aspire で実行する優れた方法です。 詳細については、「Database migrations with Entity Framework Core sample app」を参照してください。

Azure Functions は .NET アスパイアでサポートされていますか?

はい。.NET Aspire では、Azure Functions をアプリに統合するためのプレビュー サポート

.NET Aspire では、IIS または IIS Express での Web アプリのローカルでの実行はサポートされていますか?

いいえ。 .NET Aspire は、IIS または IIS Express での Web アプリの実行をサポートしていません。

.NET Aspire は IIS へのアプリの展開をサポートしていますか?

いいえ。 .NET Aspire では、IIS へのアプリの展開はサポートされていません。 ただし、常に使用しているのと同じ方法で IIS にアプリを展開することはできません。

.NET Aspire アプリを IIS に展開するときの統合とサービス検出の問題を修正する方法

.NET Aspire 統合には、手動で指定する必要がある特定の構成が必要です。 Service Discoveryにも同じことが当てはまります。理想的には、IIS 以外にデプロイする必要があります。

Community Toolkit プロジェクトの目的は何ですか?

このプロジェクトの目標は、.NET Aspireの拡張機能と統合の一元化されたホームであり、統合の構築と保守の方法の一貫性を提供し、ユーザーの見つけやすさを高めるのに役立ちます。

Community Toolkit プロジェクトは公式の .NET アスパイア プロジェクトとどのように異なりますか?

.NET アスパイア コミュニティ ツールキットはコミュニティ主導のプロジェクトであり、コミュニティによって維持され、.NET アスパイア チームによって正式にサポートされていません。 ツールキットは、.NET Aspire プロジェクトの上に構築された統合と拡張機能のコレクションです。

Community Toolkit プロジェクトに投稿するにはどうすればよいですか?

誰でも .NET の熱望コミュニティ ツールキットに投稿できます。作業を開始する前に、貢献ガイドの を読んで、プロジェクトに貢献する方法を確認してください。

Community Toolkit または 'dotnet/aspire' リポジトリに新しい統合を提案する必要がありますか?

新しい統合のアイデアがある場合は、公式の .NET アスパイア プロジェクトが .NET Aspire プロジェクトのコア機能に重点を置いているため、dotnet/aspireではなく、.NET Aspire Community Toolkit リポジトリで提案する必要があります。

dotnet/aspire リポジトリに統合を提案した場合でも、Community Toolkit で提案できますが、コンテキストを提供するために、dotnet/aspire リポジトリの既存の問題にリンクできます。

Community Toolkit の統合を見つけるにはどうすればよいですか?

.NET アスパイア コミュニティ ツールキットからの統合は、名前空間 CommunityToolkit.Aspire.*の下にある Visual Studio の [ 統合の追加] ダイアログに表示されます。

次の手順

ネットワークと機能の詳細については、以下を参照してください。