web-dev-qa-db-ja.com

C#でのアスペクト指向プログラミング

Aspect Oriented Programmingに頭を悩ます良いリソースはありますか?

PS:.NETやC#で利用可能なライブラリやフレームワークではなく、AOプログラミングを理解する必要があります。

46
TheVillageIdiot

頭を動かすために:オブジェクトの作成、プロパティの設定などのイベントをhookし、それらに一般的な機能をアタッチする機能です。関連するコンテキストが設定されます。

C#にはこのための組み込みの機能がないため、PostSharpなどのフレームワークを使用して、「バイトコードウィービング」(つまり、実際に呼び出しを行うコードをクラスに直接書き込む)を行い、それをシミュレートする必要があります。

54
Noon Silk

これを確認してください。postharpを使用してAOP(ログ、タイミング、トレース、例外処理など)を実装する方法を説明しています。

http://www.codeproject.com/Articles/337564/Aspect-Oriented-Programming-Using-Csharp-and-PostS

3

以下の適切なリンクは、独自のAOPフレームワークをコーディングする方法を示しています。残念ながら、すべての消費クラスはMarshalByRefObjectから(ContextBoundObjectを介して)継承する必要があります。

http://www.developerfusion.com/article/5307/aspect-oriented-programming-using-net/3/

3

タイムリーな質問は何ですか?

ここ は聴く価値のあるポッドキャストです。
これにより、AOPとは何かの概要がわかりますか?どこで使用できますか?

お役に立てば幸いです。

3
shahkalpesh

アスペクト指向プログラミングとは、ロギングやセキュリティ/アクセス制御機能を定義して、コードにこれらの機能を非常に時間をかけて実装するのではなく、コードと織り交ぜることができるメタレベルを持つことを意味します。そのため、1次元を使用する代わりに、2次元をプログラムする必要があります。

これは非常に熱狂的に聞こえるかもしれませんが、理解すれば簡単です。

AOPは、多くの場合、呼び出しをインターセプトし、バックグラウンドで処理を行うプロキシクラスで動作します。

3
codymanix