s2dotnet

IronPythonで式評価 その1

以前のエントリでは、S2Containerの式評価にはJScript.NETが使われており、拙作のDIコンテナでは、これの代わりにWindowsPowerShellを使うことを試したことがあったがExpression Evaluation for DIContainer PowerShellExpression クラスの実装この時に、Nya…

インスタンス遅延生成の副作用

少し前のエントリに対して、すぎもとさんから言及頂いた。 インスタンスを必要になってから生成するsingletonなモードを新しく追加すれば良いのですが、diconファイルのDTDに変更が必要になってしまいます。そこで手っ取り早く回避する方法ですが、S2コンテ…

アーキテクチャ指向なDIコンテナ

すぎもとさんのところにもちょっと書いたが、.NET スマートクライアント用にDIコンテナを書いて解ったことは、WebアプリケーションのDIコンテナの適用要件と、クライアント(GUI)アプリケーションのDIコンテナのそれは随分と違うということだ。特にリソースの…

MixIn Interfaces Proxy(その3)

コメント欄だと書きにくいので、エントリとして書くことに。 # sugimotokazuya 『1つ問題がありました。Mixinによるプロキシだと実装クラスの型で受け取れない(キャストできない)という制限がありました。』 とのことだが、実装クラスの型でも受け取りたい…

MixIn Interfaces Proxy

Seasar.DynamicProxyで2回インターセプターが実行される Interfaceを実装している場合は、Interface毎にProxyを作成していたのですが、Interface毎のProxyを作るときに既に拡張されたクラスからProxyを作ろうとしていたためです。DynamicAopProxyAspectWeave…

MixIn Interfaces Proxy(その2)

時間が無いので以下のような、簡単なデモを書いて動かしてみた。 namespace DynamicProxy { public class MixedInProxyTest { [STAThread] static void Main(string args) { IMethodInterceptor interceptor = new TraceInterceptor(); IPointcut pointcut =…

DynamicAopProxy変更

自分で、DynamicProxyで拡張された型は代入互換性は無いと散々書いた癖に、DynamicAopProxyではそれを考慮していなかった。新しいDynamicAopProxyでは、毎回Interceptorを退避する処理の無駄を省くため、アスペクトのセットアップ時にMethodInfoクラスをキー…

DynamicAopProxy変更

某掲示板で指摘されていた事項に対応。といっても、既に私の公開しているソースとS2.NETで使用しているソースとでは違いがあるので、修正すべきと思われる点のみ言及する。指摘されていた点を整理すると1.DynamicProxyにより拡張されたメソッドもAOPの対象に…

任意のプロパティだけバインディングを無効にしたい

Formクラスで自動バインディングを行うと、FormのAcceptButton, CancelButton, Siteというプロパティに対するコンポーネントが見つかりませんという警告が出力されます。そのため、Formに対しては自動バインディングを行わず、手動でバインディングを行って…

DIコンテナにおけるAOP用途プロキシの処理コストと型の違い

5/31のエントリ?に対して、すぎもとさんに言及頂いた。 インスタンスの生成が頻繁に必要で、インスタンス生成時のコストを下げたい場合は、S2Container.NET標準のAopProxyが有利です。逆にインスタンスの生成時のコストがそれほど重要では無い場合は、Aspect…

.NETにおけるSeasar2.4のHotDeploy機能

先日のエントリ「WindowsFormsアプリケーションにおけるDI戦略(まとめ)」に対して、ひがさんからコメントを頂いた。 コンテナの初期化の時間をできるだけ減らすことが重要なら、Seasar2.4のHOT deployのようにオンデマンドでデプロイする方法もあります。HOT…

DIコンテナで生成するオブジェクトを拡張する

Kazzzの「JとNの狭間で」- DynamicProxyとリフレクションのエントリに関して、すぎもとかずやさんから早速言及頂いた。 CreateProxyの方は、DIコンテナで作成したインスタンスをそのまま拡張してくれるので、想定通りの動きをするのですが、CreateClassProxy…

DynamicAopProxy変更

今日のエントリを書いていて、ふと思うところがあって修正。(暫定なので問題があれば戻すかも)Seasar.Framework.Aop.DynamicProxy.DynamicAopProxy.cs 自身のインスタンスを生成したタイミングで、拡張した型を生成するように変更している。そのためにプロパ…

DynamicAopProxy 更に変更

拙作の実装をベースにして更に標題のクラスを見直した。現在の実装には効率上の弱点がある。それはメソッドをインターセプトする度に、毎回Aspectをセットアップしていることだ。一度や二度ならばさほど気にならないかもしれないが、例えば1000回呼ばれるよ…

Expression Evaluation for DIContainer

seasar2は設定ファイル上の評価式をOGNL式から評価して、結果をインジェクションすることが可能だが、これが非常に強力な機能となっている。(と私は思う) となると、.NETのDIコンテナでも当然評価式をインジェクションしたいのだが、残念ながらOGNLの.NET(CL…

設定ファイル(.dicon)の検証と入力補間(VS2005 Schema編)

以前にVisual Studio 2005(以降VS2005)上でのXMLファイルの入力補間はDTDでも可能である、というエントリを書いた(設定ファイル(.dicon)の検証と入力補間)が、当時の記事にトラックバックを頂いたのを良い機会と思い、同様の事をDTDでは無くW3C Schemaで行う…

依存性解決の方向

Sesar2(s2dotnet)の実装を見ていてふと思ったのだけど以下のように3つのdiconをインクルードするroot.diconが構成されていた場合 root.dicon bar1 bar1.dicon foo bar2.dicon foo bar3.dicon foo DIコンテナは以下のようなdiconの定義から構成されるコンポジ…

設定ファイル(.dicon)の検証と入力補間

あおきのTechメモ/ s2dotnetより。本家Sesar2には設定ファイル(.dicon)の検証と入力補間をEclipse3.0上で実現することができるKijimunaとというプラグインがありますがVisualStudio.NETとDTDに合わせた補完用のXSDがあればs2dotnetでも検証と入力補間を実現…