2009年5月8日金曜日

Windows7 RC版でVB6製アプリケーションの動作

ViryualPC上で今回も環境を用意してみたので一通り動作確認。
相変わらずTabCtl32.ocxとMsflxgrd.ocxがレジストリ登録周りで失敗しているくせに、何事もないかのように進んでしまい少々ハマっただけでとりあえずは問題なさそう。

一応自分で手掛けているシステムだけ確認したけれど、その際に利用していたサードパーティ製ツールはこれ。

  • DenpyoMan 1.5
  • ActiveReport 1.5

一応この二つは問題なく動いている様子。これで一安心かな・・・。

GrapeCity製品で問題あるのは、自分が関わっている中ではInputMan6.5だけかな。
自分のプロジェクトでは利用していないけど、どうやらこれのIME制御関係とメニュー関係のocxで問題が出る様子。
でもInputManとDenpyoManってIME制御同じことやっていると思っていたんだけどなぁ。

今のところ自分のプロジェクトのDenpyoMan利用箇所では問題ないんだよね。

・・・これでXP Modeでなくても大丈夫とわかって一安心だw
使ってはみたいんだけどねぇ。

2009年4月30日木曜日

Windows7のWindows XP Mode(2)

色々調べていく内に、他のサイトで言及していたHW要件の話が目につくようになってきた。 AMDはいいんだけどIntel系が・・・。

Intel-VTという仮想化技術を搭載したCPUとなると、Xeon5000番台、同じく7000番台はまだいいとして、クライアント側が厳しい。

Core2DuoではE6000、E8000。Core2QuadではQ6000、Q9000。そしてCorei7。
現在ビジネスPCでまだ出回っているCore2DuoのE7000台は未対応というのが厄介。 ま、CeleronやPentiumのデュアル物はしょうがないとしても。

Windows7導入時のHWにはちょっと気をつけないとくらってしまいそうだなぁ・・・。

素直にWindows7用システムに刷新できれば何の問題もないんだけど、そんなことができるケースなんて仕事上少ないわな。

2009年4月27日月曜日

Windows7のWindows XP Mode

あー、なんというかやっぱりこういう形になってきたか、というのが正直なところ。

結局一部のWindowsXPから乗り換えられないユーザー、ベンダーの為に仮想化されたXPを標準提供しようということなんだよね。

ぱっと見た目はAPP-Vというか、VirtualPCのように「いかにも仮想化です」という雰囲気がないのでいい感じはするw

実際にベータがリリースされたら確認はするけど、APPからストレージ(ローカル環境)にアクセスする際に、何か気をつけないといけない点があるような気がするなぁ。XPからVistaに変化した際に一躍有名になったローミングとか、一部フォルダのリダイレクトとかをもう一度チェックしないといけないのかな?

2009年4月23日木曜日

Windows Server 2008 Foundation

昨日(4/22)あたりに発表になっていた、低価格なWindowsServer。
提供形式がOEMのみなのでメーカー製PCに限定されるとはいえ、しょっぱなに発表されたDELLのモデルが最小構成で\54,800円だかそのあたりという、本当にクライアントPCと変わらない価格帯なので、今後続く日本のメーカーからも近いレベルでの提供になるんじゃないかと・・・。

詳しくはよく調べられていないので何とも言えないんだけど、15人以下という制限は確かに小規模な会社には丁度いい感じ。
ただちょっとだけ気になった点が「既存ActiveDirectoryへ組み込むのは推奨されない」というところかな。

まぁライセンス形態が別物だから面倒になるってことなんだろうけど・・・。

使えるようだったら仕事で使いたいねぇ。
今の仕事のメインターゲット層に思い切りマッチしているから。

2009年4月21日火曜日

SharePoint Designer2007がフリー化

今月の頭(4/1)から無償化されていたとは知らなかった・・・。

SharePointServiceは少しずつ触っていたので「欲しいなぁ」とずっと思っていただけに結構嬉しいね。
まずはワークフローあたりを試し試し触って使い込んでみるかな。

それによっては自前で作る必要が大分減るからなぁ。

2009年4月3日金曜日

WinFormsでOffice2007のリボン

CodeProject: A Professional Ribbon You Will Use (Now with orb!)

CodeProjectで以前よりあったんだけど、全然知らなかった。
WPFでも同じようにリボンインターフェースを~、というのは知っていたんだけど、WinFormsでというのは初めて見つけたんだよね。

Demoも含めてソース一式ダウンロードしてみて見てみると・・・。

いやぁ、これはスゴイ。本当に2007OfficeSystemだ。Coolだなぁ。

実際に利用するにはOfficeUIのライセンス登録が必要なんだけど、アレって確か登録する際に「利用する商品名」のような欄があった気が・・・。前に登録しようとした時は、そういう項目があったんでパスしたんだけどなぁ。

日本版として契約内容変えてくれないものかなぁ。

2009年3月17日火曜日

DataRepeater.ItemTemplate内部でのTabIndex

アンバウンドで使いたいがためにカスタマイズ中w
色々手を入れていると少々気になる挙動が。

デザイン時にコントロールをドロップして、ItemTemplateに追加するんだけどこの時各コントロールのTabIndexは重複できるんだねぇ。今までは重複不可と思っていたんであまり意識しないで順番につけていたんだけど。

EnterキーをTabに変換するようDataRepeater.ProcessDialogKeyメソッドをオーバーライドしてみたんだけど、デザイン時にTabIndex=0としておいたコントロールが、何故だか一番最後にフォーカスを得るようになってしまうんだよね。ItemTemplate内部ではちゃんと0オリジンで設定されているんだけど、実際に表示されているカレントアイテム内部ではTabIndex=0のコントロールのTabIndexが末尾のインデックスに置き換わっていたんだよねぇ。

最初は自分が追加したロジックを疑っていたんだけど、TabIndexなんて調整しないからなー、と試しに試してようやく現象発覚。

デザイン全部直してもらうなんてのも大変なので、とりあえずどこかのタイミングでTabIndex再調整ロジックが動くようにしておけばなんとかなるかな・・・?

多分行ヘッダが追加された時に再割り当てされているんだとは思うんだけど・・・。

2009年3月13日金曜日

Visual Studio 2005 Express 終了

2009-3-31にてついにVisualStudio2005ExpressEditionの提供が終了ということで。

考えてみたら自分が触り始めたのはベータ2のころからだから、かれこれ5年になるんだなぁ。
とりあえずisoイメージだけは何かと使うかも知れないのでダウンロードしておかないと・・・。

つか、会社よ。MSDNサブスクリプション入ってくれw

2009年3月6日金曜日

SqlServer2005 空パスワードアカウントの有効・無効

まぁ深くセキュリティを考えなくていいシステムの場合にはよくあるのがパスワードなしアカウント。 今回そういったシステムのハードウェア移行を行った際に少しあたふたしたので・・・。

ログインアカウントをManagementStudioでスクリプト化して、新サーバの方で実行するとアカウントは無効状態で登録されるんだよね。ManagementStudioの詳細画面でアイコンの右下に赤矢印がついているような感じで、無効を表しているんだよね。

で、そういったアカウントを有効にしようとアカウントのプロパティから「有効」にしてみたところ、

「空パスワードなアカウントを有効にすることはできません」(メッセージうろおぼえw)

と言ってきたんだよ。なので一度適当なパスワードを設定し状態を有効に再設定、その後パスワードを空白にすると今度は処理が通ってしまったわけだ。

・・・なんというか片手落ちだよなぁw

2009年3月4日水曜日

SqlServer2005 SP3でのDBCC CHECKIDENT

今まで開発にはSqlServer2005のSP2を利用していて、IDENTITYが設定されたテーブルのDELETEトリガにSEEDの再設定を行うものを仕込んでいたんだよね。こんな感じに。

DECLARE @MAXIDENT INT;
SELECT @MAXIDENT = MAX(SAMPLEUID) FROM SAMPLE_TABLE;
DBCC CHECKIDENT ('SAMPLE_TABLE', RESEED, @MAXIDENT);

今まではこれで問題なくSEEDの再設定が行えていたんだけど、今回SP3を適用して確認しているときに問題が発生。DBCCの部分でパラメータ不正的なエラーになっていたんだよね。少し詳しく見ていくと次のようなケースで発生していたみたいで。

  • DBCCを行うテーブルにレコードが1行も存在しない時

この場合にはDBCC CHECKIDENTがエラーとなるように動きが変わったんだよなぁ。ただ正直言ってSP3で何が変更されたとか、もともとこの方法がまずいだとかまで調べないでやっていたものだから何とも断定できないけれども。でもSP2環境では問題なく動いていたのは事実。
今回は次のように対応することでSEEDの再設定が行えました。

DECLARE @MAXIDENT INT;
SELECT @MAXIDENT = MAX(SAMPLEUID) FROM SAMPLE_TABLE;
IF @MAXIDENT IS NULL
  SET @MAXIDENT = 0;
DBCC CHECKIDENT ('SAMPLE_TABLE', RESEED, @MAXIDENT);

DBCCする前に、取得したIDENTITY値がNullかどうか判断してNullならば「0」をSEEDに設定すればOK。