2006-07-01から1ヶ月間の記事一覧
DIコンテナ(インターセプションによるAOP機能付き)をメインに据えたシステム開発は、ある種のデバッグを困難にすることがある。その理由はいろいろあるが、DIコンテナに着目した場合 リフレクションを多用している AOPというコードを差込むメカニズムがある …
Eclipseに慣れた身には、正直WinCVSは使いづらい。Visual Studio 2005と相性の良いCVSクライアントを物色中。なにか良いものはないだろうか。Improve C# Plugin for EclipseCVSクライアントではなく、Eclipse上でC#を扱うためのプラグインだが、そもそもJava…
匿名を一意とする方法を模索していたが、artonさんのアドバイスがドンピシャだったので、実際に試してみた。 古のDDEの手法はどうですか? (というか読んでいてDDEを思い出したわけですが) 利用するのはATOM。GlobalAddAtom(LPCTSTR)で作成、GlobalGetAtom…
先月書いた、標題のエントリだが、同一アセンブリを起動した場合、問題が発生することが発覚した。同エントリ中、サンプルコードで示したFileAppender.Fileを置き換えて、ActivateOptionsを呼ぶ部分だが fileAppender.File = file.Replace("MyApp", entryAsm…
過去の日記で書いたが、拙作のフレームワークではアプリケーション間の簡単なデータ交換に、WM_COPYDATAというWindowsMessageを利用したパブリッシャ/サブスクライバ型の通信フレームワークを提供している。[.NET][C#]続 NativeWindowクラス (このエントリを…
"LL"だが、大きいサイズに非ず、"LightWeight Language"の略だ。小さく、学びやすい言語、ということでPerl,Ruby,PHP、Python、更にはSqueak等も含まれるらしいが(あまり普及していない言語も含めるとまだまだあるのだが、割愛する)、どうしてこういう括り…
.NET WindowsFormsアプリケーションでコマンドライン引数を取得するには、エントリポイントのMain関数で取得する他に、以下の方法がある。 string[] args = Environment.GetCommandLineArgs(); しかし、これは通常のアプリケーションの話であってClickOnceで…
少し前のエントリに対して、すぎもとさんから言及頂いた。 インスタンスを必要になってから生成するsingletonなモードを新しく追加すれば良いのですが、diconファイルのDTDに変更が必要になってしまいます。そこで手っ取り早く回避する方法ですが、S2コンテ…
すぎもとさんのところにもちょっと書いたが、.NET スマートクライアント用にDIコンテナを書いて解ったことは、WebアプリケーションのDIコンテナの適用要件と、クライアント(GUI)アプリケーションのDIコンテナのそれは随分と違うということだ。特にリソースの…
以前のエントリで、ClickOnceアプリケーションを他から起動する方法を書いたが、今度は対象のパスがClickOnceか、通常のアプリケーションなのかがはっきりしない場合に、透過に起動するメソッドを考えてみた。 private void LaunchFromPath(string path) { P…
そう言えば先日の MD3 で,萩原さんから「AOP を不具合修正 (パッチあて) に使うのは良くない」というような話があったような.確かに紙一重な部分はあるかもなぁ.〜 AOP とパッチあて - NyaRuRuの日記 これに関して、非常に共感する。AOPに関して、その黎…
拙作のフレームワークではWindowsFormsアプリケーションの開発のために、標準的な機能を持たせたプロジェクトをテンプレートで提供する予定なのだが、その中にはDIコンテナ用の設定ファイルも含まれる。設定ファイル中には、プロジェクトで最低限必要なコン…
拙作のフレームワークでは、WindowsFormsにおけるFormの表示位置とサイズをいわゆる「分離ストレージ」上に保存し、次回のアプリケーション起動時に表示位置とサイズを復旧する、という処理を行っている。 分離ストレージには、保存の際のスコープ(Scope)と…
.NET Framework 2.0で追加された、この新しい分離ストレージのスコープである"Application"は、どうやらClickOnceアプリケーション限定で使われるスコープらしい。従って、ClickOnceアプリケーションでは無い場合は、Applicationスコープの分離ストレージ自…
コメント欄だと書きにくいので、エントリとして書くことに。 # sugimotokazuya 『1つ問題がありました。Mixinによるプロキシだと実装クラスの型で受け取れない(キャストできない)という制限がありました。』 とのことだが、実装クラスの型でも受け取りたい…
7/1のエントリで言及したCausesValidationの振る舞いに一貫性が無い件に関して、私はCausesValidationの振る舞いに固執していたが、いろいろと調べてみると、名無しさんのコメントにあるように、FormのAutoValidateプロパティが優先するのが根本の原因のよう…
Seasar.DynamicProxyで2回インターセプターが実行される Interfaceを実装している場合は、Interface毎にProxyを作成していたのですが、Interface毎のProxyを作るときに既に拡張されたクラスからProxyを作ろうとしていたためです。DynamicAopProxyAspectWeave…
時間が無いので以下のような、簡単なデモを書いて動かしてみた。 namespace DynamicProxy { public class MixedInProxyTest { [STAThread] static void Main(string args) { IMethodInterceptor interceptor = new TraceInterceptor(); IPointcut pointcut =…
Eclipse SDK 3.2知らない間に出ていたので、とりあえず自宅のPCにインストールしてみた。おっ、と思ったのは2.1から3.0、更に3.1と移行する際に互換性の無かったプロジェクトやワークスペースが、3.1から3.2だと、互換性が保たれていた所。まさか、3.1を使っ…
System.Windows.Forms.Control.CausesValidationプロパティは、そのコントロールがフォーカスを得た際にフォーカスを失ったコントロールのValidatingイベントが発生するか、しないかを制御するはずなのだが、 private System.Windows.Forms.TextBox textBox1…