Successfully reported this slideshow.

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

2

Share

Loading in …3
×
1 of 17
1 of 17

More Related Content

Related Audiobooks

Free with a 14 day trial from Scribd

See all

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

  1. 1. Silverlight 4 → 5 における不具合の状況 2012/3/31 若林悠 @wakabayashiyu http://www.project0884.com/
  2. 2. 本セッションでは、クライアント環境にインストールされたSilverlightの バージョンが4 → 5になることで、Silverlightの持つ不具合がどのように 変わるのかを見ていきます。 ※注 本セッションで発表した現象は、複数台の端末で確認を行っていますが、それ 以上の確認(各環境の設定等に依存するかどうか etc.)はできておりません。 そのため、あくまで事例の1つとして捉えていただきたいと思います。
  3. 3. Agenda Silverlight 4 → 5 で • 解消された不具合 • 解消されていない不具合 • 新たに発生した不具合
  4. 4. Silverlight 4 → 5 で解消された不具合
  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. 6. Silverlight 4 → 5 で解消された不具合 2 ① • Mac OS X Lion(10.7)上 • Silverlight 4 がインストールされている 上記の条件下で特定の全角記号( ☆ ★◇◆※ etc.)を表示させようとすると、 アプリが落ちてしまう。 ※以下のSilverlightのバージョンで確認 実行環境 : 4.1.10111.0 サンプルアプリ : 4
  7. 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. 8. Silverlight 4 → 5 で解消されていない不具合
  9. 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. 10. Silverlight 4 → 5 で解消されていない不具合 1 ② 回避方法 引数の StringComparison を省略せずに 「StringComparison.Ordinal」 「StringComparison.OrdinalIgnoreCase」 のいずれかを指定すること。 ※ただし、Silverlight「3」で作成されたアプリケーションの場合、 StringComparison を省略しても処理スピードの低下は起きない。 (デフォルトが「StringComparison.Ordinal」 になっている模様) ※ 「IndexOf」「LastIndexOf」メソッドで、シークする文字に string ではなく char を指定する場合は、処理スピードの低下は起きない。
  11. 11. Silverlight 4 → 5 で解消されていない不具合 2 ① • ブラウザー外実行 (Out -of-Browser) • 「ブラウザー外実行の設定」でウィンドウスタイルを「罫線なし」か「罫線なし角丸」に設定 したSilverlightアプリを使い、 • Windows上 (プロジェクトのプロパティ) • マルチディスプレイ環境 • セカンダリモニタ上 上記の条件下で、ウィンドウの最大化 を実行すると、通常であればセカンダリモニタいっぱいにウィンドウが広がるべきところで、 不具合が起きる。 ※Silverlight 4 / 5環境で、不具合の内容は異なる(詳細後述)
  12. 12. Silverlight 4 → 5 で解消されていない不具合 2 ② Silverlight 4 環境の場合 セカンダリモニタの解像度の幅が、プライマリモニタの幅より大きい場合、 ウィンドウがセカンダリからはみ出し、プライマリにかかってしまう。 (ウィンドウ最大化を実行) (サンプルアプリ) セカンダリモニタ プライマリモニタ ※以下のSilverlightのバージョンで確認 実行環境 : 4.1.10111.0 サンプルアプリ : 4
  13. 13. Silverlight 4 → 5 で解消されていない不具合 2 ③ Silverlight 5 環境の場合 ウィンドウが画面外に飛んでしまう。 (ウィンドウ最大化を実行) (サンプルアプリ) ※以下のSilverlightのバージョンで確認 実行環境 : 5.0.61118.0 サンプルアプリ : 4 / 5
  14. 14. Silverlight 4 → 5 で新たに発生した不具合
  15. 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. 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
  17. 17. ありがとうございました

×