SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
Silverlight 4 → 5
における不具合の状況



                                  2012/3/31
                                        若林悠
                               @wakabayashiyu
                    http://www.project0884.com/
本セッションでは、クライアント環境にインストールされたSilverlightの
バージョンが4 → 5になることで、Silverlightの持つ不具合がどのように
変わるのかを見ていきます。


※注
本セッションで発表した現象は、複数台の端末で確認を行っていますが、それ
以上の確認(各環境の設定等に依存するかどうか etc.)はできておりません。
そのため、あくまで事例の1つとして捉えていただきたいと思います。
Agenda


     Silverlight 4 → 5 で

     • 解消された不具合
     • 解消されていない不具合
     • 新たに発生した不具合
Silverlight 4 → 5 で解消された不具合
Silverlight 4 → 5 で解消された不具合 1

•   Mac OS X Lion(10.7)上
•   Silverlight 4 がインストールされている
上記の条件下で日本語や中国語の表示をすることができない。




        ※以下のSilverlightのバージョンで確認
        実行環境 : 4.1.10111.0         ※以下のSilverlightのバージョンで確認
        サンプルアプリ : 4                実行環境 : 5.0.61118.0
                                   サンプルアプリ : 4
Silverlight 4 → 5 で解消された不具合 2 ①

•   Mac OS X Lion(10.7)上
•   Silverlight 4 がインストールされている
上記の条件下で特定の全角記号( ☆ ★◇◆※ etc.)を表示させようとすると、
アプリが落ちてしまう。




                                 ※以下のSilverlightのバージョンで確認
                                 実行環境 : 4.1.10111.0
                                 サンプルアプリ : 4
Silverlight 4 → 5 で解消された不具合 2 ②

内部的には以下のようなエラーが起きている。


 MS.Internal.WrappedException: [Arg_COMException]
 引数:
 デバッグ用のリソース文字列は利用できません。キーや引数に関する情報が問題の診断に役立つ場合があります。
 http://go.microsoft.com/fwlink/?linkid=106663&Version=4.1.10111.0&File=mscorlib.dll&Key=Arg_COMException を参照
 してください。 ---> System.Exception: [Arg_COMException]
 引数:
 デバッグ用のリソース文字列は利用できません。キーや引数に関する情報が問題の診断に役立つ場合があります。
 http://go.microsoft.com/fwlink/?linkid=106663&Version=4.1.10111.0&File=mscorlib.dll&Key=Arg_COMException を参照
 してください。
  場所 MS.Internal.XcpImports.CheckHResult(UInt32 hr)
  場所 MS.Internal.XcpImports.FrameworkElement_MeasureOverride(FrameworkElement element, Size availableSize)
  場所 System.Windows.FrameworkElement.MeasureOverride(Size availableSize)
  場所 System.Windows.FrameworkElement.MeasureOverride(IntPtr nativeTarget, Single inWidth, Single inHeight,
 Single& outWidth, Single& outHeight)
  --- 内部例外スタック トレースの終わり ---
Silverlight 4 → 5 で解消されていない不具合
Silverlight 4 → 5 で解消されていない不具合 1 ①

Stringクラスの
「IndexOf」「LastIndexOf」「StartsWith」「EndsWith」各メソッドの処理スピードが
異常に低下する場合がある。


以下の条件下で発生する。
•   Mac OS X 上 または Windows XP 上(Macの方が低下が顕著)
•   対象の文字数が多い
    (特に対象の文字列にマルチバイト文字が含まれる場合、低下が顕著になる)
•   引数の StringComparison(使用するカルチャ、大文字小文字の区別、並べ替え規則)を省略し
    た場合。あるいは値に
    「StringComparison .Ordinal」「StringComparison .OrdinalIgnoreCase」
    以外を指定した場合
                                                         ※以下のSilverlightのバージョンで確認
                                                         実行環境 : 4.1.10111.0
                                                         サンプルアプリ : 4 / 5
Silverlight 4 → 5 で解消されていない不具合 1 ②

    回避方法

    引数の StringComparison を省略せずに
    「StringComparison.Ordinal」
    「StringComparison.OrdinalIgnoreCase」
    のいずれかを指定すること。


    ※ただし、Silverlight「3」で作成されたアプリケーションの場合、
    StringComparison を省略しても処理スピードの低下は起きない。
    (デフォルトが「StringComparison.Ordinal」 になっている模様)
     ※ 「IndexOf」「LastIndexOf」メソッドで、シークする文字に
    string ではなく char を指定する場合は、処理スピードの低下は起きない。
Silverlight 4 → 5 で解消されていない不具合 2 ①

•   ブラウザー外実行 (Out -of-Browser)
•   「ブラウザー外実行の設定」でウィンドウスタイルを「罫線なし」か「罫線なし角丸」に設定
したSilverlightアプリを使い、




•   Windows上
                                         (プロジェクトのプロパティ)
•   マルチディスプレイ環境
•   セカンダリモニタ上
上記の条件下で、ウィンドウの最大化



を実行すると、通常であればセカンダリモニタいっぱいにウィンドウが広がるべきところで、
不具合が起きる。

※Silverlight 4 / 5環境で、不具合の内容は異なる(詳細後述)
Silverlight 4 → 5 で解消されていない不具合 2 ②

Silverlight 4 環境の場合

セカンダリモニタの解像度の幅が、プライマリモニタの幅より大きい場合、
ウィンドウがセカンダリからはみ出し、プライマリにかかってしまう。


                            (ウィンドウ最大化を実行)



            (サンプルアプリ)




                                セカンダリモニタ    プライマリモニタ




 ※以下のSilverlightのバージョンで確認
 実行環境 : 4.1.10111.0
 サンプルアプリ : 4
Silverlight 4 → 5 で解消されていない不具合 2 ③

Silverlight 5 環境の場合
ウィンドウが画面外に飛んでしまう。


                           (ウィンドウ最大化を実行)




             (サンプルアプリ)




※以下のSilverlightのバージョンで確認
実行環境 : 5.0.61118.0
サンプルアプリ : 4 / 5
Silverlight 4 → 5 で新たに発生した不具合
Silverlight 4 → 5 で新たに発生した不具合 1 ①

•   Mac OS X 上
•   Silverlight 5 がインストールされている環境
で、「System.Windows.Controls.WebBrowser」コントロールを持つ
ブラウザー外実行 (Out -of-Browser)アプリケーションを実行 ※「SL App A」とする


WebBrowserコントロール内に表示させるWebサイト上で、
Silverlightアプリケーションを実行 ※「SL App B」とする



                 (SL App A)



       (WebBrowserコントロール)

                 (SL App B)
Silverlight 4 → 5 で新たに発生した不具合 1 ②

「SL App B」でHTMLブリッジの、マネージコードからのJavaScript呼び出しができない。
例えば、「SL App B」で
•    HtmlPage.Window.GetProperty
•    HtmlPage.Window.Invoke
•    HtmlPage.Document.GetElementById
•    HtmlPage.Document.Cookies
などを実行するとエラーになる。
                                        (「SL App B」で ”HtmlPage.Document.Cookies” を実行)



        (SL App B)




    ※以下のSilverlightのバージョンで確認
    実行環境 : 5.0.61118.0
    サンプルアプリ : 4 / 5
ありがとうございました

Weitere ähnliche Inhalte

Ähnlich wie Silverlight 4 → 5における不具合の状況

Java fx勉強会lt 第8回
Java fx勉強会lt 第8回Java fx勉強会lt 第8回
Java fx勉強会lt 第8回
Taiji Miyabe
 
Silverlightアプリをhtml5で表示してみたよ!
Silverlightアプリをhtml5で表示してみたよ!Silverlightアプリをhtml5で表示してみたよ!
Silverlightアプリをhtml5で表示してみたよ!
満徳 関
 
Silverlight 5でぶり返すWPF不要論
Silverlight 5でぶり返すWPF不要論Silverlight 5でぶり返すWPF不要論
Silverlight 5でぶり返すWPF不要論
Yuya Yamaki
 
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Yuya Yamaki
 

Ähnlich wie Silverlight 4 → 5における不具合の状況 (20)

Silverlightの今
Silverlightの今Silverlightの今
Silverlightの今
 
スマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブルスマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブル
 
Java fx勉強会lt 第8回
Java fx勉強会lt 第8回Java fx勉強会lt 第8回
Java fx勉強会lt 第8回
 
20210515 of4 wi&paraview 5.9.0_motorbike
20210515 of4 wi&paraview 5.9.0_motorbike20210515 of4 wi&paraview 5.9.0_motorbike
20210515 of4 wi&paraview 5.9.0_motorbike
 
Silverlightアプリをhtml5で表示してみたよ!
Silverlightアプリをhtml5で表示してみたよ!Silverlightアプリをhtml5で表示してみたよ!
Silverlightアプリをhtml5で表示してみたよ!
 
Silverlight 5でぶり返すWPF不要論
Silverlight 5でぶり返すWPF不要論Silverlight 5でぶり返すWPF不要論
Silverlight 5でぶり返すWPF不要論
 
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
 
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
 
AWS to Salesforce 活用例 ~SSL Termination試してみました~
AWS to Salesforce 活用例 ~SSL Termination試してみました~AWS to Salesforce 活用例 ~SSL Termination試してみました~
AWS to Salesforce 活用例 ~SSL Termination試してみました~
 
20060419
2006041920060419
20060419
 
Silverlight+COMにチャレンジ
Silverlight+COMにチャレンジSilverlight+COMにチャレンジ
Silverlight+COMにチャレンジ
 
スマートフォンブラウザ不具合特集
スマートフォンブラウザ不具合特集スマートフォンブラウザ不具合特集
スマートフォンブラウザ不具合特集
 
独りガラパゴス開発
独りガラパゴス開発独りガラパゴス開発
独りガラパゴス開発
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
 
OSC福岡 20111203
OSC福岡 20111203OSC福岡 20111203
OSC福岡 20111203
 
tech talk about JS #0
tech talk about JS #0tech talk about JS #0
tech talk about JS #0
 
活動報告9 laravel5入門-
活動報告9  laravel5入門-活動報告9  laravel5入門-
活動報告9 laravel5入門-
 
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Next
 
環境構築資料
環境構築資料環境構築資料
環境構築資料
 
第1回concrete5初心者向け勉強会 環境構築
第1回concrete5初心者向け勉強会 環境構築 第1回concrete5初心者向け勉強会 環境構築
第1回concrete5初心者向け勉強会 環境構築
 

Silverlight 4 → 5における不具合の状況

  • 1. Silverlight 4 → 5 における不具合の状況 2012/3/31 若林悠 @wakabayashiyu http://www.project0884.com/
  • 3. Agenda Silverlight 4 → 5 で • 解消された不具合 • 解消されていない不具合 • 新たに発生した不具合
  • 4. Silverlight 4 → 5 で解消された不具合
  • 5. Silverlight 4 → 5 で解消された不具合 1 • Mac OS X Lion(10.7)上 • Silverlight 4 がインストールされている 上記の条件下で日本語や中国語の表示をすることができない。 ※以下のSilverlightのバージョンで確認 実行環境 : 4.1.10111.0 ※以下のSilverlightのバージョンで確認 サンプルアプリ : 4 実行環境 : 5.0.61118.0 サンプルアプリ : 4
  • 6. Silverlight 4 → 5 で解消された不具合 2 ① • Mac OS X Lion(10.7)上 • Silverlight 4 がインストールされている 上記の条件下で特定の全角記号( ☆ ★◇◆※ etc.)を表示させようとすると、 アプリが落ちてしまう。 ※以下のSilverlightのバージョンで確認 実行環境 : 4.1.10111.0 サンプルアプリ : 4
  • 7. Silverlight 4 → 5 で解消された不具合 2 ② 内部的には以下のようなエラーが起きている。 MS.Internal.WrappedException: [Arg_COMException] 引数: デバッグ用のリソース文字列は利用できません。キーや引数に関する情報が問題の診断に役立つ場合があります。 http://go.microsoft.com/fwlink/?linkid=106663&Version=4.1.10111.0&File=mscorlib.dll&Key=Arg_COMException を参照 してください。 ---> System.Exception: [Arg_COMException] 引数: デバッグ用のリソース文字列は利用できません。キーや引数に関する情報が問題の診断に役立つ場合があります。 http://go.microsoft.com/fwlink/?linkid=106663&Version=4.1.10111.0&File=mscorlib.dll&Key=Arg_COMException を参照 してください。 場所 MS.Internal.XcpImports.CheckHResult(UInt32 hr) 場所 MS.Internal.XcpImports.FrameworkElement_MeasureOverride(FrameworkElement element, Size availableSize) 場所 System.Windows.FrameworkElement.MeasureOverride(Size availableSize) 場所 System.Windows.FrameworkElement.MeasureOverride(IntPtr nativeTarget, Single inWidth, Single inHeight, Single& outWidth, Single& outHeight) --- 内部例外スタック トレースの終わり ---
  • 8. Silverlight 4 → 5 で解消されていない不具合
  • 9. Silverlight 4 → 5 で解消されていない不具合 1 ① Stringクラスの 「IndexOf」「LastIndexOf」「StartsWith」「EndsWith」各メソッドの処理スピードが 異常に低下する場合がある。 以下の条件下で発生する。 • Mac OS X 上 または Windows XP 上(Macの方が低下が顕著) • 対象の文字数が多い (特に対象の文字列にマルチバイト文字が含まれる場合、低下が顕著になる) • 引数の StringComparison(使用するカルチャ、大文字小文字の区別、並べ替え規則)を省略し た場合。あるいは値に 「StringComparison .Ordinal」「StringComparison .OrdinalIgnoreCase」 以外を指定した場合 ※以下のSilverlightのバージョンで確認 実行環境 : 4.1.10111.0 サンプルアプリ : 4 / 5
  • 10. Silverlight 4 → 5 で解消されていない不具合 1 ② 回避方法 引数の StringComparison を省略せずに 「StringComparison.Ordinal」 「StringComparison.OrdinalIgnoreCase」 のいずれかを指定すること。 ※ただし、Silverlight「3」で作成されたアプリケーションの場合、 StringComparison を省略しても処理スピードの低下は起きない。 (デフォルトが「StringComparison.Ordinal」 になっている模様) ※ 「IndexOf」「LastIndexOf」メソッドで、シークする文字に string ではなく char を指定する場合は、処理スピードの低下は起きない。
  • 11. Silverlight 4 → 5 で解消されていない不具合 2 ① • ブラウザー外実行 (Out -of-Browser) • 「ブラウザー外実行の設定」でウィンドウスタイルを「罫線なし」か「罫線なし角丸」に設定 したSilverlightアプリを使い、 • Windows上 (プロジェクトのプロパティ) • マルチディスプレイ環境 • セカンダリモニタ上 上記の条件下で、ウィンドウの最大化 を実行すると、通常であればセカンダリモニタいっぱいにウィンドウが広がるべきところで、 不具合が起きる。 ※Silverlight 4 / 5環境で、不具合の内容は異なる(詳細後述)
  • 12. Silverlight 4 → 5 で解消されていない不具合 2 ② Silverlight 4 環境の場合 セカンダリモニタの解像度の幅が、プライマリモニタの幅より大きい場合、 ウィンドウがセカンダリからはみ出し、プライマリにかかってしまう。 (ウィンドウ最大化を実行) (サンプルアプリ) セカンダリモニタ プライマリモニタ ※以下のSilverlightのバージョンで確認 実行環境 : 4.1.10111.0 サンプルアプリ : 4
  • 13. Silverlight 4 → 5 で解消されていない不具合 2 ③ Silverlight 5 環境の場合 ウィンドウが画面外に飛んでしまう。 (ウィンドウ最大化を実行) (サンプルアプリ) ※以下のSilverlightのバージョンで確認 実行環境 : 5.0.61118.0 サンプルアプリ : 4 / 5
  • 14. Silverlight 4 → 5 で新たに発生した不具合
  • 15. Silverlight 4 → 5 で新たに発生した不具合 1 ① • Mac OS X 上 • Silverlight 5 がインストールされている環境 で、「System.Windows.Controls.WebBrowser」コントロールを持つ ブラウザー外実行 (Out -of-Browser)アプリケーションを実行 ※「SL App A」とする WebBrowserコントロール内に表示させるWebサイト上で、 Silverlightアプリケーションを実行 ※「SL App B」とする (SL App A) (WebBrowserコントロール) (SL App B)
  • 16. Silverlight 4 → 5 で新たに発生した不具合 1 ② 「SL App B」でHTMLブリッジの、マネージコードからのJavaScript呼び出しができない。 例えば、「SL App B」で • HtmlPage.Window.GetProperty • HtmlPage.Window.Invoke • HtmlPage.Document.GetElementById • HtmlPage.Document.Cookies などを実行するとエラーになる。 (「SL App B」で ”HtmlPage.Document.Cookies” を実行) (SL App B) ※以下のSilverlightのバージョンで確認 実行環境 : 5.0.61118.0 サンプルアプリ : 4 / 5