この記事はネットユーザー(Sky. Chu Ziang Air)から投稿されました。
1. NET Aspireの理解
.NET Aspire 是微软推出的一个技术栈,旨在简化云原生应用的开发和管理。以下是关于.NET Aspire 的详细介绍:
** 定義と目的**:
- NET Aspireは、観測可能で本番対応の分散アプリケーションを構築するための固定クラウド対応テクノロジースタックです。
- 主な目的は、クラウドネイティブアプリケーション内の要素の調整と管理を簡素化し、開発者が. NETを使用してクラウドネイティブアプリケーションをより効率的に構築できるようにすることです。
** 特徴と利点 **:
- NET Aspireは、統一されたプロジェクトフォーマットと固定されたテクノロジースタックを提供し、開発者がテクノロジーコンポーネントを選択して設定する際の複雑さを軽減します。
- サービスディスカバリ、テレメトリ、回復力、ヘルスチェックなど、クラウドネイティブアプリケーション開発の重要な要素であるクラウドネイティブ拡張のための選択されたコンポーネントセットが含まれています。
- NET Aspireは、開発者が分散アプリケーション内でリソースや依存関係を表現できるようにする豊富なAPIとツールを提供し、クラウドネイティブアプリケーションの開発と運用をさらに簡素化します。
***. NETとの関係 **:
- NET Aspireは. NETプラットフォーム上に構築されており、. NETのパワーとエコシステムを活用しています。
- NETの一部である. NET Aspireは、. NET 8以降と緊密に統合され、開発からデプロイまでの完全なプロセスサポートを開発者に提供します。
*** リリースと可用性**:
- マイクロソフトは. NET 8のプレビューで. NET Aspireを初めて導入し、. NET 8の公式リリースの一部としてリリースする予定です。
- 開発者は. NET 8のプレビューで. NET Aspireを試して、そのシンプルさと利便性を体験できます。
全体として、. NET Aspireは、クラウドネイティブアプリケーションの開発と管理を簡素化するためにマイクロソフトが導入した重要なテクノロジーであり、. NETプラットフォームの利点を活用して、開発者に効率的で統合されたソリューションを提供します。
2. この記事の背景
私はpreview1 ~ preview6(現在は2024年5月1日)から使用しており、最初のバージョンではマイクロサービス(https://gite.com/SkyNingDuan/PublicActivityServices.git)の1つに入れて、更新を繰り返しています。
在其中,我一直使用外部 RabbitMQ 的方式给我的微服务传递消息(用的是Zack.EventBus),但是它一直有直接通过 Aspire 方式创建 RabbitMQ 容器在你的项目中使用, 我一直想着用杨中科老师的框架为指导,开发一个在 Aspire 环境下的 EventBus, 但是一直拖着(已经有现成的了,就一直不想走出舒适区)最后经过不断的自我抗争,simpleUseAspireRabbitmq 第一版开发好了,功能比较简单,也比较好用,如果大家热情高的话, 后面再加便是。欢迎大家拥抱新技术,有任何问题都可以提 issue 和我互动,源代码地址https://github.com/skyDuanXianBing/SimpleUseAspireRabbitMQ.git ,NuGet 名称:SimpleUseAspireRabbitMQ) (目前由于 Aspire 也是处于预览版,所以这个也是预览版,后面有任何改进也会跟进的)。
3. チュートリアルを使用する
3.1. Aspireプロジェクトの構築
在 aspire.host 中安装Aspire.Hosting.RabbitMQ 包,在program.cs中创建RabbitMQ容器,并且在你要使用 RabbitMQ 的项目后 WithReference RabbitMQ容器:

3.2.登録サービス
在你要使用RabbitMQ项目的 program.cs 中分别加入builder.EventConfiguration("rabbitmq", "myexchange");(第一个参数是RabbitMQ容器名称,第二是交换机名称),app.RegisterRabbitmqEvent();来注册服务:

3.3.メッセージ送信のテスト
使用IEventBus发送消息,目前仅支持 string/泛型数据(都会转换成 json,后面在反序列化),publish 第一个参数是队列名称:

3.4.処理クラスの定義
一定要定义在网站项目中(因为是通过反射网站项目拿到全部的处理类),继承IEventJsonHandler/IEventStringHandler 分别实现就行。
一定要在处理类上贴 [event("XXX")], 这个 attribute 用来指示接收哪个队列信息:


3.5.完璧なメッセージ受信

4. まとめまとめまとめ
使い方はとても簡単で、メッセージ交換を歓迎します。
- ブログパークへのリンクhttps//www.cnblogs.com/SkyDuan/p/18169087