37 votes

WPF vs XBAP vs Silverlight... lequel convient le mieux aux applications professionnelles ?

Je connais assez bien les tenants et les aboutissants des applications clientes WPF à part entière. Je sais que les applications client WPF prennent en charge l'intégralité du .NET Framework 3.5, permettent l'accélération matérielle des graphiques 2D et 3D, la thématisation, la création de modèles, le style, les déclencheurs, etc.

Ce qui n'est pas clair pour moi, ce sont les fonctionnalités et/ou les commodités qui sont présentes ou absentes dans les applications XBAP et Silverlight. J'ai entendu dire que les XBAP sont intrinsèquement limitées à certains égards en raison de problèmes de sécurité, mais c'est à peu près tout.

Je sais pertinemment que WPF est suffisamment robuste pour être utilisé dans des applications professionnelles à grande échelle, mais qu'en est-il de XBAP et de Silverlight ? Quelles sont les principales capacités et limites de chacun d'entre eux ? L'un ou l'autre manque-t-il de fonctionnalités qui le rendraient inutile lorsqu'il est utilisé dans une application commerciale ?

18voto

Lone Coder Points 2417

J'ai essayé de faire du développement XBAP pendant environ 18 mois à temps plein pour un projet assez ambitieux et j'ai absolument détesté ça.

Il existe de nombreuses limitations non documentées, comme l'impossibilité de définir un curseur de souris personnalisé. MS a oublié de parler de cette limitation et d'une centaine d'autres. Je suis très opposé au sandboxing maintenant à cause de ce champ de mines.

Si l'on ajoute à cela les cauchemars du déploiement (à ce jour, il n'y a toujours pas de bonne histoire pour Firefox, même après la version 3.5 SP1, il y a toujours des problèmes), je pense honnêtement que MS fait tout ce qu'il peut pour tuer les XBAP en faveur de Silverlight. Je ne les blâme pas, mais j'aurais aimé qu'ils soient plus ouverts à ce sujet.

Je voudrais éviter les XBAP comme la peste . C'est un scénario mort et sans avenir. Je ne serais pas le moins du monde surpris s'ils étaient bientôt dépréciés.

17voto

James Cadd Points 5366

Wintellect a écrit une bonne comparaison entre Silverlight et WPF publiée ici : http://wpfslguidance.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=28278

D'après mon expérience personnelle de WPF et Silverlight, j'ai constaté que SL est tout à fait capable de réaliser des applications LOB. Les services RIA .NET constituent un excellent complément à SL3 pour les applications LOB. Pour répondre à vos dernières questions, rien, d'après mon expérience, n'empêche SL de créer des applications LOB. La seule différence significative entre WPF et SL dans cette discussion est que SL n'a pas accès aux ressources locales de la machine cliente, comme le registre, et ne peut pas accéder aux fonctionnalités spécifiques de Windows que WPF peut utiliser, comme les listes de saut ou les bibliothèques de Windows 7. Je pense que Silverlight est le meilleur choix pour les applications biz, en raison de la facilité de déploiement et de la possibilité de cibler plusieurs plateformes.

12voto

mattmanser Points 3131

En ce qui concerne Silverlight, je vais vous faire part de mon expérience jusqu'à présent. (NB : En relisant ce texte, il semble un peu négatif, mais je ne fais que souligner les fonctionnalités manquantes. Dans l'ensemble, j'aime Silverlight, une interface utilisateur riche dans le navigateur en utilisant C# ? Rocks).

Les différences notables sont qu'il n'y a pas de clic droit, de prise en charge de la molette de la souris, de fonctionnalité d'impression et que vous ne pouvez pas ouvrir une nouvelle fenêtre. Votre application SL OOB ne peut pas se trouver dans la zone de notification. Vous pouvez gérer les événements de la souris en javascript mais pas si vous voulez que votre application se déplace en OOB.

L'équipe SL semble également trop préoccupée par la sécurité, au point d'entraver son aptitude à la LOB (pas de nouveau Windows, paramètres de confiance pour l'accès au système local dans l'OOB, zone de notification, etc.)

Certains d'entre eux donnent l'impression qu'une application Silverlight n'est pas compatible avec Windows. Pensez au texte en surbrillance, à la copie par clic droit. Ou le clic droit pour coller. Ces opérations de base que beaucoup de gens utilisent manquent. On a également l'impression d'une expérience d'interface utilisateur étrangère, par exemple lorsqu'on fait instinctivement défiler une grille avec la molette de la souris et que cela ne fonctionne pas. Ce genre de choses fonctionne dans n'importe quel tableau dans un navigateur, mais pas dans SL.

En ce qui concerne la programmation, je n'ai pas beaucoup utilisé WPF, mais d'après ce que je sais, il existe des différences significatives dans la manière d'aborder certains problèmes.

Les extensions de balisage sont absentes dans SL. Il ne dispose également que d'une liaison indexée sur les nombres entiers, ce qui signifie qu'il n'y a pas de sacs de propriétés sans quelques astuces. Il n'y a pas de déclencheurs, ce qui signifie que vous devez toujours écrire du code pour connecter les événements (irritant pour les pages plus dynamiques). . Il n'y a pas de style héritable, à l'exception de l'ImplicitStyleManager de la boîte à outils, qui n'est pas à la hauteur.

Ainsi, pour certaines applications LOB, c'est très bien, pour d'autres, il faut franchir quelques obstacles (par exemple, si vous voulez une personnalisation pour le client). Mais ce n'est certainement pas une bonne solution pour TOUTES les applications LOB.

J'ai aussi l'impression que la SL n'est pas encore terminée, il y a beaucoup d'imperfections. Par exemple, la grille de données est frustrante (elle ne s'étend pas automatiquement et il est très difficile de la sous-classer), la boîte de saisie automatique est un peu erratique, le cadre de navigation est un peu lourd, les combobox/treeviews sont difficiles à lier (ils n'ont pas encore trouvé comment lier SelectedItem à un objet différent de ItemsSource).

Dans l'ensemble, Silverlight est presque là, c'est parfait tant que vous êtes prêt à accepter quelques limitations et imperfections.

9voto

Ben M Points 14458

Je n'ai pas d'expérience avec XBAP, mais mon impression est similaire à la vôtre, à savoir qu'il est seulement limité en termes de sécurité par rapport à WPF.

Quant à Silverlight, je l'ai récemment utilisé pour développer une interface utilisateur complexe de surveillance télémétrique agricole. Il s'agit davantage d'une application de visualisation de données que d'une application commerciale traditionnelle, mais elle comporte de nombreuses fonctions CRUD et il n'y a pas une seule fonctionnalité que je voulais mettre en œuvre mais que je ne pouvais pas mettre en œuvre en raison de mon choix de technologie. Et c'était SL2.

Je suis sûr que vous auriez plus de fonctionnalités si vous utilisiez XBAP, et si vous pouvez garantir que vos utilisateurs utilisent .NET 3.5 (ou XBAP fait-il aussi partie de la 3.0 ?), j'opterais pour cette solution. Sinon, je recommanderais sans hésiter Silverlight.

(Je m'excuse si vous vouliez plutôt une matrice de comparaison des fonctionnalités - mais je pense que vous pouvez en trouver chez Microsoft).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X