XP SP2の悪夢再来? .NET Framework 2.0に非互換問題(1/2 ページ)

Windows XP SP2へのアップグレード時に起きたようなアプリケーションの互換性問題が、.NET Framework 2.0への移行でも起きるようだ。Microsoftは互換性テストへの協力を求めている。

» 2005年05月27日 18時15分 公開
[Darryl K. Taft,eWEEK]
eWEEK

 Microsoftは、現行版.NET FrameworkとVisual Studio 2005の次期版の互換性をチェックするのを手伝ってくれる数人の善良な市民、そしてアプリケーションを探している。

 同社はリクルートモードに入っており、手持ちの.NETアプリケーションと次期版.NET Frameworkの互換性テストをしたいと言ってくれる独立系ソフトベンダー、企業顧客、開発者、エンドユーザーなどを探している。

 問題になっているのは、アプリケーションに障害が起きることだ。Microsoftは、.NET Framework 1.1向けに書かれたアプリケーションを.NET Framework 2.0で走らせたときに障害が起きるケースを確認した。

 この問題は、先月のVisual Studio 2005(「Whidbey」とも呼ばれる)のβ2リリースにより浮上した。このβ2では.NET Framework 2.0が導入されている。

 Microsoftは社内テストでこの下位非互換の変更に気づき、5月24日にアプリケーションの障害の一部原因に対処するためのホワイトペーパーを掲載した。しかし、同社はテストするアプリケーションをさらに探しているところだ。同社はテストする.NET Framework 1.1アプリケーションを募集しており、デベロッパーに自社のアプリケーションをnetfxcmp@microsoft.comあてに電子メールで提出するよう求めている。

 同社は、下位非互換変更を「特定のアプリケーションと開発シナリオに異なる動作をさせる.NET Framework(ランタイムの下位非互換変更)かVisual Studio(設計、コンパイル、プロジェクトアップグレード)のいずれかにおける変更」と定義している。

 そこで同社はデベロッパーに、Whidbeyのβ2期間中に自社の.NET Framework 1.1アプリケーションをバージョン2.0でテストするよう勧めている。Whidbeyの正式版は今年後半にリリースが予定されている。

 Microsoft関係者によると、.NET Framework 1.1上で構築されたスタンドアロンのWindowsクライアントまたはWebアプリケーションは、たとえ.NET Framework 2.0がインストールされているマシンでも、自動的にバージョン1.1で実行される。一方Microsoft OfficeやInternet Explorer(IE)などのネイティブアプリケーションのマネージドアドインは、自動的にコンピュータにインストールされている最新版の.NET Frameworkで実行される。

 ただし、この互換問題に関するMicrosoftのホワイトペーパーには、「.NET Framework 1.1アプリケーションとの互換性に関しては、説明されている一連の変更を別にして、これらアプリケーションが.NET Framework 2.0でスムーズに動作することを目指している」と記されている。しかし「β2ではこの目標を達成できず、アプリケーション問題に関するフィードバックを求めている。この問題は.NET Framework 2.0正式リリース前には対処できる」という。

 Microsoftの関係者は、社内のアプリケーション互換性テストで、テスターが10件弱の下位非互換変更を発見したとしている。その中にはAPIとビヘイビアに関するものも含まれる。APIの下位非互換変更はセキュリティ上の懸念から行われたもので、ビヘイビアの変更は浮動小数点演算の精度における変更などの要因で行われた可能性があるという。

 実際、.NET Framework 2.0の下位非互換変更は標準への準拠、顧客のフィードバック、正確性に関連しているとMicrosoftは説明する。

 「互換性は常にMicrosoftにとって重要だ」とVisual Studio事業開発マネジャー、バラク・コーエン氏。「Whidbeyの変更は顧客の要求に対する直接の対応だ。われわれは顧客にとって製品が最高に機能するようにするという願いを実現するために行動している」

 Visual Basic .NET担当プロダクトマネジャー、ジェイ・ロクシー氏は、デフォルトでは、.NET Frameworkを使って構築されたアプリケーションは、構築に使われたバージョンのFrameworkがコンピュータにインストールされていれば、そのバージョンで動作すると説明する。.NET Framework 1.1ベースのアプリケーションがバージョン2.0によってロードされ、下位非互換の変更にぶつかった場合は、「そのアプリケーションは機能しなくなるかもしれない」とMicrosoftのホワイトペーパーには記されている。

 しかし、デベロッパーは.NET Framework 1.1と2.0を同じマシンで走らせ、アプリケーションがそれぞれ対応するFrameworkのバージョンで走るようにできるとロクシー氏。

 「デフォルトでは、.NET Frameworkでアプリケーションを構築すると、その土台となったバージョンがデフォルトになる。2.0がマシンに載っていて、アプリケーションが1.1で書かれている場合、デフォルトではそのアプリケーションは1.1上で走ろうとする」(同氏)

 さらに、Microsoftのホワイトペーパーには次のように書かれている。「アプリケーションが.NET Framework 1.0、1.1、2.0上で起動すると、CLR(Common Language Runtime)はそのアプリケーションに記録された.NET Frameworkのバージョンを調べ、そのアプリケーションのコンパイルに使われたバージョンで走らせようとする。そのバージョンがマシンにインストールされていない場合、CLRは最新版の.NET FrameworkとCLR上で起動しようとする。例えば、.NET Framework 1.0でコンパイルしたアプリケーションをバージョン1.1しか搭載されていないマシン上で走らせると、ロールフォワードされて1.1で実行される。同様に、バージョン1.1でコンパイルしたアプリケーションをバージョン2.0しか載っていないマシンで走らせると、ロールフォワードされて2.0で実行される」

       1|2 次のページへ

Editorial items that were originally published in the U.S. Edition of “eWEEK” are the copyrighted property of Ziff Davis Enterprise Inc. Copyright (c) 2011. All Rights Reserved.

注目のテーマ