情報に詳しくない同僚のために、ポリシー インジェクションの非常に簡単な説明をお願いします。これに適したリソースはどこですか? entlib ヘルプ ファイルからポリシー インジェクションについて学びましたが、これは最適なオプションではないと確信しています。
2 に答える
ポリシー インジェクションに関する MSDN ドキュメントには、非常に明確な説明があります。
アプリケーションには、ビジネス ロジックと分野横断的な問題が混在しており、通常、この 2 つが混在しているため、コードの読み取りと保守が難しくなる可能性があります。アプリケーションの各タスクまたは機能は、「懸念事項」と呼ばれます。ビジネス ロジックなど、アプリケーション内のオブジェクトの機能を実装する懸念は、中心的な懸念です。分野横断的な関心事は、さまざまなオブジェクトに共通する必要なタスク、機能、またはプロセスです (ロギング、承認、検証、計測など)。ポリシー インジェクション アプリケーション ブロックの目的は、中心的な懸念事項と分野横断的な懸念事項を分離することです。
簡単に言えば、PI ブロックを使用すると、開発者はシステム内のオブジェクトの動作を指定する一連のポリシーを定義できます。したがって、会計年度の単位あたりの利益を計算するコード (1 つの懸念事項) などのコア ビジネス ロジックは、そのロジックの実行のログ記録 (別の、より頻繁に使用される懸念事項) から分離されます。
同じドキュメントでは、次の理由により、PI ブロックはAOPではないと述べています。
- インターセプトを使用して、前処理ハンドラーと後処理ハンドラーのみを有効にします。
- コードをメソッドに挿入しません。
- クラス コンストラクターのインターセプトは提供しません。
したがって、AOP の観点から PI を見ようとすると、状況が少し混乱する可能性があります。
EntLib がポリシー インジェクションと呼んでいるものは、実際にはアスペクト指向プログラミングです。しばらく前にブログで AOP の概念を紹介する記事を書きましたが、参考になるかもしれません。