2010-10-08 5 views
0

Pour les WPFers expérimentés, dans quelle mesure les applications et composants WPF, Silverlight et Silverlight OOB sont-ils réutilisables? Combien de chevauchement y a-t-il? Par exemple, est-ce que je pourrais écrire une application et la déployer facilement des trois manières mentionnées ci-dessus?Interchangeabilité/réutilisation des applications WPF, Silverlight et Silverlight OOB?

Idéalement, je veux écrire le moins de code possible et avoir la flexibilité de le déployer dans une gamme de scénarios, en activant peut-être certaines fonctionnalités en fonction du déploiement. La famille de technologies WPF semble être un bon point de départ pour l'observateur occasionnel .. mais est-ce vraiment?

Répondre

1

La version simplifiée de la réponse est:
1. Silverlight est à peu près un sous-ensemble de WPF.
2. Silverlight dans les applications du navigateur et les applications Silverlight OOB fonctionnent exactement dans le même cadre. C'est juste une différence de déploiement.
3. Certaines applications OOB peuvent être installées en tant qu'applications «de confiance» et ont des restrictions de sécurité moins strictes que dans les applications de navigateur.

Le portage d'une application WPF vers Silverlight sera probablement très difficile, car une application WPF utilisera probablement de nombreuses fonctionnalités du framework .net qui ne sont pas disponibles dans le sous-ensemble plus restreint du framework disponible pour les applications Silverlight. C'est quelque chose que vous voulez probablement éviter.

Il est probable que le portage d'une application Silverlight sur WPF sera nettement plus facile. Ce serait encore un défi car il existe des fonctionnalités dans Silverlight pas dans WPF (mais pas autant que l'inverse). En plus de la fonctionnalité delta, la structure réelle qui exécute les applications Silverlight/WPF est différente. Par conséquent, lors du portage, vous rencontrerez probablement un certain nombre de différences de comportement entre les deux.

Les applications Silverlight et Silverlight OOB fonctionnent sur le même environnement. Il est possible d'avoir exactement la même application binaire dans les deux endroits. Pour la plupart, ils se comporteront de manière identique. Quelques différences: les applications dans le navigateur peuvent s'appuyer sur des fonctionnalités du navigateur telles que l'accès au html dom, l'invocation de javascript, etc. Une application OOB ne fonctionne pas dans le navigateur, donc cela ne s'applique pas. En outre, si nous traitons avec une application OOB "de confiance", elle peut faire des choses qui sont empêchées pour des raisons de sécurité dans le navigateur (par exemple, l'interopérabilité COM). Si vous souhaitez créer une application qui s'exécute à ces trois endroits, mon conseil est de commencer à créer l'application en tant qu'application Silverlight intégrée au navigateur, c'est-à-dire qu'elle ne repose pas sur la page Web qui est l'héberger, et inclut toutes les ressources nécessaires dans le paquetage xap (plutôt que de les compter à côté du paquet sur le serveur web). Portage d'une telle application à une application Silverlight OOB serait un jeu d'enfant - à peu près tout simplement cocher une case dans Visual Studio et vous avez terminé. Le porter à WPF représenterait une quantité de travail considérable, mais ce serait beaucoup mieux que d'aller dans l'autre sens.

+0

Brillante réponse, merci. Connaissez-vous un bon aperçu qui met en évidence les différences entre Silverlight et WPF (c'est-à-dire les points 'douleur')? – flesh

Questions connexes