どうする? .NET Framework 1.xアプリケーションの今後(1/3 ページ)

.NET Frameworkの登場から6年。その間、世の中はどんどん進み、ITの世界も大きく変わっている。どうやら、かつて構築した.NET Framework 1.xベースのアプリケーションの今後を考える時期に来ているようだ。

» 2008年08月29日 17時00分 公開
[下村恭(ハンズシステム),ITmedia]

.NET Frameworkのこれまでの経緯

 2002年4月にVisual Studio .NET 2002と.NET Framework 1.0が登場してからすでに6年以上が経過した。今や.NET FrameworkはWindowsプラットフォームだけでなく、Silverlight 2によってそのほかのプラットフォーム進出までも果たしている。

 Windowsプラットフォームでの開発にはもはや欠くことのできない.NET Framework。だが、1.0の登場当時、特にVisual Basicを開発言語に用いている技術者にとっては、完全なオブジェクト指向へのパラダイムシフトを必要としたせいか、移行にはそれなりの時間がかかったように記憶している。そのためか、.NET Frameworkが本格的に普及したのは、マイナーバージョンアップとなった.NET Framework 1.1になってからだった。

 1つの転換期となったのは、Visual Studioが2005へとバージョンアップし、同時に.NET Frameworkも2.0に進化したときである。Visual Studio 2005に搭載されたアップグレードウィザードが、Visual Basic 6.0のプロジェクトの変換を効率的に行えるようになっていたため、Visual Basic 6.0からの移行は、.NET Framework 1.xを通さず、直接2.0へと行われたものも少なくない。

 2007年11月にはVisualStudio 2008が登場し、.NET Frameworkのバージョンは3.5となった。2008年8月にはVisualStudio 2008および.NET Framework 3.5 サービスパック(SP)1が登場し、現時点での標準的な開発環境はWindows Server 2008+SQL Server 2008+.NET Framework 3.5SP1+Visual Studio 2008SP1となった。

対応に悩む.NET Framework 1.xベースのアプリケーション

 ここで注目したいのが、.NET Framework 2.0から3.5の間は、ランタイム環境であるCLRのバージョンが変わっていないということだ。開発環境とクラスライブラリが異なるだけで、.NET Framework 2.0アプリケーションと.NET Framework 3.5アプリケーションでは実行環境に違いがないことになる。

 つまり現在では、レガシーに分類されてしまうであろうVisual Basic 6.0以前のアプリケーションと、.NET Framework 1.xベースのアプリケーション、そして.NET Framework 2.0ベースのアプリケーションが存在することになる。

 今、アプリケーション移行(マイグレーション)を考えた場合、必然的に.NET Framework 1.xベースのアプリケーションに注目することになる。なぜなら.NET Framework 2.0ベースのアプリケーションは実質的に最新のアプリケーションと言ってもよいため移行対象にはならないし、Visual Basic 6.0以前のアプリケーションについては移行するしないで悩むレベルでなく、捨てるか、移行するか、新規開発かを「選択しなければならない」時期は過ぎて、すでに判断されているはずだからだ。

 .NET Framework 1.xベースのアプリケーションも今、捨てるか、移行するか、新規開発かの選択を迫られている。とはいえ、.NET以前からの移行に比べ、Visual Studio 2008への移行は楽なので、新規開発という選択肢を用意する必要はないかもしれない。実際は、移行するかしないかについて判断することになるだろう。

 ところで、.NET Framework環境の利点の1つと言われているものに、サイドバイサイド技術というものがあった。これは、アプリケーションのランタイム環境や実行時に必要とするDLLを実行ファイル単位に用意することで、.NET Framework 1.1の実行環境と.NET Framework 2.0の実行環境が同じマシンに同居でき、しかもお互いに干渉しないようにできるということだ。

 それなら、.NET Framework 1.xアプリケーションをわざわざマイグレーションしなくても済みそうなところだ。そのままサイドバイサイドで実行させ続ければよいからだ。

 ここで問題となるのが、マイクロソフト製品のサポートライフサイクルだ。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.