1. ホーム
  2. wpf

[解決済み] WPFとSilverlightの比較[重複]。

2022-07-22 04:33:21

質問

重複の可能性があります。

WPFとSilverlightのアプリケーションの違いは何ですか?

WPFとSilverlightの正確な違いは何ですか?

どのように解決するのですか?

それは非常に幅広い質問ですね。 私の会社は最近、2 つのテクノロジーの違いを概説するホワイトペーパーを書きました。 残念ながら、まだ公開されていませんので、リンクを貼っておきます。

EDIT: 約束通り、Codeplex のホワイトペーパーへのリンクはこちらです。 へのリンクです。



http://wpfslguidance.codeplex.com/

とはいえ、まとめてみる。

  1. WPF は、完全な .Net Framework にアクセスできる、厚みのある Windows クライアント プラットフォームです。 Silverlight はブラウザベースのテクノロジで、.Net Framework のサブセット (CoreCLR と呼ばれる) にアクセスできます。 そのため、フレームワーク内の一見日常的なメソッドやオブジェクトを使用して、違いに気づくことでしょう。 たとえば、StringクラスのSplit()メソッドは、Silverlightでは3つのオーバーライドがありますが、.Net Frameworkでは6つあります。 このような違いをよく目にすることでしょう。

  2. WPF 内では、すべての視覚的に表示される要素は Visual ベース クラスに由来します。 Silverlight 内では、それらはそうではなく、代わりに Control から派生します。 しかし、両方のテクノロジーは、最終的に階層上の DependencyObject クラスから派生します。

  3. WPF は現在、Silverlight よりも多くのユーザー コントロールを出荷または利用可能です。ただし、この違いは Silverlight Toolkit および近日リリース予定の Silverlight 3 によって緩和されています。

  4. WPF は 3 種類のルーティングされたイベント (直接、バブリング、およびトンネリング) をサポートします。Silverlight は direct と bubbling のみサポートします。

  5. かなり多くのデータバインディングの違いがありますが、それは Silverlight の次のバージョンでいくらか緩和されるでしょう。 現在、Silverlight はバインディング モード、OneWayToSource、または Explict UpdateSourceTriggers をサポートしていません。 さらに、Silverlight では、何も設定されていない場合、OneWay データバインディングがデフォルトとなり、WPF では依存性プロパティで指定されたデフォルト モードが使用されます。

  6. Silverlight は MultiBinding をサポートしません。

  7. Silverlight は XmlDataProvider をサポートしますが、ObjectDataProvider はサポートしません。 WPFは両方をサポートしています。

  8. Silverlight は非同期ネットワーク呼び出ししかできません。 WPF では、完全な .Net ネットワーキング スタックにアクセスでき、あらゆるタイプの呼び出しを行うことができます。 また、現在、Silverlight は SOAP をサポートしていますが、SOAP 障害例外をネイティブに処理できません (Silverlight 3 では変更される可能性があります)。

  9. 暗号化には大きな違いがあります (Silverlight にはネームスペースに 20 のクラスがありますが、WPF は 107 にアクセスできます)。 基本的に、Silverlight は 4 つのハッシュ アルゴリズムと AES 暗号化プロトコルのみをサポートしています。

  10. Silverlight はまだサポートしていません。コマンド、検証、印刷、XPS ドキュメント、スピーチ、3D、凍結可能なオブジェクト、および Windows デスクトップとの相互運用など、WPF で利用できるものはすべて、Silverlight ではまだサポートしていません。

  11. Silverlight は、ブラウザの相互運用、タイムライン マーカーを含むより多くのメディア ストリーミング オプション、および Deep Zoom をサポートします。 WPF では、これらの機能はまだサポートされていません。

70 ページのドキュメントを箇条書きにしようとしていたので、これは決して完全なものではありません。

最後に、これだけの違いがあっても、Microsoft は 2 つの技術の間のギャップを縮めようとしています。 Silverlight Toolkit と WPF Toolkit は、それぞれのテクノロジの欠点のいくつかに対処しています。 Silverlight 3では、現在利用できない多くの機能(要素から要素へのデータバインディングなど)が追加される予定です。 しかし、コアライブラリの違いから、常にFrameworkの違いが存在することになります。