2009-05-07 9 views
29

大きなアプリでは、AOP機能を内蔵していることを本当に願っています。 C#には、ファクトリとRealProxys、PostSharp、ICorDebug、ICorProfiler、またはインジェクションフレームワークがあります。 AOPを行うためのきれいな組み込みの方法はありません。C#の組み込みAOP - 途中でですか?

AOPが進行中であることを示す(ブログ投稿/内部ディスカッション)場所はありますか?

答えて

11

ロマンの答えは(ほとんど:)現在のソリューションを完全にカバーしています。将来のサポートに関しては、Anders Hejlsbergは、&がAOPについてのモードを参照するのを待っているpreviously statedを持っています。

管理されたcscのリライトと「サービスとしてのコンパイラ」では、コンパイラにプラグインしてその中にアスペクトを挿入することができます。

+0

あなたはモノでネイティブAOPをやっていますか? –

+0

Mono wrt AOPには特別なことはありません。私たちはすでに管理されたコンパイラを持っていますが、これは容易にハック可能ですが、コンパイラに統合されていると感じるものがあるのは良い出発点です。 –

+1

これをチェックして、明らかに起こることはないhttp://www.sharpcrafters.com/blog/post/AOP-in-C-Over-Anders-Hejlsberge28099s-Dead-Body!.aspx –

9

「AOPを行うきれいな組み込みの方法」について聞いたことがありません。しかし、あなたが述べたように、PostSharpまたはCastle DynamicProxyのような成熟した強力なフレームワークを使用して、すでに多くの「AOPを行うきれいな方法」があります。

BCLを使用すると、AOPを実行する1つの明白な方法は、非常に強力な制限があると考えて、.NET Remotingスタックから透過的で実際のプロキシを使用することです。

もう1つの方法は、System.Reflection.Emitを使用して、城からHum、DynamicProxyなどのプロキシを動的に生成する方法です。

最後に、Enterprise Libraryに付属しているもう1つの正式なマイクロソフトの告知された解決策もあります。私はPolicy Injection Application Blockについて話しています。 Unityは、PIABを活用するいくつかの傍受機能も提供します。

+2

PostSharpは、この種のライブラリには適していません。 –

+1

@aloneguid私はV1.5が無料であり、他の多くの静的な織り機よりも多くの機能を提供していることは確かです。さらに、なぜあなたはいくつかの図書館が商業化され、他の図書館はできないと考えるでしょうか? –

+0

Unity Interceptionドキュメントへのリンクを更新してください:http://msdn.microsoft.com/en-us/library/ff660891(PandP.20).aspx –

2

Spring.NETは、同様にAOPを提供します。それは多くの設定が必要ですが、セットアップが完了したらうまく動作します。

関連する問題