2011年9月のエントリ

C#のXMLドキュメントコメント。MSが公式に出しているSandcastleを使ってみた。リフレクションをフルに使ってMSDNみたいな形式でドキュメントを出してくれる。標準の型とか親クラスはMSDNへのリンクまで貼ってくれるというやりすぎなツール。

2011092501


GUIのフロントエンドSandcastle Help File Builderってのもあるらしいけど,常に最新版を使うならやっぱCUIよね,ってことで使い方。ちなみにOSはWindows 7 x64,Visual Studioは2010 SP1。SandcastleはJune 2010(Version 2.6.1062.1)。

インストール
  1. Sandcastleの最新版をダウンロード,インストール
  2. 環境変数にDXROOTが登録されるが,間違っているので最後の「」を削除しておく。
ドキュメント生成
  1. Visual Studioのプロジェクトの設定で「XML documentation file」を有効にする。その際ファイル名は「プロジェクト名.xml」じゃなく「comments.xml」にする。
  2. XML Documentation Comments形式で正しくマークアップされたプロジェクトをビルド。
  3. comments.xmlとビルドしたファイルと「C:Program Files (x86)SandcastleExamplesSandcastlebuild_Sandcastle.bat」を同じフォルダにコピーする。
  4. ビルドしたファイルがexeの場合,build_Sandcastle.batを書き換える(※1)。
  5. プライベートメソッド等非公開メンバも出力するには,build_Sandcastle.batを書き換える(※2)。
  6. 上記フォルダで以下を実行。形式は引数によっていろいろ選べる。
    build_Sandcastle.bat
      vs2005 ビルドしたファイル名(拡張子なし) html
※1
修正前:MRefBuilder %2.dll /out:reflection.org
修正後:MRefBuilder %2.exe /out:reflection.org
※2
修正前:MRefBuilder %2.dll /out:reflection.org
修正後:MRefBuilder %2.dll /out:reflection.org /internal+

最近は会社でWPFを使っている。C++の頃と比べるとめちゃくちゃ楽。イメージ的には,WPFではXAML10行くらいですむものをC++でやったら100行かかる,みたいなことを100個作るみたいな。

特に会社でWPFをやって初めて気付いたのがエラー処理の楽さ。C++(Win32 API/MFC)の頃は,UIを駆使するプログラムを書くと何かやる度にエラー処理を何十個も書いていたのだが,WPFだとほとんどバインディングですんでしまってエラー処理がほとんどなくなる。まあ例外に変わっただけと言えないこともないんだけど,それでも入り口にtry-catch書いておけばすむわけで。家プログラミングだとそこまでエラー処理入れないので気付かなかった。


もう一つ。今回は全関数について関数仕様書を書かないといけないかも,みたいな話があって,XML Documentを試してみた。けど結構すごい。関数コメントに書いたものを抽出して勝手にドキュメントができるのは今や当たり前だけど,.NETのはコメントと関数が合ってないとビルド時に警告が出るようになっている。ということは,警告が出なくなるまで修正してやれば,関数コメントは完璧になるわけで。この手のことをやるといつも問題になる,コメントと関数がだんだんかけ離れていくというのがなくなる。Java Docとか最近見てないけどこんな風になってきてるのかなあ。

ただデフォルトでXSLTとスタイルシートがない(と思う)のが残念。Purentroを題材にそれっぽく見えるのを作ってみようかな。

タイピングスレが面白い流れに。ちなみにウェザタイはWeather Typing開発裏によると,0から作って基本的なところまでが1週間,対戦含めて完成まで1ヶ月だったっぽい。

あと入力不能時間に関しては,よくある質問にある通り,ハンデを-9にするとなくなる。リズムが乱される人はその設定でプレイするといいかも。

Windows 8はとりあえずおいておいてデザインの勉強。WPF/Silverlightを本格的にやるにあたって,デザインの基礎くらいは勉強しないとね,ってことで。教科書的なものを読んでるけど奥深い。

VMware 8を購入。円高万歳。ということでWindows 8を試してみた。VMware 8ならインストールも特に問題なし。Aeroも有効になっている。スタートメニューがメトロになったのか。週末にもう少し遊んでみよう。

2011091601

Windows 8。VMware Workstation 7だと「:-) HAL_INITIALIZATION_FAILED」でダメだった。おちゃめなBSOD。と思ったらVMware Workstation 8がダウンロードできるようになってるのか。今日帰ってきたら試してみよう。

Windows 8 developpers preview公開ということで落としてみた。一般の人でも落とせるっぽい。でも会社のVMWare 6.5 WorkstationではVMWareが落ちて動かなかった。なので家でダウンロードしてVMware 7で試そうとしているが,ダウンロードがめちゃくちゃ重い。

Virtual PCなら動くんだろうけど,3Dが動かないと楽しくないし,VMWareでだめならセカンドマシンに入れてみようか。

はっぱさんが近くに住んでいることが分かり,カレー屋へ行ってレンタルサーバの話をした。

はっぱさんも最近レンタルサーバに乗り換えたのだが,セカンダリネームサーバがないということでdenasu.comにDNSをたてた。

yumでbindをインストールしてnamed.confを設定してゾーンファイルを設定してBIND起動。したのだが,nslookupしてもつながらない。しばらくはまってたのだが,結局named.confのlisten-onが127.0.0.1になっていたのが原因で,外部向けのインターフェースでも受け付けるようにしたらうまくいった。まあ実際にはchroot jailとか逆引き設定とかいろいろはまったのだが,この辺は少し調べれば分かるので。

9/8 11:00-12:00頃denasu.comサーバが一瞬止まるらしい。ワードサーバはいいけど,ロビーは自動起動していないので最悪9/8の夜まで止まってしまう。自動起動の設定をしてみたんだけど,データベースの起動と待ち合わせができなくてあきらめた。