[seasar-dotnet:1663] Re: S2Container.NET、S2Dao.NET(Windows7)について3

Sohei Fukumura [E-MAIL ADDRESS DELETED]
2010年 4月 28日 (水) 16:43:03 JST


いつもお世話になっております。

ご助言いただき、ありがとうございます。

>違いによる影響を(一項目ずつ)検証するのが良い
>最終的には単体テストなどで確認
・RealProxyだとI/F経由じゃないといけない
・RealProxyだとthisポインタ(自身への参照)経由の場合は
 aspectは適用されない
に焦点を当てて確認し、最終的には単体テストなどで、
確認していきたいと思います。

>でDynamicProxy単体で(現象が)再現するプログラム~
>「実はちょっとこうすれば問題なかった」
>みたいなことになる可能性もありますので、
>しっかり検証されることをお奨めします
確かにその通りで、原因を判別するためには必要かと思います。
上記に、平行しながら調査を継続していきたいと思います。

以上、よろしくお願い致します。

-----Original Message-----
From: [E-MAIL ADDRESS DELETED] [mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of kubo
Sent: Tuesday, April 27, 2010 10:19 PM
To: [E-MAIL ADDRESS DELETED]
Subject: [seasar-dotnet:1662] Re:S2Container.NET、S2Dao.NET(Windows7)について3

久保(jflute)です。

> つまりは、Seasar.DynamicProxyを
> System.Runtime.Remoting.Proxies.RealProxyに
> 差し替えても機能的に問題がないものでしょうか。
RealProxyとDynamicProxyの違いを比較して、
そちらのプロジェクトでの利用方法と照らし合わせて、
違いによる影響を(一項目ずつ)検証するのが良いと思います。

例えば、
代表的なところでは、RealProxyだとI/F経由じゃないと
いけないのが、DynamicProxyではI/Fの無いクラスでも
AOPを掛けられるってところかと思います。
なので、既にI/Fの無いクラスでAOPを利用しているのであれば、
RealProxyに変更すると想定外の挙動になってしまうかと。
こんな感じで、一項目ずつプロジェクトの状況と照らして下さい。

で、いずれにせよ、論理的にOKなのかどうかを
検証するのはもちろんですが、最終的には単体テストなどで
実際に実行してみて想定通りの動きになっているかを
確認する必要があります。というかそれが一番大事です。


あと、以前の話からの続きであれば、
Win7でDynamicProxy単体で(現象が)再現するプログラムを
って話があったと思いますが、そもそもの問題の原因が
明確にならない状態で回避策を練っていると、
「実はちょっとこうすれば問題なかった」
みたいなことになる可能性もありますので、
しっかり検証されることをお奨めします。
(RealProxyをどうのこうの考える必要があるのか
どうかも、この検証次第かと思います)

2010/4/27 Sohei Fukumura <[E-MAIL ADDRESS DELETED]>:
> いつもお世話になっております。
>
> ネットで調べておりますが、未だに、
> DynamicProxyをRealProxyに置換えても良いか。結論が出ずにおります。
> 調査中に、下記のような疑問を持ちました。
> 『<<
> http://s2container.net.seasar.org/ja/aop-summary.html#Seasar.DynamicProxy >>
> には
> S2AOP.NETは標準でSystem.Runtime.Remoting.Proxies.RealProxyを用いて実装されて
> いますが、 これをCastle.DynamicProxyを用いたSeasar.DynamicProxyに差し替える
> ことができます。』
> と記載されておりますが、逆に
> Castle.DynamicProxyを用いたSeasar.DynamicProxyを
> System.Runtime.Remoting.Proxies.RealProxyに差し替えることも
> できると考えております。
> つまりは、Seasar.DynamicProxyを
> System.Runtime.Remoting.Proxies.RealProxyに
> 差し替えても機能的に問題がないものでしょうか。
>
> ※ソースコード(一部)※
> Aspectは、diconファイル上で下記のように設定しております。
>  <component class="Info.Dao.IKojinDao">
>    <aspect>DaoInterceptor</aspect>
>  </component>
>
> IKojinDao.csファイルで
> namespace Info.Dao
> {
>   [Bean(typeof(Kojin))]
>    public interface IKojinDao
>    {
>        int GetCount(Kojin dto)
> 以下省略
> }
>
> そして、Kojin.csファイルで
> namespace Info.Entity
> {
>    [Table("KOJIN")]
>    public class Kojin
>    {
>        private System.String _NAME
> 以下省略
> }
> と保持しており、同じ作りで
> component class
> を持たせております。
> 従って、Aspectを適用する為には、Inteface型で受け取るという条件は
> 満たしていると考えております。
>
> 度々、申し訳ございませんが、ご助言をいただけますでしょうか。
>
> 以上、よろしくお願い致します。
>
>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>
_______________________________________________
seasar-dotnet mailing list
[E-MAIL ADDRESS DELETED]
https://ml.seasar.org/mailman/listinfo/seasar-dotnet


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