[Seasar-s2dotnet 73] Re: s2.NETのAOPの実装について

Kazunori Satoh kazz2
2005年 9月 5日 (月) 11:11:30 JST


 佐藤です。

 8/19に太一さんが投稿された以下のメールですが当方のプロバイダの
 SPAMフィルタにひっかかったようで全く読めていませんでした。
 (昨日、本MLの過去ログを見ていてメールの取りこぼしに気がつきました。)

 メールに関しては既にトピックとしては動いていないみたいなので
 改めて回答する意味がないかもしれません。
 本来私がいの一番に回答すべき内容であったようで太一さんには誠に申し訳
 ありませんでした。謹んでお詫びいたします。



> 太一です。佐藤繋がりですね…。

  これからも宜しくお願いいたします。

> 僕が懸念しているのは、
> Emitしたアセンブリで実装されたコンポーネントは、
> 果たしてCOM+トランザクションに参加出来るのか、否か?
> です。

 私はCOM+トランザクション自体をまだ理解していないのでこれに関しては
 答えることができません。勉強不足ですいません。
 既に福井さんが答えてらっしゃる内容の通りであればそのままではトラ
 ンザクションには参加できないのだと思われます。

 ただ、そもそもGACに登録しないとトランザクションが機能できない
 という事なのであればそれはそれで使いにくいなとも思います。

 #s2dotnetってアセンブリをGACに登録するのは元々必須要件でしたか?
 
> 例え、アスペクトを実装したとしても、
> それがトランザクションに参加出来ないケースがあるのは、
> かなり問題になるかと思います。
> 
> 僕の個人的な見解ですが、
> thisポインタへのメソッド呼び出しにアスペクトが掛からない事は、
> それに比べれば、結構些細な事かなぁ…と思います。
> 
  DIコンテナの用途や使い方の違いにもなるのでしょうけれど、私は
  こちらのほうが気になる制限と思っています。

  使う側としてはAOPの機能を使う際には必ずDIコンテナからオブジェクトの
  参照を取得、維持すれば良いのですがアスペクトが掛るインタフェース
  (又はクラス)はオブジェクトは自身の参照を外部には漏らしてはいけない、
  という制約を意識して設計する必要がでてくるのは面倒かなと考えました。

  とはいうもののいろいろと試行してみて判ったのは杉本さんが実装した元々の
  RealProxyのメッセージのインターセプトを利用したAOPの実装が現状では
  最も現実的な解だろう、ということです。

  .NET2.0がメインストリームになった暁には福井さんが書いているように
  COM+トランザクションに頼らないトランザクションの制御が可能になった
  暁にはそのへんも含めて再度、最適な実装を考えていけるのではないで
  しょうか。


 以上です。


> 太一です。佐藤繋がりですね…。
> 
> ILをEmitしてアスペクトを実装する上で、
> 僕が以前に引っかかった事があります。
> 僕自身が、COM+に対する理解が浅い為、
> 厳密にどういう事なのか理解出来ないので出来ればお答えを頂きたいな…と思い
> ます。
> 
> まず、
> 
> Visual C# .NET コンポーネントで COM+ トランザクションを使用する方法
> http://support.microsoft.com/default.aspx?scid=kb;ja;816141
> 
> ここを読むと、トランザクション管理下に置かれるコンポーネントは、
> 厳密な署名が為されている状態でなければならないように読めます。
> 
> 次に、
> 
> System.Reflection.Emit.AssemblyBuilder
> http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemreflectionemitassemblybuilderclasstopic.asp
> 
> より抜粋。
> 「KeyPair を使用した動的アセンブリへの署名は、アセンブリがディスクに保存
> されるまで有効ではありません。
> したがって、遷移動的アセンブリでは厳密な名前が機能しません。」
> 
> と、あります。
> 
> 僕が懸念しているのは、
> Emitしたアセンブリで実装されたコンポーネントは、
> 果たしてCOM+トランザクションに参加出来るのか、否か?
> です。
> 
> 例え、アスペクトを実装したとしても、
> それがトランザクションに参加出来ないケースがあるのは、
> かなり問題になるかと思います。
> 
> 僕の個人的な見解ですが、
> thisポインタへのメソッド呼び出しにアスペクトが掛からない事は、
> それに比べれば、結構些細な事かなぁ…と思います。
> 
> 以上
> 
> _______________________________________________
> Seasar-s2dotnet mailing list
> Seasar-s2dotnet @ lists.sourceforge.jp
> http://lists.sourceforge.jp/mailman/listinfo/seasar-s2dotnet

***************************************************************
* Kazunori Satou <kazz2 @ joy.hi-ho.ne.jp_NOSPAM>
* http://d.hatena.ne.jp/Kazzz/
* 




seasar-dotnet メーリングリストの案内