2006-06-01から1ヶ月間の記事一覧
やってみたら出来たので書いておく。Log4netの設定ファイル(log4net.configなど)に、以下のようなアペンダ定義があったとしよう。 100KBを境にファイル"MyApp.Log"をローリングするRollingFileAppenderの設定だ。 これをテンプレートにして、アペンダの記述…
自分で、DynamicProxyで拡張された型は代入互換性は無いと散々書いた癖に、DynamicAopProxyではそれを考慮していなかった。新しいDynamicAopProxyでは、毎回Interceptorを退避する処理の無駄を省くため、アスペクトのセットアップ時にMethodInfoクラスをキー…
先日のエントリで言及した、生成したDiffgramを読めない問題だが、 Exception: System.Data.DataException Message: diffGram を読み込めません。'sql' ノードが見つかりません。 何故この例外が発生するかが、やっと判明した。 問題のDiffgramをもう一度見…
メインマシン(PC)も、去年から立て続けに・電源換装 ・TVチューナボードの故障、換装 ・ビデオカードの故障、換装とパーツを交換してきているが、全体的にかなりヘタってきており、来年頃にはいよいよ致命的な故障が出てもおかしくない状態だ。インテルが性…
先日のエントリに対して。 やはりXMLに問題があった。.NET Reflectorで当該メソッドを調べたところ、Diffgramはエラー行(error要素)が存在した場合、そのエラー行のid(id属性)で書かれているのと同じidを持つ、元々のデータセット行が存在していることを「大…
某掲示板で指摘されていた事項に対応。といっても、既に私の公開しているソースとS2.NETで使用しているソースとでは違いがあるので、修正すべきと思われる点のみ言及する。指摘されていた点を整理すると1.DynamicProxyにより拡張されたメソッドもAOPの対象に…
独自に生成したMS-DiffgramをDataSetでReadしているのだが、例外が発生する。 オブジェクト参照がオブジェクト インスタンスに設定されていません。 NullReferenceExceptionなのは解るのだが、この時、頼りになる情報が、DataSet::ReadXmlの中から上がってい…
はてなツールバーって、一般的に説明されている以外にこっそりと持っている機能があるのではないか。 統計解析機能 これは言わずもがな。 負荷分散機能 サーバ側で負荷分散する際のファクタの一つにしているとか。 負荷閾値制御 設定した閾値以上の負荷が掛…
先日のコード片を見て大体想像はつくかと思うが、やりたかったことはIAction::Runメソッドと、GUI(Form, Control)のイベントのバインドをVisual Studio 2005のデザイナではなく、アノテーションで行うことだ。既に紹介したがIActionインタフェースを実装する…
DynamicMethodを使っていろいろ試している中で、非常に便利なものがあったので紹介する。同じILGeneratorを使ったMSILの出力でも、動的にアセンブリ、モジュールを生成する方法(AssemblyBuilderやModuleBuilder等のほにゃららBuilder系クラス)の場合、実際に…
結局は eventInfo.AddEventHandler(control, new EventHandler( delegate(object sender, EventArgs e) { action.Run(); }) ); というコードが、 eventInfo.AddEventHandler(control, delegate(object sender, EventArgs e) { action.Run(); }); と書けない…
Controlのイベントに動的に処理をアタッチする匿名デリゲート(メソッド)はコンパイラが生成していたクラスなんだよってことは知っていたし、前のエントリにも書いたが、まさかそれ自体を、それも引数をGenericsにして生成してやることまでは考えなかった。驚…
Clickイベントだとこれで問題無し。しかし、当然ながらイベントの型がEventHandler以外だと例外が発生する。イベントの型はEventInfo::EventTypeで取れるので、この情報を使ってイベントハンドラ自体も生成しないと駄目。 DynamicMethodを使ってEventTypeに…
未だにFormクラス自体をDTOと見なす文化もあるんだが、それはもう御免こうむりたい。かといって毎回DTOを起こすのも面倒なので、自動生成したいと目論んでいる。方法は頭の中にあるんだが、時間が無い。 もっと時間が欲しいな。追記>もっと時間が欲しいな。 …
メモ。こんなインタフェースがあったとして、 public interface IAction { void Run(); } このインタフェースのRunメソッドを、任意の名前を持つコントロール(System.Windows.Forms.Control)の、任意の名前を持つイベントに動的にアタッチするメソッドはこん…
昨日は中途半端にしか書けなかった。 その前の日のエントリで、カスタムオブジェクトであるGenderItemをComboBoxとDataGridViewComboBoxCellに同期して表示させるために、GetFormattedValueメソッドをオーバライドして対応したが、それではまだ問題があった…
Visual Studio 2005(Express エディションを除く)ではクラスデザイナ機能が使えるが、その機能の中でクラスやインタフェースは、UML風のダイアグラムとして表示することができる。 このUML風のダイアグラムだが、クリップボード経由でイメージをコピーできる…
今日は忙しいのでこれ以上書けないかもしれないので、メモとして書いておく。GenderItemComboBoxCellは、以下のように書き換える。 public class GenderItemComboBoxCell : DataGridViewComboBoxCell { public override object ParseFormattedValue( object …
オブジェクトとデータバインディングした、ComboBoxとDataGridViewComboBoxColumnの振る舞いに納得がいかないと書いた。以下、順に解決していこうと思う。 DataGridViewComboBoxColumn上のComboBoxにデータソースが表示されていない GenderDTOのメンバである…
昨日はリストクラスをそのままバインドしたが、これは現実的ではないので、画面の状態を表しているDTOとしてクラスを書き直してみた。先日のgenderリストはDTOのメンバであり、性別の2値を格納するリストだ。 public class GenderDTO : INotifyPropertyChang…
メモ。instance="prototype"のコンポーネントで構成されているプロジェクトと、instance="singleton"で構成されているプロジェクトで起動時間に差が出ることに気が付いた。DIコンテナに登録するコンポーネントのインスタンスタイプをsingletonとマークした場…
まさか、こんなことがすんなりできないなんて思わなかった。以下、順を追って作業。 ComboBoxとDataGridViewが配置されたFormを用意する ComboBoxはgendersComboBox、DataGridViewはgenderDataGridViewというベタな名前にする。 データ連結に使用するリスト…
NyaRuRuさんの6/12の日記「.NET GC & Memory (1)」を見ていたときにGC(ガベージコレクション)のアルゴリズムを.configファイルで指定する方法が紹介されていたが、 <configuration> <runtime> <gcServer enabled="true" /> </runtime> </configuration>.NETはJavaとは違い、このようにランタイム外部からGCに触ることはできないと思ってい…
現在は、ドキュメント用にと、DI、AOP、DataBinding(以降、連結と訳す)を使ったサンプルのWindowsFormsアプリケーションを作っているのだが、標題のクラスにめちゃめちゃはまっている。 カスタムオブジェクトを通常のComboBoxやListBoxに連結するのと同様に…
Formクラスで自動バインディングを行うと、FormのAcceptButton, CancelButton, Siteというプロパティに対するコンポーネントが見つかりませんという警告が出力されます。そのため、Formに対しては自動バインディングを行わず、手動でバインディングを行って…
Visual Studio 2005は自分で用意したプロジェクトを、同IDEで認識できるテンプレートとしてエクスポートできる、非常に便利な機能があるが、この機能のウィザードにはちょっと問題があるようだ。というのも、なんらかの原因で参照が切れたファイルがあるプロ…
5/31のエントリ?に対して、すぎもとさんに言及頂いた。 インスタンスの生成が頻繁に必要で、インスタンス生成時のコストを下げたい場合は、S2Container.NET標準のAopProxyが有利です。逆にインスタンスの生成時のコストがそれほど重要では無い場合は、Aspect…
先日のエントリ「WindowsFormsアプリケーションにおけるDI戦略(まとめ)」に対して、ひがさんからコメントを頂いた。 コンテナの初期化の時間をできるだけ減らすことが重要なら、Seasar2.4のHOT deployのようにオンデマンドでデプロイする方法もあります。HOT…
PowerShellの開発環境(2)- PowerShell Memoで、PowerShellIDEという、WindowsPowerShellの開発環境が紹介されていた。こんなのが出来たらいいな、と思っていたのだが、やはり既に作っている人がいたのだな。(意外にもMS-MVPのサイトだ※)実際にインストー…
Office2007のUIが先取りされて使われているんだけど、既存のSDKでどうやって実現するのだろう。 どうやらこいつを使っているらしい。 DotNetBar = Professional Applications コントロールビジネス(特に米国)は、未だ健在だ。