Cafe Diary ログに戻る

2004-4-21

VisualStudio.NETとC#

Windowsフォームをいろいろ試してて思うのは、C#で開発するのが一番早いってこと。VBは単に慣れてないからだけど、それでもソースからのドキュメント化をサポートしてなかったりするし、ManagedC++はソースとデザイナでいったりきたりしているとコンパイルに時間がかかりすぎるのが難(デバッグ起動が遅いのには慣れてしまった…)。

XNAは将来C#にも対応するのかなぁ。コンシューマではまだまだ先、だろうけどケータイで動くJavaゲームが許されるなら、ゲーム機で動くC#も許されないことはないと思う。



2004-4-17

.Netコンポーネント

WindowsFormに使えるカスタムコンポーネントを探してみると結構あるようで、コンポーネント単位の再利用というのも進んできた感があります。

使ってみると本当に便利。「作る前に探す」が大事ですね。ただし…英語です。あと有料も多いです。



2004-4-15

textfile.orgより

結城浩さんが運営しているtextfile.orgはよくチェックしていて、楽しんでます。毎度面白いリンクやコメントがあって興味深いです。今日のリンクだと、たとえば

シリコンの谷は、いま。」は、シリコンバレーで働いている日本人がほぼ日で連載しているコラムで、向こうのやり方や日常のちょっとしたことが書かれていて面白かったです。少数のチーム、自分で決めるスケジュール、ナルホドなぁと。英語の学習法なんかも結構いいかも。

デジタル・スクラップブック SVG Cats 2」は、OneNoteがわりのスクラップブックソフトウェアとして使ってみたいと思いました。起動したらF1キーでクィックスタートを呼び出せ、ひととおり使い方とできることが分かるのも親切。

ちなみに、OneNoteのトライアル版はこちらでダンロードできます。Webページを切り取ったときにLinkも有効なままだったり、こっちの方が便利なのは便利なんですが・・・。と思ったら、送付元リンクが付くだけで、文章の内のリンクは消えるようです。



2004-4-13

XNAでゲーム制作はどう変わる?

Microsoftが提唱するゲーム用プラットフォームXNA、J Allard氏へのインタビューが面白かったです。業界全体の話し合い、APIの共通化で各社が実装を提供、「Common Language Runtime(CLR)」的な実行の可能性など。SonyのCell分散コンピューティングに対する冷ややかな分析もあり。「後藤弘茂のWeekly海外ニュース」より。

「XNAは10年越しの夢」と熱いトーンで語られると、実際のXNAがどうであれ、惹かれるものがあります。たとえばこんな感じ。

[Q] XNAでも、同様にプリプロダクションなどを簡単に実現できるようにする?

[Allard氏] 簡単にアイデアを実現できる方法について、XNAでも色々考えている。(Microsoftのツールでは)Visual Basicもひとつの例だが、ではXNAでVisual Basicにあたるものは何になるだろう? Mystをもっと産み出すには、どうすればいいだろう? 真にクリエイティブだが、ほとんどコンピュータを知らない人々を、どうやって成功に導くことができるだろうか。

 Webはそれを達成した。今、Webではあるレベルのツールがあれば、あなたは簡単にWeb雑誌を創刊できる。出版は劇的に簡単になった。

 でも、ゲームを作り始めることは、まだ簡単ではない。私がXNAを考え始めてから、10年越しの夢として考えているのは、まさにそのことだ。XNAでWebのように簡単にゲームを作れるようにする。

マイクロソフトとしてはソフトウェアの分野で勝負しようとするのは当然で、Sony/任天堂では考えない方向から攻めて来たなという感じがします。この引用部分の実現はかなり難しいだろうけど、モノを限定すればムリではないかも。[1]

  • [1]ちなみに、ソフトウェアの生産性を10倍も100倍も上げるという売り文句で出たものも、過去の例でいうと、実際は0〜35%程度上げるくらいの結果だったらしいです。つまり効果はあるが、言いすぎの場合が多い。

XNA関連として、こちらのムーア氏、「日本のメーカーはXNAを選択せざるを得ない」もどうぞ。年々ゲームソフト開発の複雑度や規模は大きくなるけど、生産性は上がらずコストだけが上がり、アイデアは枯渇し、それを解決する選択肢はXNAしかないと強気。しかし麻雀ゲームって・・。



2004-4-12

Windowsフォームによるウインドウデザイン

VisualStudio.NETにはMFCに代わるクライアントアプリケーション用ライブラリが用意されている[2]。それがWindowsForm。これが使ってみるとなかなか便利で、Windowアプリケーションなら確かに生産性はあがりそうだ。

  • [2]MFCもなくなったわけではなくて、MFC7として使用することはできる

感覚としてはMFCでのダイアログアプリケーション開発に似ている。ただ、WindowFormの場合はダイアログに限らず、MDIアプリケーションだろうが、SDIだろうが、すべて共通で、フォーム(というウインドウ)にコントロールや機能(印刷ドキュメント、開くダイアログ、とか)を貼り付けて簡単にインターフェイスが作れることが違う。

ウインドウにボタンやリストボックスを配置できる――だけではなく、メニュー、タブ、子ウインドウ、さらにはその配置位置の動的な制御(右側の辺にボタンを固定とか)、バックグラウンド色、画像の指定などなど、いままでコードを書かなければできなかったことが、コントロールのプロパティ設定だけでできる[3]

  • [3]プロパティの変更はリソースファイルではなく、コード自体に反映される。VisualStudio.NETのフォームデザイナではなく、プログラムで制御したい場合も同様のコードを書くだけで好きなときにプロパティを変更でき、分かりやすい

イベントの処理、コードの記述も新しいクラスライブラリ/フレームワークによって簡単になっている。このクラスライブラリのデザインが、C#でもマネージドC++[4]でも書式以外ほとんど変わらないのは嬉しい。どちらの参考書を見ても、C#だったらこう、C++だったらこうというのが想像できるからだ。クラスライブラリのデザインとして、MFCでコントロールごとに違ったAPIもできるだけ統一されているし、ほぼ同じ形でアクセスできる。もちろん、ガベレージコレクションもプログラムの簡素化に役立っている。

  • [4]ガベレージコレクション機能付きC++。マネージされないコードも同時に使用できる。VisualStudio.NET上からの起動読み込み時間はC#よりもかなりかかるものの、既存のC++ライブラリをそのまま生かせるメリットがある。

たとえば従来の SetWindowText("NAME") のような関数は、ControlName.Text = "NAME" のような直接的な表現で書ける。強力なIntelliSense機能とあいまって、非常に書きやすくなっている。

とはいえ、作っていて面倒だなぁと思うことも結構ある。ヘルプが重くて使い難い感じもするし、コントロールに名前をつける作業が手間[5]だし、.NET依存も困る場合がある。深みにはまれば難しくなるのは同じ――だけれど、簡単に見えることは簡単に、込み入ったことは難しくというのはストレスのかかり方としては悪くない気がした。

  • [5]といってもビジュアル記述型の言語にして、コントロールから線を引っ張り変数名を省略、というのもコードが見づらいだろう。


Tag : 開発

2004-4-6

テロの警戒

新宿駅や池袋駅を歩いていると警備員がたくさんいるけど、スペインの列車爆破テロの影響なんですね。ここらへんのニュースに疎いのでまた予告でもあったのかと思いました。でも、いつまで続けられるんだろう。

関連リンク:



2004-4-5

嬉しい誤算

というのか、N900iにFOMA USBケーブルを挿してSDカードモードで通信すると、前にインストールしていたExilimの画像管理ソフトが立ち上がってデジカメの画像と一緒に管理してくれた。面白い。USB接続で画像ファイルのあるストレージがつながると読みに行く仕様なんだろう。

N900i、メガピクセルモードはともかく、普通のメールサイズの画像を保存するときにデフォルトが圧縮率優先の汚い画像モードで毎回設定を変えないといけないのが面倒です。動画も実用的じゃないし、TV電話は音が聞き取れない。しかし、当初望んでいたことは十分こなせてます。



Cafe Diary ログに戻る