web-dev-qa-db-fra.com

WPF vs Silverlight

Duplicata possible:
Quelle est la différence entre WPF et l'application Silverlight?

Quelles sont les différences exactes entre WPF et Silverlight?

127
Sauron

C'est une question extrêmement large. Mon entreprise a récemment écrit un livre blanc décrivant les différences entre les deux technologies, et c'est environ 70 pages. Malheureusement, il n'est pas encore publié, ou je vous donnerais le lien.

EDIT: Comme promis, voici le lien vers le livre blanc sur Codeplex:

http://wpfslguidance.codeplex.com/

Cependant, je vais essayer de résumer.

  1. WPF est une plate-forme cliente Windows épaisse qui a accès au framework .Net complet. Silverlight est une technologie basée sur un navigateur qui a accès à un sous-ensemble du .Net Framework (appelé CoreCLR). Ainsi, vous remarquerez des différences en utilisant des méthodes et des objets apparemment quotidiens dans le cadre. Par exemple, la méthode Split () sur la classe String a 3 remplacements dans Silverlight, mais 6 dans le .Net Framework. Vous verrez beaucoup de différences comme celle-ci.

  2. Dans WPF, tous les éléments de rendu visuel dérivent de la classe de base Visual. Dans Silverlight, ils ne le font pas; ils dérivent plutôt de Control. Cependant, les deux technologies dérivent éventuellement de la classe DependencyObject dans la hiérarchie.

  3. WPF, actuellement, expédie ou dispose de plus de contrôles utilisateur que Silverlight; bien que cette différence soit atténuée grâce au Silverlight Toolkit et à la prochaine version de Silverlight 3.

  4. WPF prend en charge 3 types d'événements routés (direct, propagation et tunneling). Silverlight ne prend en charge que le direct et le bullage.

  5. Il existe quelques différences de liaison de données qui seront quelque peu atténuées avec la prochaine version de Silverlight. Actuellement, Silverlight ne prend pas en charge le mode de liaison, OneWayToSource ou Explict UpdateSourceTriggers. En outre, Silverlight utilise par défaut la liaison de données OneWay si aucune n'est définie, tandis que WPF utilise le mode par défaut spécifié par la propriété de dépendance.

  6. Silveright ne prend pas en charge MultiBinding.

  7. Silverlight prend en charge le XmlDataProvider mais pas le ObjectDataProvider. WPF prend en charge les deux.

  8. Silverlight ne peut effectuer que des appels réseau asynchrones. WPF a accès à la pile de réseautage .Net complète et peut effectuer tout type d'appel. De plus, actuellement, Silverlight prend en charge SOAP, mais ne peut pas gérer les exceptions de défaut SOAP en mode natif (cela peut changer dans Silverlight 3).

  9. Il existe d'énormes différences dans la cryptographie (Silverlight a 20 classes dans l'espace de noms, tandis que WPF a accès à 107). Fondamentalement, Silverlight ne prend en charge que 4 algorithmes de hachage et le protocole de cryptage AES.

  10. Silverlight ne prend pas encore en charge: la commande, la validation, l'impression, les documents XPS, la parole, la 3D, les objets congelables ou InterOp avec le bureau Windows; qui sont tous disponibles dans WPF.

  11. Silverlight prend en charge l'interopérabilité du navigateur, davantage d'options de streaming multimédia, y compris les marqueurs de chronologie et le zoom profond. WPF ne prend pas encore en charge ces fonctionnalités.

Ce n'est en aucun cas complet car j'essayais de réduire un document de 70 pages en puces.

Enfin, malgré toutes ces différences, Microsoft essaie de combler l'écart entre les deux technologies. Le Silverlight Toolkit et le WPF Toolkit corrigent tous deux certaines des lacunes de chaque technologie. Silverlight 3 ajoutera de nombreuses fonctionnalités non disponibles actuellement (telles que la liaison de données élément à élément). Cependant, en raison des différences dans les bibliothèques de base, il y aura toujours des différences de Framework.

205
SergioL

WPF est une technologie de bureau Windows pour développer une application Windows dans le framework .Net.

Silverlight est une technologie Web entièrement prise en charge par un plug-in de navigateur sur Windows et MAC (de la même manière que Flash). Il existe également un plugin pour exécuter Silverlight sur Linux (Moonlight).

Bien qu'il existe des similitudes entre les fonctionnalités fournies par WPF et Silverlight (en termes de composants d'interface utilisateur et de prise en charge de XAML), Silverlight est un cadre beaucoup plus petit, contenant un sous-ensemble de fonctionnalités WPF. Les versions plus récentes de Silverlight contiennent en fait des fonctionnalités introuvables dans WPF, il ne s'agit donc plus d'un véritable sous-ensemble.

9
samjudson

Ce que WPF n'a pas que Silverlight: moteur 3D complet basé sur DirectX, intégration Windows telle que les miniatures de la barre des tâches Windows 7 et la disponibilité du registre système ainsi que l'accès au .NET Framework complet, y compris la prise en charge de la base de données Oracle. En outre, SL s'exécute dans un sandbox sécurisé qui empêche l'accès à des éléments tels que l'ensemble du système de fichiers où les applications WPF peuvent exécuter une confiance totale avec un accès complet au système.

Comme mentionné ci-dessus, SL a été le pionnier de certaines technologies telles que VisualStateManager qui font leur secondaire dans WPF via la boîte à outils WPF prise en charge par Microsoft.

Si vous cherchez à évaluer la technologie qui convient à votre projet, voici un moyen simple de la regarder: si vous écrivez une application qui est censée fonctionner tout en étant déconnecté du Web, ou si vous écrivez une application qui a besoin l'accès aux fonctionnalités spécifiques de Windows comme celles répertoriées ci-dessus, puis WPF est la voie à suivre. Pour les applications Web indépendantes de la plate-forme, Silverlight est un choix approprié. Hth.

3
James Cadd

On pourrait dire que c'est [TRÈS] à peu près analogue à la différence entre Flex et Adobe Air, mais c'est quelque peu trompeur.

WPF fait référence à l'ensemble des technologies (exposées via les API) auxquelles les utilisateurs de .NET Framework 3.0 et versions supérieures ont accès pour dessiner à l'écran.

De nombreuses API WPF sont disponibles pour les applications Silverlight.

Il existe, bien sûr, de nombreuses autres API en plus de WPF qui sont disponibles sous Silverlight, car les applications SL devront faire beaucoup plus que simplement dessiner sur l'écran.

1
Andz