Windows上のSilverlightとWindows Phoneの違い

画像 このトピックでは、Windows上のSilverlight 3とWindows Phone上のSilverlightの実装の違いについて説明します。

SilverlightがWindows Phoneサポートするものをよく理解し、 サポートされていない型とメンバーに関する情報をより詳しく知ることをお勧めします。



コントロール

サポートされているコントロールのリストを表示するには、 別の記事をご覧ください



メディア

この場合も、 携帯電話メディアのソースを参照することをお勧めします。



ディープズーム

Silverlight for Windows Phoneは、可能であれば常にMultiScaleImageのハードウェアアクセラレーションを使用します。 その結果、 CacheModeプロパティへの変更無視されます。



代表者

非同期デリゲート、特にBeginInvokeおよびEndInvokeメソッドは、.NET Compact Frameworkではサポートされていません。 デリゲートを非同期で呼び出そうとすると、アプリケーションはNotSupportedExceptionではなくTargetInvocationExceptionをスローします。



ファイナライザー

管理制限区域 (CER)は、Silverlight for Windows Phoneではサポートされていません。



フォント

利用可能なすべてのフォントにはROMが付属しています。 Silverlightにはフォントはインストールされていません。 VerdanaやSegoeなどのWebセーフフォントが推奨されます。 Visual Studio 2010 Express for Windows Phone CTPには、Windows Phone 7シリーズでサポートされているフォントを表示するフィルターが含まれています。 デバイス上に存在しないフォントを使用する場合は、アプリケーションで提供することをお勧めします。 TrueTypeフォントも推奨されます。 埋め込みフォントは、マネージコードでランタイムをサポートするための埋め込みリソースとしてDLLまたはXAPに追加する必要があります。



グラフィックス

グラフィック、アニメーション、およびぼかしドロップシャドウなどの効果がサポートされています。 Silverlight for Windows Phoneのすべてのエフェクトはハードウェアアクセラレーションを使用できるため、 UIElementCacheModeBitmapCacheに設定する必要があります。



ネイティブピクセルシェーダーはサポートされていないため、 PixelShaderもサポートされていません。 より詳細なグラフィックアニメーション情報



宿泊施設

Windows Phone上のすべてのSilverlightアプリケーションはクライアントデバイスに保存され、ブラウザー内で実行されません 。 ブラウザー内の配置に基づくSilverlightのすべての機能は使用できません。 これには、HTML DOMブリッジ、JavaScriptを使用する機能、およびオブジェクトプラグインへのリンクが含まれます



入る

コントロールは、指でタッチ、押し、「運転」などのさまざまなジェスチャーをサポートします。 マウスイベントを使用して、タップ、ダブルタップ、タップ、ホールドの簡単な動作を処理できます。



制御イベントを使用して、ユーザー入力に応答することもできます。 コントロールイベントはマルチタッチ入力をサポートし、 UIElementオブジェクトの移動とスケーリングに使用できます。 さらに、 「方法:操作イベントを処理する」も参照してください。



分離ストレージ

分離ストレージにより、アプリケーションは仮想ファイルシステムにデータを格納できます。 データは他のシステムコンポーネントから完全に隔離されます。 これにより、データを保存する別のアプリケーションのコンポーネントによる不正アクセスとデータ破損を防ぎます。



Windows Phoneのサンドボックスストレージは、Silverlightアプリケーションの追加のストレージクォータクォータを提供しません。



Windows Phoneのアプリケーションのサイズは、最大2 GBに達する可能性があります。



プラットフォーム実装の違いは次のとおりです。



関連する記事で分離ストレージの詳細を読むことができます: 分離ストレージSystem.IO.IsolatedStorage



LINQ

ネイティブデータソースのLINQプロバイダーは、Silverlight for Windows Phoneではサポートされていません。



ローカリゼーション

ローカライズをサポートする一部のタイプとメンバーは、多少異なる動作をします。



多感覚および制御イベント

マルチテンソルと操作イベントを操作するために、Windows PhoneのSilverlightは、Silverlight 3にはないタイプ、メンバー、およびイベントをサポートします。詳細については、「 方法:操作イベントを処理する」を参照してください。



ナビゲーション

Windows Phone上のSilverlightは、Windows以外のページナビゲーションモデルを提供します。 フレームクラスとページクラスはサポートされていません。詳細については、トピックフレームとページナビゲーションを参照してください。



ネットワーク

ネットワークサポートには、Windows Communication Foundation(WCF)、 HttpWebRequest、およびWebClientが含まれます



ネイティブ接続とソケットはサポートされていません。 ChannelFactory(TChannel)はサポートされておらず、委任状を動的に生成できないためです。 コンパイル時に委任状を生成するには、コンソールでslsvcutil.exeを使用する必要があります。



Visual Studioの[サービス参照の追加]オプションは、コンパイル時に有効にできるプロキシも生成します。 このオプションは、Community Technology PreviewバージョンのWindows Phoneプロジェクトでは使用できません。



XmlSerializerFormatAttributeクラスのStyleプロパティはサポートされていません。



これはサポートされていない機能のすべてではありません。詳細についてはこちらに記載されています



性能

デバイスは、デスクトップコンピューターよりもプロセッサー能力、ストレージ、およびメモリーが少なくなります。 また、バッテリー寿命も限られています。 特にアニメーションとメディアを使用するアプリケーションでは、これらの事実に基づいてアプリケーションを設計する必要があります。 一部のデバイスは、複数のStoryboardオブジェクトを使用する場合、または多数のXAML要素を操作する場合に速度が低下する可能性があります。



複雑な変換を適用しながらXAMLコードを最適化するために、Windows PhoneのSilverlightはCompositeTransformをサポートします。



反射

リフレクションの実装は、デスクトップの実装とは異なります。



正規表現

Silverlight for Windows Phoneでは、Regexクラスの実装はキャッシュをサポートしないため、CacheSizeプロパティは常にゼロを返します。



ランタイム

Windows Phone 7シリーズのSilverlightは、.NET Compact Frameworkで実行されます。



安全性

X509証明書との違いは、X509Certificateの作成時に間違ったフラグを渡すと、 ArgumentExceptionの代わりにNotSupportedExceptionがスローされることです。



一口

TextBoxコントロールにソフトウェア入力パネル(SIP)を使用できるようにするために、Silverlight for Windows Phoneは、Silverlight 3にはないいくつかのタイプとメンバーをサポートしています。詳細については、「 方法:TextBoxでSIPレイアウトを指定する」を参照してください

Windows Phone用のSilverlight拡張機能



Silverlight for Windows Phoneの拡張機能

Windows Phoneの開発に固有の追加機能については、Windows Phoneのクラスライブラリリファレンスを再度お読みください。 この機能はすべて、Windows Phone開発者ツールに含まれています。



テキストエンコーディング

エンコーダーEncoding.Unicodeは、System.Text.UnicodeEncodingおよびUnicodeEncoderに名前が変更されました。

Decoder Encoding.Unicodeの名前がSystem.Text.UnicodeEncodingおよびUnicodeDecoderに変更されました



ストリーム

Silverlight 3とは異なり、Silverlight for Windows Phoneはアニメーションを2つの独立したストリームに分割して、デバイスのパフォーマンスを向上させます。

ThreadStaticAttributeは 、.NET Compact Frameworkでは使用されません。



URI

HttpUtilityクラスはSystem.Net名前空間にあります。 Windowsでは、このクラスはSystem.Windows.Browser名前空間にありますが 、Windows Phoneプラットフォームではサポートされていません。



Uri.LocalPathは、スラッシュ(/)をバックスラッシュ(\)に変換しません。 ファイル(ファイル://)のURIは無効であるためです。 パスは相対パスとして返されます。



URIインスタンスのOriginalStringプロパティは、URLに渡す前にスペースを切り捨てます。



ビジュアルベーシック

.NET Compact Frameworkでは、Visual BasicのLINQクエリの構文は、演算子がオプションであるSelect句をサポートしていません。 選択条件に標準クエリ結果を変更しないパラメーターが含まれていない場合、選択条件を削除する必要があります。



このリリースでは、Visual Basicはサポートされていません。

実行時のVisual Basicは、XNamespaceおよびStringオブジェクトへの参照との同等性を検証できません。



Xaml変換

複数の変換を適用するときにXAMLを最適化するために、Windows PhoneのSilverlightはCompositeTransformをサポートします。



XML

.NET Compact FrameworkはDocument Type Definition(DTD)をサポートしていないため、 解析はサポートされていません。 アプリケーションは、XMLでDTD文字列を検出するとNotSupportedExeptionをスローします。 DTDを解析するには、アプリケーションで認識エンジンを実装するか、XMLスキーマを使用する必要があります。



よく使用されるDTDは、通常XmlPreloadedResolverを介して実行されます 。 このタイプは、Silverlight 3 SDKに含まれていますが、Community Technology Previewバージョンではサポートされていません。

次の違いもあります。



その他の違い

APIにはさらにいくつかの制限があります。



例外

一部のメソッドは、プラットフォームに応じて異なる例外をスローします。




All Articles