Mediatr
MediatRは、リクエスト/レスポンス処理、コマンド処理、およびイベント通知を提供し、アプリケーションコンポーネント間の疎結合を促進するためにMediatorパターンを実装する人気のあるオープンソースの.NETライブラリです
https://mediatr.app/?utm_source=aipure
製品情報
更新日:2024年11月09日
Mediatrとは
MediatRは、Jimmy Bogardによって開発された軽量でありながら強力なライブラリで、.NETアプリケーションにおけるMediatorデザインパターンを実装するためのものです。これはミドルウェアとして機能し、リクエスト、コマンド、クエリ、および通知をシステムの異なる部分間でルーティングすることでアプリケーションコンポーネントのデカップリングを助けます。ライブラリは特にコマンドクエリ責任分離(CQRS)パターンを実装し、クリーンで保守可能な方法でプロセス内メッセージングを管理するのに役立ちます。
Mediatrの主な機能
MediatRは、依存関係なしにプロセス内メッセージングを処理するシンプルな方法を提供する、軽量な.NETライブラリで、Mediatorパターンを実装しています。リクエスト/レスポンスパターン、コマンド、クエリ、通知、イベントを同期的および非同期的にサポートします。このライブラリは、コンポーネント間の疎結合を可能にし、.NETアプリケーションにおけるCQRS(コマンドクエリ責任分離)アーキテクチャの実装を助けます。
パイプライン動作: ログ記録、検証、キャッシングなどの横断的関心事に対するミドルウェアのような動作をサポートし、開発者が既存のコードを変更することなく機能を追加できるようにします
自動ハンドラー発見: アプリケーション内のハンドラーを自動的に特定し登録し、明示的な設定の必要性を減らし、セットアップを簡素化します
複数のメッセージタイプ: リクエスト/レスポンス、コマンド、クエリ、通知、イベントなどのさまざまなタイプのメッセージをサポートし、C#のジェネリックバリアンスを介したインテリジェントなディスパッチを実現します
クロスプラットフォーム互換性: .NET Framework 4.6.1やnetstandard2.0を含むさまざまな.NETプラットフォームで動作し、さまざまなプロジェクトタイプに対して汎用性があります
Mediatrのユースケース
Web API開発: ビジネスロジックをコントローラーから分離し、CQRSパターンを実装することで、クリーンでメンテナブルなASP.NET Core APIを構築するのに最適です
エンタープライズアプリケーション: 大規模エンタープライズアプリケーションの複雑さを管理するのに役立ち、コードを機能に焦点を当てたモジュールに整理し、疎結合を実現します
イベント駆動型システム: アプリケーション内で通知やイベントを処理することで、イベント駆動型アーキテクチャの構築を促進します
メリット
クリーンなアーキテクチャと関心の分離を促進します
アプリケーションコンポーネント間の結合を減らします
最小限のセットアップで簡単に実装および統合できます
デメリット
高スループットシナリオではパフォーマンスオーバーヘッドを引き起こす可能性があります
小規模アプリケーションには不必要な複雑さを追加する可能性があります
プロセス内通信のみに制限されています
Mediatrの使い方
必要なNuGetパッケージをインストール: MediatRおよびMediatR.Extensions.Microsoft.DependencyInjection NuGetパッケージを.NETプロジェクトに追加します
StartupでMediatRを構成: ConfigureServicesメソッドでservices.AddMediatR()を使用してサービスコレクションにMediatRを追加し、ハンドラーを自動的に登録します
リクエストクラスを作成: IRequest(戻り値のないコマンド用)またはIRequest<T>(データを返すクエリ用)を実装するクラスを作成します
ハンドラークラスを作成: IRequestHandler<TRequest>またはIRequestHandler<TRequest,TResponse>を実装し、Handleメソッドを実装するハンドラークラスを作成します
IMediatorを注入: リクエストを送信する必要があるコントローラーまたはサービスにIMediatorインターフェースを注入します
リクエストを送信: 注入されたIMediatorを使用して、リクエスト/レスポンスにはSend()を、通知にはPublish()を使用してリクエストを送信します
オプション:ビヘイビアを追加: IPipelineBehavior<TRequest,TResponse>を使用して、ログ記録、検証、認証などの横断的関心事のためのパイプラインビヘイビアを実装します
Mediatrのよくある質問
MediatRは、アプリケーションロジックをプレゼンテーション層から切り離すのを助ける、仲介者パターンを実装した.NETライブラリです。これは、コンポーネント間のプロセス内通信を管理するために、ASP.NET Coreアプリケーションで一般的に使用されます。