2009-07-21 13 views
37

Je connais assez bien les tenants et les aboutissants des applications clientes complètes de WPF. Je sais que les applications clientes WPF prennent en charge le .NET Framework 3.5 complet, permet l'accélération matérielle des graphiques 2D et 3D, les thèmes, les modèles, le style, les déclencheurs, les travaux. Ce dont je ne suis pas sûr, c'est quelles fonctions et/ou subtilités sont présentes ou manquent dans les applications XBAP et Silverlight. J'ai entendu dire que les XBAP sont intrinsèquement limités à cause de problèmes de sécurité, mais c'est à peu près tout.WPF vs XBAP vs Silverlight ... qui convient aux applications métier?

Je sais pertinemment que WPF est assez robuste pour être utilisé dans des applications professionnelles à grande échelle, mais qu'en est-il de XBAP et de Silverlight? Quelles sont les capacités et les limites significatives de chacun? Est-ce que l'un ou l'autre manque de fonctionnalités qui les rendraient inutiles lorsqu'elles sont utilisées dans une application commerciale?

Répondre

17

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

D'après mon expérience personnelle dans WPF et Silverlight, j'ai trouvé que SL est parfaitement capable de faire des applications métier. Les services .NET RIA constituent un excellent complément à SL3 pour les applications métier. Pour répondre à vos dernières questions, il n'y a rien dans mon expérience qui empêche SL de créer des applications métier. La seule différence significative entre WPF et SL dans cette discussion est que SL n'a pas accès aux ressources locales sur le poste client tel que le registre et ne peut pas accéder aux fonctionnalités spécifiques de Windows que WPF peut faire, telles que les listes de saut ou les bibliothèques Windows 7 . Je pense que Silverlight est le meilleur choix pour les applications biz en raison de sa facilité de déploiement et de sa capacité à cibler plusieurs plates-formes.

+0

Très utile, merci! – Pwninstein

+0

2012 mise à jour: Silverlight 5 prend désormais en charge les applications de confiance, le support d'impression et d'autres fonctionnalités LOB amusantes. Longue vie à Silverlight. http://stackoverflow.com/questions/7788099/silverlight-5-comprehensive-list-of-improvements-changes – felickz

9

Je n'ai pas d'expérience avec XBAP, mais mon impression est similaire à la vôtre en ce qu'elle est seulement limitée en termes de sécurité par rapport à WPF. Quant à Silverlight: je l'ai récemment utilisé pour développer une interface utilisateur de surveillance de télémétrie agricole complexe - c'est plus une application de visualisation de données qu'une application d'entreprise traditionnelle, mais il a beaucoup de CRUD et il n'y avait pas une seule fonctionnalité que je voulais implémenter mais que je ne pouvais pas à cause de mon choix de technologie. Et c'était SL2.

Je suis sûr que vous finirez avec plus de cloches & sifflets si vous avez utilisé XBAP, et si vous pouvez garantir que vos utilisateurs exécutent .NET 3.5 (ou est XBAP partie de 3.0 aussi?) J'irais pour ça. Sinon, je n'aurais aucune réserve à recommander Silverlight.

(. Toutes mes excuses si vous voulez plus d'une matrice de comparaison des fonctionnalités - mais je pense que vous pouvez trouver ceux de Microsoft)

+0

+1 Aucune excuse nécessaire, Bonne réponse! Merci! – Pwninstein

12

En ce qui concerne Silverlight, je vais décrire mon expérience jusqu'à présent. (NB: En relisant ça, ça a l'air un peu négatif, mais je souligne les fonctionnalités manquantes Globalement, j'aime bien Silverlight, une interface utilisateur riche en navigateur utilisant C#? Rocks).

Différences notables: il n'y a pas de clic droit, de prise en charge de la molette de la souris, de fonctionnalité d'impression et vous ne pouvez pas ouvrir une nouvelle fenêtre. Votre application OOB SL ne peut pas s'asseoir 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 bouge OOB. L'équipe SL semble également trop préoccupée par la sécurité au point de gommer son aptitude LOB (pas de nouvelles fenêtres, paramètres de confiance pour l'accès au système local dans OOB, zone de notification, etc.).

Certains d'entre eux font en sorte qu'une application Silverlight ne semble pas compatible avec Windows. Pensez au texte en surbrillance, faites un clic droit sur la copie. Ou faites un clic droit sur le collage. Ces opérations de base que beaucoup de gens utilisent sont manquantes. Il se sent aussi comme une expérience d'interface utilisateur extraterrestre, par exemple.vous instinctivement aller faire défiler une grille avec votre molette de la souris et cela ne fonctionne pas. Ce truc fonctionne dans n'importe quelle table dans un navigateur, mais pas SL.

Programmation sage, je n'ai pas beaucoup utilisé WPF, mais autant que je sache, il existe des différences significatives dans la façon dont vous devez attaquer certains problèmes.

Les extensions de balisage sont manquantes dans SL. Il a également seulement une liaison indexée entière, donc pas de sacs de propriété sans quelques astuces. Il n'y a pas de déclencheur donc vous devez toujours écrire du code pour câbler les événements (irritant dans les pages plus dynamiques) . Il n'a aucun style héritable, à l'exception de ImplicitStyleManager dans la boîte à outils, qui n'est pas à la hauteur du travail. Donc, pour certaines applications métier, c'est bien, pour d'autres, vous devez passer par quelques cerceaux (par exemple, si vous voulez personnaliser le client). Mais ce n'est certainement pas génial pour toutes les applications LOB. Mon impression est aussi que SL ne se sent pas encore fini, il y a beaucoup de déformations. Par exemple, la grille de données est frustrante (pas d'étirement automatique, très difficile à sous-classer), boîte de saisie semi-automatique un peu erratique, cadre de navigation un peu maladroit, combobox/treeview difficile à lier (ils n'ont vraiment pas trié si vous voulez pour lier SelectedItem à un objet différent de la itemSource). Dans l'ensemble, Silverlight est presque là, c'est bien aussi longtemps que vous êtes prêt à accepter quelques limitations et des déformations.

+0

SL3 possède un héritage de style natif, des déclencheurs et des comportements similaires à WPF. Mettez-vous d'accord sur le support sans impression: c'est un peu dommage pour les applications métier. Sur la clôture sur les événements de la barre d'état système/de la souris (sauf la roue, que je veux) - puisque SL fonctionne sur le Mac, aussi. (Je reconnais que la plupart des utilisateurs Web sont Windows.) –

+0

Oui, je comprends pourquoi ils l'ont fait, mais je suis toujours déçu de savoir pourquoi ils se sont débarrassés du menu contextuel de Windows. Ce n'est pas comme s'ils ne savaient pas sur quelle plateforme il fonctionnait! Ils semblent avoir survolé ces comportements sous le radar, ne figuraient pas dans la version bêta de SL3. Regarde bien! Comme le support de mélange aussi. Par des styles implicites, je m'attendrais à ce que tous les enfants choisissent un style en fonction du style des parents. Je ne vois rien qui permette cela? Le truc BasedOn vous permet d'agréger mais n'est pas un style implicite. Bien que j'avoue que je n'ai pas encore eu l'air si dur :) – mattmanser

+0

Par implicite tu veux dire en définissant un style pour Button, toutes les dérivations de Button le ramassent automatiquement aussi?Je suis d'accord que ce serait une bonne fonctionnalité par défaut, si elle est manquante. –

18

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

Il existe de nombreuses limitations non documentées, telles que le fait de ne pas pouvoir définir un curseur de souris personnalisé. MS a oublié de parler de ça à quelqu'un et à une centaine d'autres. Je suis très opposé au sandboxing à cause de ce champ de mines. Combiné qu'avec les cauchemars de déploiement (encore à ce jour il n'y a pas une bonne histoire pour Firefox, même après 3.5 SP1 il y a encore des problèmes), je crois honnêtement que MS fait tout ce qu'il peut pour tuer XBAPs en faveur de Silverlight. Je ne les blâme pas, j'aurais aimé qu'ils soient plus ouverts à ce sujet.

Je voudrais éviter XBAPs comme la peste. C'est un scénario mort sans avenir. Ne serait pas le moins du monde surpris s'ils étaient déconseillés bientôt.

+8

Est-ce que l'idée d'exécuter une application Silverlight dans un contrôle WebBrowser dans une application WPF hébergée dans une application XBAP dans firefox envoie des picotements dans votre colonne vertébrale? http://msdn.microsoft.com/en-us/library/cc656722(v=vs.90).aspx – felickz