Top > Programmingとか > VB / VB.NET > 2008

VS2005 のソリューションは VS2008 では作れない

というわけではないのですが、ちょっと意識的に嘘をついてみましたすいません。

VS2008 のウリのひとつに「.NET Framework 2.0 / 3.0 / 3.5 を切り替えてソリューションを作成できる」ってのがありまして。
これを根拠として、「VS2005 のソリューションを VS2008 で作成できる」と言いきっちゃっている人をまま見かけるんですが、これが私にはミスリードだと思えてならんのです。

以下、「.NET Framework」を「.NF」と略します。長すぎる。

確かに VS2008 で .NF2.0 のソリューションを作成すると、できあがった .exe は .NF2.0 のみインストールされているマシンでも動作するようにみえます。
たぶん実用的な範囲では「動作する」と理解しておいても弊害はあまりないと思います。

しかし、特に商品としてのプログラムを作成する場合。

「VS2008 での VS2005 ソリューションの作成」を採用するかどうかは、単純に動くの動かないのとは別に、以下の 2 点を考慮する必要があります。

  1. VS2008 に同梱される .NF2.0 は SP1 であり、無印ではない。

    各種テストをVS2008IDE上で行った場合、テスト結果が保証するのは.NF2.0SP1に対してであり、.NF2.0無印に対するものではない。
     
  2. VS2008 での .NF2.0 指定の本質はアセンブリの限定であり、コンパイラは3.5のものがそのまま動作する。

    VS2008 で VS2005 ソリューションを作成した場合、.NF3.0以降でアセンブリベースで提供された機能は抑制されるが、「コンパイラベースで.NF2.0の機能のみに落とし込まれる」VS2008での新機能についてはコンパイルも通り、動作もしてしまう。

(1)については、テストメンバのマシンで VS2005 環境・VS2008 環境が混在している場合に結果がブレかねない、という恐れがあります。
また、エンドユーザの動作環境を無印 / SP1 どちらの環境で縛るかという話にもつながります。

(2)については、VS2008 環境で作成した VS2005 ソリューションは、VB2005 環境での修正 / 再ビルド / メンテナンスができなくなる可能性があるということです。

もちろん、

  • すべての開発環境 / メンテ環境を一気に VS2008 にアップグレードする
  • .NF2.0 無印 / SP1 の両方で同じテストを通す
  • エンドユーザの動作環境を一斉に SP1 にアップデートする
  • 具体的な不具合が発生するまでは無印 / SP1 の違いを気にしない

などの回避策はあります。

しかし、これらは無視していい事柄だとは私には思えませんし、よって「VS2005 ソリューションを VS2008で作ってもまったく同じ、むしろ VS2008 の方が作業環境として優れている」と単純に言いきってしまっていいとも思えないんです。

知らずにたかをくくるのではなく、知った上で判断していただきたいと思います。

ディベロッパー製品開発統括部 Blog : .NET Framework 3.5 と、.NET Framework 3.0および2.0 の関係

.NET Framework 2.0 Service Pack 1 で修正される問題

.NET Framework 3.0 Service Pack 1 で修正される問題

Microsoft .NET Framework 2.0 Service Pack 1 および Microsoft .NET Framework 3.0 Service Pack 1

※ コンパイラベースのノーチェックについてはCLR/H 2008ローンチの小野修司さんのセッションから。

トラックバック

このエントリーのトラックバックURL:
http://salv.miscnotes.com/mt/mt-tb.cgi/672

コメントを投稿