29

大規模なアプリでは、AOP機能が組み込まれていることを本当に望んでいます。C#の場合、できる最善の方法は、ファクトリとRealProxys、PostSharp、ICorDebug、ICorProfiler、またはインジェクションフレームワークです。AOPを実行するためのクリーンな組み込みの方法はありません。

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

4

4 に答える 4

11

Romainの答えは(ほぼ:)現在の解決策を完全にカバーしています。将来のサポートに関しては、アンダース・ヘルスバーグは以前、「AOPについて待機モードにありました」と述べています。

cscの管理された書き直しと、「サービスとしてのコンパイラー」を使用して、コンパイラーにプラグインし、そこにアスペクトを注入できることを期待できます。

于 2009-05-07T10:54:47.507 に答える
9

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

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

もう 1 つの方法は、System.Reflection.Emit に依存して、Castle の DynamicProxy などのプロキシを動的に生成することです。

最後に、Enterprise Libraryに付属する別の公式の Microsoft フラグ付きソリューションもあります。Policy Injection Application Blockについて話しています。Unityは、PIAB を活用する傍受機能もいくつか提供しています。

于 2009-05-07T10:36:48.643 に答える
2

Spring.NET は AOP も提供します。設定に手間がかかりますが、一度設定すれば問題なく動作します。

于 2009-05-07T22:44:40.360 に答える
1

Delphi Prism の 5 月のリリースでは、言語レベルで AOP がサポートされています。

詳しくはこちら

http://prismwiki.codegear.com/en/Cirrus

この場所からのアスペクトのオープンソース ライブラリもあります

http://code.remobjects.com/p/prismaspects/

于 2009-05-07T18:00:20.527 に答える