2006年03月15日
アスペクトいろいろ
現Pで色々なAOPについて調べている。
S2Container.NET、Spring.NET、DynamicProxy、透過Proxy、ContextBoundObject
まぁ最終的に重複しているのもあるんやけど、とりあえずこれくらいを調査している段階でまぁ皆それぞれに一長一短があって「これだ!」って判断が難しいのよね。
今回はインジェクションがメインではないのでObjectBuilderは対象外なんやけどね、S2はインターセプタもちゃんとあるから良し。
ContextBoundObjectあたりって調べてみるとなるほどなって思うねぇ、COM+あたりのコンテキスト形成メカニズムをAOPとして使うってことね。
今日出た会話
「S2とか使えるなら使いたいよなぁ〜こんなの導入できるPなんて滅多にないし」
いや、ほんとまったくもってごもっとも(^^)
Posted by GAMMARAY at 2006年03月15日 23:48
| TrackBack
ContextBoundObjectはレスポンスに結構問題ありそう(Emitするタイプよりも1桁遅い)なのと、何よりContextBoundObjectから派生しないといけないので、個人的には微妙ですねー。
といって、S2.NETもSpring.NETも、AOPのためのフレームワークではないから、一概に良いとも言えない。難しいところですね。
純粋にAOPだったら、AspectSharpとかってどうだろうと思ってます。いや、調査もしていないので勘ですけど(^^;
確かにContextBoundObjectはどうしてもレスポンスと継承を強制するという実装制約が問題になりますね。
ただ利用する側がインスタンス化にあたってまるで意識せずに書けるというのが強みかなぁと思います。
まぁ属性はともかくとして。
SpringやS2についてはいずれにせよまんま使うよりは、実装部分を抜き出して使うということになると思います、S2はまだ軽量ですが、Springは規模が大きすぎるんですよねぇ・・
Aspect#はこちらも考慮してないですわ(^^)
不明な要素が大きすぎて手を出していないのが現状。
まぁいずれにせよ先に挙げたやつのいずれかで問題はないでしょう。