2006-04-01から1ヶ月間の記事一覧

スマートクライアントのDI戦略(その2)

DIコンテナによる依存性の解決 登録するコンポーネント間の依存性を宣言的、又は自動的に解決するのがDIコンテナの特徴的な機能だ。しかし、依存性の解決にも当然ながら処理コストがかかるので、クライアントアプリケーションではその辺を考慮して依存性解決…

カテゴリ

去年まで.NETと.NET2.0を分類していたのだが、.NETで統一した。もう、分けておく必要もないだろうし、アクセスログを見ると明らかに検索ワードを二重にしているケースが多かったので。

派生ImageConverter 作れず

既存の型に対して、拡張したコンバータをTypeDescriptor経由で新たに取得する方法は無かったりする。どうしたものか。 やりたいことは、設定されたプロパティが文字列だった場合はリソースへのパスとみなして、1.内部リソース(マニフェストリソース)、2.外部…

スケープゴート

Winnyの次はShareだそうだが、早晩にも次のが紹介されるのだろう。こういうのは特定のソフトウェアのせいではない。でも、Winnyを使うことを擁護する気もない。職場と少しでも繋がりのある場所で使うのはたわけだし、想像力の無い人間のすることだから。

スマートクライアントのDI戦略(その1)

DI(Dependency Injection)戦略などと、それっぽい題名を付けているが大したことではない。一般的なクライアントアプリケーションに必要なリソース戦略と大して変わらない。DIの扱いに関してはいろいろなところで紹介されているが、明記されていないまでも、…

お勧めしません

TDD

知り合いが、オブジェクト指向技術を最大の売りにしている某コンサル(最近は開発も多いと聞いている)会社主催のJavaの講習を受講したのだが、その際にTDD(テスト駆動開発)について聞いたところ TDDはお勧めできませんねぇ、止めておいたほうが良いですよ と…

連休中に聴く予定のCD

カラヤンが振ったオペラにはずれ無しというが、どうだろう。すぐ近くにフレーニが着物着ている盤もあったけど、見た目に...なのでこっち(笑。 高いCDだなと思っていたら3枚組なんだ。 ハイライト版は持っているのだが、やはり完全盤が欲しくなってしまったの…

ImageConverter

.NETは組み込みでいろいろな型のコンバータを実装している。例えばSystem.Drawing.IConクラスから、System.Drawing.BitMapクラスに変換するためにImageConverterクラスが用意されており、型のコンバータは以下のように取得できる。 TypeConverter converter …

カスタム属性の逆引きが欲しい その2

昨日のエントリより このような処理は数個〜10個程度のプロパティしか持たない自作のクラスの場合は全く問題無いが、.NET Frameworkで提供されているクラスを派生したクラスに対してプロパティ情報のパースを行うと、祖先までクラス階層を手繰ると数百のプロ…

DynamicProxyとカスタム属性

クラスFoobarに対してカスタム属性"HogeAttribute"を設定し、そのクラスFoobarをDynamicProxyで拡張するとしよう。 [Hoge(〜 )] public class Foobar { } 〜 Foobar proxy = this.generator.CreateClassProxy(typeOf(Foobar), this, new object[] { null}); …

コンポーネントとコンテナ

artonさんの日記が興味深い。 我々が本気で注力すべきなのはコンポーネントであってコンテナではない。そういう世界はなんとなく、消えたように見えるけど、実はそうではない。でも現状はそういう世界が無視されているようだ。でも、それは不自然だ、という…

春寒

もう4月も終わるというのに、今朝は凄く寒く感じた。今年の春はちょっと変だ。 昨日の最後に書いたエントリ、今見ると単なる愚痴だな。恥ずかしいけれど、でもこのまま残しておこう。

Ethereal

今となってはあまりに有名なネットワークプロトコルアナライザ Ethereal - Network Protocol Analyzerネットワークプログラミングをしていると、特に俺様なプロトコル(大抵はTCP/IPかUDPの上層)でのプログラミングをしていると、絶対に欲しくなるのがプロト…

Internet Explorer 7.0 Beta 2

公開されたので、懲りずにインストールしてみた(今回はちゃんとシステム復旧ポイントを作っておいた)が、ここ"はてな"のスタイルシートが崩れる等、相変わらず私がよく訪れるサイトに不具合が起きるので、今回も速攻アンインストールしてしまった。

カスタム属性の逆引きが欲しい

相変わらずDIがらみの話になるが、任意のプロパティに対してアノテーション(以降カスタム属性)でのインジェクションを指定するとしよう。カスタム属性はこんな感じに指定する。(語彙は最も親しんでいるSeasar2の語彙を使用させて頂く) [Binding(Value = "Kaz…

コメントスパム

はてなにいるとそれほど被害に合わないコメントスパムだが、私の日記の場合、ある日のエントリだけにいつも大量のコメントスパムが付くので呆れている。[.NET][VS2005]Visual Studio 2005によるXSLTのデバッグこのエントリにいつも、殆ど同じ内容のコメント…

コンポーネントの自動登録機能で考えること その2

いろいろ考えたが、コンテナに登録する際の自動バインドモードの既定値は、"自動バインドしない"に決定しようと思う。いろいろあるが、決定したのは以下の2点から。 クラスを使うユーザ(プログラマ)が、そのクラスの全てを知っているとは限らない これは、意…

ReSharper 2.0β

JetBrains ReSharper 2.0 Beta開発中とされていた2.0のβ版がついに試用可能になったらしい。 ReSharperだが、簡単に乱暴にどんなものかを紹介すると Visual StudioをいわゆるPost IntelliJなIDEに近づけてくれるアドイン というのが的確か?。実はまだ試用し…

バグ対応

バグが発生した? ああ、やるさ。やる気満々だとも。すぐにでもそのバグを取ってやろうじゃないか。でもさ、バグが発生した時だけ連絡して来るのってどうよ。何? 上手く動いて当たり前、上手く動かないから連絡するんだろうって? いや、ごもっともで。 でもさ…

コンポーネントの自動登録機能で考えること

以前の日記で書いたAssemblyComponentAutoRegisterだが、一通り実装してみた。最初はAutoRegister周りだけを用意して、DIコンテナにぼこぼこと登録してやればよいと、簡単に考えていたのだが、これが甘かった。実際には アセンブラとデプロイヤの構造の見直…

ComException,ErrorCode=-2147467259

昨日から調べていたが原因は解らない。WebBrowser Controlのオートメーションが問題になっているらしい、ということだけは解ったが。 緊急のトラブル対応ではないし、休日にトラブルシュートしているのが空しくなってきた。ので、後回し。

TestDriven.NETの組み込み解決

いくら調べても原因が解らなかったので、駄目元でVisual Studio 2005を再インストールしたら、使えるようになった。Visual Studioのようなインストールに時間がかかるアプリケーションは、一度インストールしたら二度とはインストールしたくないものだが、結…

Type.GetMethods

このメソッド、どうして以下のように書けるオーバロードが用意されていないのだろう。 Type type =(typeof(myClass)); MethodInfo[] methods = type.GetMethods("対象のメソッド名"); BindingFalgsでオプションを指定することはできるのだが、その他は一切フ…

キャッチされないCOMException

先日の同名エントリで菊池さんからアドバイスを頂いたので、実際に試してみた。 Visual Studio のメニューの[デバッグ]-[例外]で例外発生時に止めるって設定があります。 どっかがつかんで握りつぶしちゃってる例外のデバッグをするには結構有用です。 まず…

DynamicAopProxyの長短所 その3

CastleProjectのDynamicProxyだが、昨日の時点で最新のリポジトリにアクセスしたところ、いくつかのクラスに変更があった。最新SVN -> http://svn.castleproject.org/svn/castle/trunk/Tools/DynamicProxy/DynamicProxyは.NET Framework 2.0に既に対応してい…

キャッチされないCOMException

.NET Framework 2.0限定ネタかも。 System.Windows.Forms.WebBrowserクラスのScrollBarsEnabledプロパティをfalseに設定するとSystem.Runtime.InteropServices.COMExceptionが発生する。何故こんな話題を振るかというと、つい先ほどデバッグトレースに以下の…

VisualStudioの設定を初期化する

メモ devenv /setup TestDriven.NETは会社では問題無く動くのに、なぜか自宅の環境ではアドインの読み込みに失敗してしまうのでいろいろとお試し中。Windowsの開発環境だけに、またレジストリとかだったらいやだなぁ。

TestDriven.NETの組み込み失敗

アセンブリバインドログを採ったら ログ: ポリシー後の参照: TestDriven, Version=1.0.0.0, Culture=neutral, PublicKeyToken=50ecb853f8c6b8d2 ログ: GAC ルックアップに失敗しました。 ログ: 新しい URL file:///D:/Program Files/Microsoft Visual Studio…

.NETの常識?

私はJavaの経験をある程度経てから.NETに、いきなり移行してきた事もあり、もう2年も経つというのに、未だに.NETの常識に驚かされることが多い。(単に勉強不足なだけだが)スーパークラスの定数をリフレクションで取得したいと思い、以下のようなコードを書い…

DIコンテナの初期化

メモアプリケーションがDIコンテナを使う際の準備としては 設定ファイル等から定義情報を読み込んで、コンポーネント定義情報を構成する コンポーネント定義情報を基にコンポーネントを生成して、依存性を解決する 一般的にはこの2段階の処理が必要なのだが…