locked
Silverlight2とSilverlight3の互換性について RRS feed

  • 質問

  • 現在、Silverlight2で開発されたシステムを3つ運用しております。そのどれもがSilverlight2を使用しております。
    このたび、新たなシステムの案件でSilverlightを使用する事になりまして、開発者からSilverlight3を使用したいという要望が出ました。
    Silverlight3を採用するとなるとユーザーのローカルマシンにはSilverlight3をインストールせざるをえないのですが、
    そうすると先に導入しているシステムの動作検証が必要になります。

    少し調べてみると、以下の記事に「Silverlight3は、Silverlight2に対して完全な上位互換性を備え」と書いてありました。
    「マイクロソフト社がSilverlight3を正式公開、3D画像やH.264に対応」
    http://eetimes.jp/news/3127

    ところが、MSDNの以下のサイトでは互換性について記載されていました。
    「既存の JavaScript Silverlight 2 アプリケーションを確実に Silverlight 3 で動作させる」
    http://msdn.microsoft.com/ja-jp/library/cc645049(VS.95).aspx

    開発者としては、無論MSDNの情報に従って現在のシステムの全面チェックをした上で、
    Silverlight3導入の運びになると思いますが、
    皆様はこのような場合、どのように対応されるでしょうか。
    有用な情報をお待ちしています。
    2009年9月10日 2:24

回答

  • Silverlight 3は、Silverlight 2のアプリケーションを実行する機能と、Silverlight 3のアプリケーションを実行する機能を両方持っています。これはバイナリレベルですので、Silverlight 2のアプリケーションの再ビルドは不要ということです。

    Silverlight 2のアプリケーションの*ソースコード*をベースにSilverlight 3アプリケーションに*移植*するに当たっては、セキュリティモデルが厳しくなったことでAPIとしては一緒なのに振る舞いが異なるものがあり、すでに示されているリンクに情報が記載されています。

    Silverlight 2アプリケーションをSilverlight 3で実行する時の面白いメリットとして、再ビルドしなくても、Manifestファイルを書き換えればOut of browserで動作させられることが挙げられます。.xapファイルの中のManifestファイルをOut of browser対応に置き換えて配置すればOKです。
    この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。
    • 回答としてマーク tak_akin 2009年9月24日 2:42
    • 回答としてマークされていない tak_akin 2009年9月24日 2:43
    • 回答としてマーク tak_akin 2009年12月4日 2:08
    2009年9月15日 10:24

すべての返信

  • Silverlight 3は、Silverlight 2のアプリケーションを実行する機能と、Silverlight 3のアプリケーションを実行する機能を両方持っています。これはバイナリレベルですので、Silverlight 2のアプリケーションの再ビルドは不要ということです。

    Silverlight 2のアプリケーションの*ソースコード*をベースにSilverlight 3アプリケーションに*移植*するに当たっては、セキュリティモデルが厳しくなったことでAPIとしては一緒なのに振る舞いが異なるものがあり、すでに示されているリンクに情報が記載されています。

    Silverlight 2アプリケーションをSilverlight 3で実行する時の面白いメリットとして、再ビルドしなくても、Manifestファイルを書き換えればOut of browserで動作させられることが挙げられます。.xapファイルの中のManifestファイルをOut of browser対応に置き換えて配置すればOKです。
    この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。
    • 回答としてマーク tak_akin 2009年9月24日 2:42
    • 回答としてマークされていない tak_akin 2009年9月24日 2:43
    • 回答としてマーク tak_akin 2009年12月4日 2:08
    2009年9月15日 10:24
  • ご回答ありがとうございます。
    Silverlight2でビルドしたバイナリをSilverlight3のランタイム環境で動作させるのと、
    Silverlight2で開発したソースをSilverlight3の環境でコンパイルするのとは意味が違う、
    というお話だと理解しました。
    そして、Silverlight2でビルドしたバイナリをSilverlight3のランタイム環境で動作させる場合は、
    「再ビルド不要」=「動作する」という意味に理解しました。
    しかし、以下のような記述もネットには見られます。
    http://d.hatena.ne.jp/imada/20090909/1252489123


    ちなみに、当方のアプリはSilverlight2のバイナリですがSilverlight3でも動作しました。
    ですが、完全なシステムテストなどの検証は行っていません(そんな予算はありません)。

    また、2で開発したアプリの保守・改修を行う必要がありますが、2の開発環境の入手が
    保証されているかどうかも心配です。先日VS2008のSilverlight開発ツールをインストールした時に、
    自動的にSilverlightが3に置き換わってしまいました。これは別の質問にしようと思います。

    せめて、3の環境で2を動作させる場合はどこがどう違う、
    という事をMSからアナウンスしてくれれば、
    客先にも説明が出来るのですが、このままだと
    「ユーザーを置き去りにしてバージョンアップを続ける使えない技術」
    として認識されてしまいそうです。
    2009年9月24日 2:55