Réponses
Trop de publicités?C'est une très vaste question. Ma société a récemment écrit un livre blanc décrivant les différences entre les deux technologies, et c'est autour de 70 pages. Malheureusement, il n'est pas encore publié, ou je voudrais vous donner le lien.
EDIT: Comme promis, voici le lien le livre blanc sur Codeplex:
http://wpfslguidance.codeplex.com/
Cependant, je vais essayer de résumer.
WPF est un épais client Windows plate-forme qui a accès à la totalité .Net Framework. Silverlight est un navigateur basé sur la technologie qui a accès à un sous-ensemble de l' .Net Framework (appelé le CoreCLR). Ainsi, vous remarquerez des différences à l'aide de quasi tous les jours des méthodes et des objets dans le cadre. Par exemple, la méthode Split() sur la classe String possède 3 remplacements dans Silverlight, mais 6 dans le .Net Framework. Vous verrez les différences aime beaucoup.
Dans WPF, toutes visuellement le rendu des éléments de dériver à partir du Visuel de la classe de base. Dans Silverlight, ils ne le font pas; au lieu de cela, ils proviennent de Contrôle. Les deux technologies, toutefois, une éventuelle dérivent de la DependencyObject classe haut de la hiérarchie.
WPF, actuellement, les navires ou a l'utilisateur, les contrôles de Silverlight; si cette différence est atténué par le Silverlight Toolkit et la prochaine version de Silverlight 3.
WPF supporte 3 types d'événements routés (direct, des bulles, et le tunnel). Silverlight prise en charge directe et la formation de bulles.
Il y a assez peu de liaison de données les différences qui sera quelque peu atténué avec la prochaine version de Silverlight. Actuellement, Silverlight ne prend pas en charge le mode de liaison, OneWayToSource, ou Explicit UpdateSourceTriggers. En outre, Silverlight par défaut OneWay liaison de données si aucun n'est défini, tout en WPF utilise le mode par défaut spécifiée par la propriété de dépendance.
Silveright ne prend pas en charge MultiBinding.
Silverlight prend en charge la XmlDataProvider mais pas le ObjectDataProvider. WPF prend en charge à la fois.
Silverlight ne peut faire des appels réseau asynchrones. WPF a accès à la totalité .Net pile de réseau et peut faire n'importe quel type d'appel. Aussi, actuellement, Silverlight prend en charge le SAVON, mais ne peut pas gérer erreur SOAP exceptions nativement (cela peut changer dans Silverlight 3).
Il existe d'énormes différences dans la Cryptographie (Silverlight a 20 classes dans l'espace de noms, alors que WPF a accès à 107). Fondamentalement, Silverlight prend en charge uniquement les 4 algorithmes de hachage et de chiffrement AES protocole.
Silverlight n'est pas encore en charge: - Commandant, la Validation, l'Impression, les Documents XPS, de la Parole, de la 3D, Congelable objets, ou l'Interopérabilité avec le Bureau de Windows; qui sont tous disponibles dans WPF.
Silverlight prend en charge le navigateur de l'interopérabilité, de plus en plus médiatiques options de diffusion y compris les marques de montage, et au fond de Zoom. WPF ne prend pas en charge ces fonctionnalités encore.
Ce n'est pas complète comme j'étais en train de réduire de 70 pages d'un document dans des points de balle.
Enfin, même avec toutes ces différences, Microsoft cherche à combler l'écart entre les deux technologies. Le Silverlight Toolkit et WPF Toolkit à la fois pour combler certaines lacunes de chaque technologie. Silverlight 3 sera l'ajout de nombreuses fonctionnalités ne sont pas disponibles actuellement (comme élément à l'élément de liaison de données). Toutefois, en raison des différences dans les bibliothèques de base, il y aura toujours un certain Cadre différences.
WPF est un bureau de Windows la technologie pour le développement d'applications Windows sous la .Net framework.
Silverlight est une technologie web, qui est entièrement pris en charge par un plugin de navigateur sur Windows et MAC (d'une manière similaire à Flash). Il y a aussi un plugin pour l'exécution de Silverlight sous Linux (clair de Lune).
Bien qu'il existe des similitudes entre la fonctionnalité fournie par WPF et Silverlight (en termes de composants d'interface utilisateur et de soutien pour XAML) Silverlight est un plus petit cadre, contenant un sous-ensemble des fonctionnalités de WPF. Les nouvelles versions de Silverlight contiennent certaines fonctionnalités ne trouve pas dans WPF, donc il n'est plus un vrai sous-ensemble.
Choses que WPF a que Silverlight n'est pas: Plein moteur 3d basé sur DirectX, intégration à Windows tels que Windows 7 miniatures de la barre des tâches et du système de registre de disponibilité ainsi que l'accès à la pleine .NET Framework, y compris la base de données Oracle support. Aussi, SL s'exécute dans un sandbox sécurisé qui empêche l'accès à des choses telles que l'ensemble du système de fichiers où des applications WPF pouvez exécuter une pleine confiance avec système complet d'accès.
Comme mentionné ci-dessus, SL pionnier de certaines technologies telles que le VisualStateManager qui font leur était secondairement en WPF par l'intermédiaire de Microsoft pris en charge WPF toolkit.
Si vous êtes à la recherche pour évaluer la technologie est de droit pour votre projet voici une façon simple de le regarder: Si vous écrivez une application qui est destiné à être exécuté tout en étant déconnecté du web, ou si vous écrivez une application qui a besoin d'accéder à Windows de fonctionnalités spécifiques, comme celles énumérées ci-dessus, puis WPF est le chemin à parcourir. Pour la plate-forme agnostique, du web, des applications Silverlight est un choix approprié. Hth.
On pourrait dire que c'est [TRÈS] à peu près similaire à la différence entre Flex et Adobe Air, mais c'est quelque peu trompeur.
WPF désigne l'ensemble des technologies (exposés via des Api).NET Framework 3.0 et au-dessus les utilisateurs ont accès, afin de dessiner à l'écran.
Beaucoup de WPF Api sont disponibles pour les applications Silverlight.
Il y a bien sûr beaucoup d'autres Api en plus de WPF qui sont disponibles sous Silverlight depuis SL faudra faire beaucoup plus que juste de dessiner sur l'écran.