特定のフレームワークを使用することの長所と短所を教えてください。
.netアプリケーションでAOPを使用した成功例を教えてください。
これまで、アプリケーションにロギングを適用する従来の AOP の例として、Spring.Net AOP を使用してきました。.Net で使用できる他の AOP フレームワークは使用していません。
目立ったパフォーマンスへの影響なしで非常にうまく機能し、アプリケーションから大量の過剰で反復的なコードを削除し、ロギングの範囲とロギング情報の品質と一貫性を改善しました. ロギングが 1 か所で作成され、1 か所で構成されるようになりました。これは大幅な改善です。
ただし、いくつかの注意点があります。Spring.Net AOP では、少なくとも 1 つのインターフェイスを実装するようにオブジェクトにアドバイスする必要があります。つまり、オブジェクトへのメソッド呼び出しをログに記録する場合、そのオブジェクトは少なくとも 1 つのインターフェイスを実装する必要があります。また、AOP には、推奨されるメソッド内のアクティビティが表示されません。つまり、AOP で実装されたログを使用して、たとえばメソッド内の変数の値の変化をログに記録することはできません。
ただし、実際には、AOP を既存のアプリケーションにさかのぼって適用しようとしている場合、これはほとんど問題になります。とにかく、インターフェイスへのコーディングは私見の優れた開発プラクティスであり、メソッドの内部動作をログに記録する必要がある場合は、リファクタリングが必要であることを示している可能性があります。
AOP の実装にはある程度の計画が必要であり、コーディング プラクティスに一定の規律が必要ですが、自動化された単体テストと同様に、これは通常、コードの品質を向上させるためだけに役立ちます。
古い投稿ですが、製品と AOP 実装の長所と短所を確認するのに役立つかもしれません。
http://ayende.com/Blog/archive/2007/07/02/7-Approaches-for-AOP-in-.Net.aspx