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にはさらにいくつかの制限があります。

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

Source: https://habr.com/ru/post/J88182/


All Articles