hishidaの開発blog

EBシリーズ(EBPocket,EBWin,EBMac,EBStudio),KWIC Finder,xdoc2txt,読書尚友の開発者ブログ

Visual Studio 2005について

世間ではVisual Studio 2008のBetaが配布されており、来年には日本語版も発売されるそうな。
私のほうは今頃になってようやくVisual Studio 2005を使うようになった。Visual Studio 6.0から比べるとさすがにユーザインタフェースは進歩している。今日は、C++ユーザからみたVisual Studio 2005の感想を述べてみる。

C++プログラマからみたVisual Studio 2005の感想

Visual Studio 2005の利点
  • ANSI互換になった。Visual Studio6.0はfor文の制御変数のスコープが独自仕様で、GNU C++などと互換性がなかった。
  • インテリセンス(状況依存のヘルプ)がVisual Studio6.0に比べて進歩している。
  • ソリュージョンとプロジェクトという概念があり、関連のあるプロジェクトをひとまとめにしてビルドできる。※ソリュージョンはVisual Studio.NETからの機能
  • エラーチェックが厳密になった。(うるさいくらい)
  • デバッガが使いやすい。特にブレークポイントの設定と条件の指定が簡単にできるのは○。
  • 意外にもHTMLエディタが優秀。十分Frontpageの代わりになる。
  • モバイル開発では、エミュレータの完成度が上がり、ARM用のバイナリがエミュレータでそのまま実行できるようになった。バイナリで配布されているアプリケーションをエミュレータにインストールすることも出来るので、実機に近い環境でのデバッグができる。またActiveSyncでエミュレータに接続できるのも優れている。
Visual Studio 2005の課題
  • クラスデザイナやコードスニペットといったカタログ上の売りの機能は、実はC++では利用できないものが多い。クラスデザイナはVisual Studio2008からはC++で使えるようになるそうだが、コードスニペットはやはりサポートされない。
  • MFC で開発した場合、MFC8.0が必要になる。Windows VistaにはMFC8.0が標準で入っているが、Xp以前のPCはまだ現役で使われているため、アプリケーションと一緒にMFC8.0を配布しないといけない。
  • Visual Studio2005で開発したアプリケーションはWindows98以降しかサポートされず、Windows95で動かない。
  • 同じく、モバイル開発ではPocketPC2003以降しかサポートされない。それ以前のPocketPCWindowsCEの開発にはeVC3.0や4.0が必要。
  • モバイル用のMFC8.0は、eVC4.0までのMFCに比べて利用できるクラスが減っているため、アプリケーションによっては移植が難しい。ただし SP1 では削除されたクラスのいくつかが追加されており、多少移植が楽になった。

MFC 8.0 でサポートされなくなった MFC 3.0 の eVC クラスの一覧

  • C++でマネージド開発を行う場合の言語仕様が、バージョンアップの度に変わる。Visual Studio.NETにはC++マネージ拡張という仕様があったが、Visual Studio 2005ではC++/CLIに変わった。

Visual Studio 2005の問題点を一言で言えば、「下位互換性が切り捨てられている」こと。まだまだWindows95やPocketPC2002以前の機種は現役で使われており、Visual Studio 2005以降の環境に完全に移行することは、しばらくは難しい。通常の開発はVisual Studio 2005で行うとしても、リリースするプログラムはVisual Studio 6.0やeVC3.0/4.0で作成するという並行運用がまだまだ続くことになる。

もちろん、以上はC++で使用する場合の話であり、C#で開発を行うなら、大変快適な開発環境だと思う。