.net

カスタムコントロールの必要性

コンポーネント作ろうよ - 菊池 Blogコンポーネントにしてツールボックスに乗せるか否かの議論は別にして、カスタムコントロールにすることが必要なケースが昔に比べて減っているのは確か。 過去の日記でも触れているが、WindowsFormsに限れば匿名デリゲート…

タスクバーのグルーピングとWindowsForm

WindowsXP以降、MicrosoftのO/Sにはタスクバー上のプログラムボタンをグループ化する機能がついている。例えば同じアプリケーションから起動されたウィンドウが一定数に達した場合、プログラム名が付いた1つのタスクバーボタンにまとめられる。そしてまとめ…

「イントラネットのネットワークを自動的に検出する」は何を検出しているのか

スクリーンショットはIE7のインターネットオプション>セキュリティ>ローカルイントラネット>サイトから表示されるダイアログだが、ここで示されているデフォルトの設定である イントラネットのネットワークを自動的に検出する には注意が必要だ。IE7はIE6ま…

ReSharper 3.0.1

コーディングとテスト中はとてもお世話になっているのだし、今後も.NETの仕事は暫く続きそうなのでアップデートすることにした。私の場合、C# Editionで事足りるんで高々$149だし。おっと、インストール後はVisual Studio 2005の設定のリセットは忘れずに。 …

Acropolis

Microsoft codename Acropolis/ WindowsClint.NETFlash(Apollo)対抗のSilverlightが盛り上がっている。お堅い業務アプリケーションクライアント用途を考えた場合、個人的にはいま一つパッとしないなと思っているWPF(Windows Presentation Framework)だが、こ…

ReSharper 3.0

What's New in ReSharper 3.0XML及びXAMLサポートとOrcas対応が大きなトピックか。 あとはVB.NETとC#のバージョンを別々に使えるのはリソース節約の観点から有り難い。って、4月以前に2.xを購入したユーザは有償アップグレードなのか。

久しぶりに

暫くデータベースで遊んでいる予定だったが運良く(悪く?)引き合いが有り、久しぶりに.NETの仕事が始まる。 WindowsFormsはこれが最後の仕事になるだろうかと思う位最近は見捨てられ度合いが激しい気がするが、いいんだろうか。 今後はSilverLightか。確かに…

Db4o.openClientはスレッドセイフではない?

db4o(リモート)サーバに接続するための同メソッドだが、どうやらスレッドセイフではないらしく ObjectContainer oc = Db4o.openClient("localhost", 0xdb40, "db4o", "db4o"); 同一仮想マシンからマルチスレッドで同メソッドを呼び出すと、ログインに失敗す…

Swing Application Framework

Swing Application Framework JSR 296: Swing Application Framework拙作のリッチクライアント用フレームワークはWindowsForm向けなのだが、クライアント側は.NETに限定したくないという要求があるのも事実。 Javaに移植をすることを考えた場合、当時(2003年…

db4o その24 (クエリ評価モード)

db4oは最新のver6.0以降、クエリの評価モードを変更することが可能になっている。 クエリモードは以下のイディオムで変更する。 Db4o.configure().queries().evaluationMode(QueryEvaluationMode mode); 現在、db4oのクエリ評価モード(QueryEvaluationMode)…

ClickOnceとファイルのロック(その後)

JavaアプリケーションサーバにデプロイしたClickOnceアプリケーションの再発行に失敗するという現象だが、昨日検証したようにアプリケーションサーバがファイルを開いたが最後、クローズしないのが問題というので間違いなさそうだ。 よく、「アプリケーショ…

ClickOnceとファイルのロック

Java環境で構成、動作しているアプリケーションサーバにデプロイしたClickOnceアプリケーションの再発行に失敗するという現象に悩まされている。 具体的には一度発行したアプリケーションを、もう一度同じバージョン番号のまま発行しようとするとpublish.htm…

プロジェクト参照が失敗する

Visual Studio 2005でソリューション内に複数のプロジェクトを仕込んでいると、エラーが発生してビルドが失敗するようになってしまった。 エラー MSB3113:' Microsoft.Windows.CommonLanguageRuntime 、 Version 'ファイルは見付かりませんでした。= 2.0.507…

ジェネリック: Java vs C# その2

NyaRuRuさんから、C#の場合new制約を明示することでこんな書き方ができるという事をコメント頂いた。(自分で書いたライブラリィ中に同様の記述をしたことがあるのにすっかり失念していた) static T GetInstance() where T :new() { return new T(); } クラス…

ジェネリック: Java vs C#

JavaとC#のジェネリクスの違いについてまとめようと思ったが、既に詳細にまとめているサイトがあったので、そちらを参考にさせて頂くことにした。ジェネリック: Java vs C#結構違うものなのだな。 特にメソッドにおける型パラメタの位置の違いは、恥ずかしな…

db4o その23(RDBからのデータ取り込み)

db4oに関して基本機能の一通りの評価が終わったので次の段階に入る。次の段階では今までRDBで運用していたデータをdb4oに取り込み、RDBと同期させる機能を実装すると共に、RDBとの比較を行っていく予定だ。・RDB->db4oへのデータの取り込み dRSのエントリで…

ジェネリクス・コレクション

.NETのそれはJavaとは違い、一般的なコレクションとジェネリクスコレクションは別なネームスペースで別な型として扱う。同一クラスのシンタクスシュガーでしかないJavaと比べると何かと優れていると以前に書いた気がするけど、実際にJavaのジェネリクスも触…

db4o その23(インデクス)

db4oのインデクスに関してはまだ言及していなかった。 db4oは参照クエリの性能向上のために、B-tree構造のインデクスを任意のフィールドに簡単に設定することができる。PlayerImplクラスの選手名"name"フィールドにインデクスを設定するコードは以下のように…

db4o その22(レプリケーションによるオブジェクトの構造の変化とインデクス)

レプリケーションの完了した"src.db"及び"dst.db"に格納されているPlayerImplクラスの構造をObjectManagerで見てみたのが以下のスクリーンショットだ。 一見して解るが、先頭にバージョン番号、次にUUIDが付加されている。(v4overrsion, v4ouuid) これこそが…

db4o その20(レプリケーション) 修正

db4o-dRSにおけるレプリケーション処理に関して根本的な誤解をしていたので、書き直す。誤 レプリケーションを実行する dRSによるレプリケーション処理は自動で行われる訳ではなく、現在までに発生している変更差分を取り出してそれを対象に明示的にレプリケ…

J2SE7とプロパティサポート

Java SE 7の「プロパティ」が見えてきた - setter/getterのないJavaへうーん、J2SE7まで待てないかも。現在はdb4oの評価を行っていることもあってJavaをメインに使っている(db4oは.NETもサポートしているのだが対応するプラットホームの数を考えるとJavaを優…

db4o その20(レプリケーション)

データベースのレプリケーションとはデータベースの冗長性を高めたり、負荷分散を実現する手段としてその複製を作る処理をことを指す。db4oは元々レプリケーション用のAPIを実装しており、自身のデータベースを簡単に複製することができる。レプリケーション…

db4o その19(StoredField#get()のbug)

先日のエントリでは、db4oにおけるフィールドの型が変更された場合の振舞いと、データベースに格納されているオブジェクトのデータからメタデータを抽出する方法について言及したが、StoredField#getメソッドを使用してデータベースに格納されているオブジェ…

db4o その18(自動リファクタリングの対象外なこと)

先日はdb4oにおけるスキーマ・エボリューションと同等の機能である自動リファクタリングに関して言及した。 自動リファクタリングのサンプルではIPlayerインタフェースにアクセスするフィールドを追加する例で説明したが、ではその逆にIPlayerインタフェース…

db4o その17(スキーマエボリューションと自動リファクタリング)

以前にOODBの弱点とdb4oというエントリでOODBの弱点について多少言及したが、実は私が最初にOODBのことを知った時はもっと別な点を懸念していた。それはOODBは他のアーキテクチャのデータベース(構造型、ネットワーク型又はリレーショナル型)に比べてデータ…

db4o その16 (コミット時コールバックの罠)

先日言及したコミット時コールバックに関してだが、例えばコミット完了時に「トランザクションのコンテキスト内で追加されたオブジェクト」を全てtoString()メソッドでダンプするには以下のように記述する。 ObjectContainer db = Db4o.openFile("roster.db"…

db4o その15(コールバック その2)

先日言及した「コミット時のコールバック」に関して注意すべきことが見つかったので言及しておく。 以前にも書いたが、db4oのデータベースをオープンするモードはその処理形態によって以下のように大別される。 組込みモード ネットワークモード 実はこれら…

db4o その15(コールバック その1)

先日の同タイトルのエントリ中で書いた。 例えばdb4oの全てのデータ操作をジャーナルログとして書き出すような処理を書くことを考えているが、そのような用途にはIoAdapterを拡張するのが最も簡単だろう。 少し考えれば解ることなのだが、IoAdapter及びその…

IE7とIEHostLog

仕事で.NET C#で書いたクラスをIE上でロード、アクティブ化してビヘイビア(script behavior)から制御している。IE上でActiveXコントロールをロードするのと同じことを.NETカスタムコントロールで行っている訳だ。こいつをロードする際のデバッグを行うため等…

db4o 6.2.501

Newsletter #31 - db4o 6.2.501 adds Committed Callbacksdb4oの開発版であるver6.2は最新の6.2.501がアップされているが、このバージョンは先日言及したCachedIoAdapterクラスにおけるbackupメソッドのバグがfixされていることを先ほど確認した。