2009-03-13 7 views
1

Nous sommes en train de concevoir une application métier qui a deux exigences principales pour son interface utilisateur:Quelle est la meilleure façon de cibler les applications WPF et Web?

1) exécuter sur le Desktop (WPF) pour les utilisateurs de l'entreprise pour fournir une interface utilisateur riche, interopérer avec d'autres applications, accéder au système de fichiers, travail hors ligne, travailler avec du matériel local spécial, etc

2) fonctionner sur ASP.NET/Ajax pour fournir plusieurs composants de cette application aux clients (internet). Malheureusement, Silverlight n'est pas (encore) une option.

Même si nous n'avons pas besoin de rendre l'application complète disponible sur le Web, certains de ces composants sont assez complexes et nous aimerions partager autant de code d'interface que possible avec l'implémentation WPF.

Quelles options avons-nous pour atteindre cet objectif? Y a-t-il un modèle qui fonctionne bien avec les deux technologies?

Mise à jour:

Merci pour les réponses, même si elles ne comprennent pas celui que je cherchais! :)

Je ne pense pas Les générateurs d'interface utilisateur sont une bonne option. Comme Eduardo a souligné que vous finirez probablement avec des problèmes dans les deux mondes. Je vais vérifier Sculpture si.

Répondre

4

J'ai réfléchi à ces lignes pendant un moment maintenant, et je n'ai pas encore trouvé de réponse géniale. Cela étant dit, voici quelques-unes de mes pensées:

Si vous avez utilisé une certaine variation des différentes méthodologies d'interface utilisateur MVP/MVC/MVVM et que vous avez été très discipliné dans cette approche (ie ne pas mélanger des trucs de présentation avec des trucs de comportement), vous Je serais probablement plus loin sur la route. Vous pouvez envisager d'étudier les différents kits d'outils DSL qui ont surgi, l'idée étant de créer un "langage" simple pour décrire votre interface utilisateur à un niveau élevé et générer une représentation de cette interface utilisateur dans WPF/ASPX. En outre, j'ai récemment rencontré this en cours. Je n'ai aucune idée de comment c'est bon. Je prévois de regarder de plus près quand j'en aurai l'occasion.

+0

Merci, j'ai téléchargé Sculpture et je vais y jeter un coup d'oeil! – laktak

+0

Sculpture n'est pas ce que je veux utiliser pour n'importe quelle application, donc je vais rester avec MVVM et MVC, merci! – laktak

2

Bonne chance! La triste vérité est que Asp.net/ajax (le web en général d'ailleurs) et WPF (et diable, jetons WinForms là pour faire bonne mesure) ont des modèles d'interface utilisateur très différents et ce qui fonctionne bien pour un ne va pas nécessairement bien fonctionner pour un autre. Cela ne veut pas dire que vous ne pouvez pas partager la logique entre les applications écrites pour l'une ou l'autre technologie, mais, je vais faire un étirement ici, votre logique de l'interface utilisateur ne va pas être dans cette catégorie. J'ai utilisé une variation de MVVM pour WPF et ASP.Net MVC récemment et je dirais qu'ils sont très bons pour la technologie à portée de main. Cependant, bien qu'ils soient très similaires, ils ont leurs différences et je ne suis pas sûr que vous pourriez écrire une couche d'abstraction (en un temps décent) qui pourrait tirer parti des grandes caractéristiques des deux technologies. En fin de compte, je dirais que votre meilleur pari est de suivre certains modèles SOA et d'extraire autant de votre logique d'entreprise et d'accès aux données dans les bibliothèques communes que possible.Ensuite, écrivez des interfaces utilisateur distinctes dans WPF et Asp.net pour tirer parti de ces bibliothèques communes. C'est l'approche que prend mon entreprise en ce moment, et ça fonctionne comme un charme. Il peut sembler décourageant d'écrire deux fois la logique de votre interface utilisateur (une fois pour asp.net et une fois pour wpf), mais je pense que cela en vaut la peine pour que votre code s'adapte aux modèles et aux pratiques qui correspondent le mieux à ces technologies. En passant, même si Silverlight n'est pas une option, avez-vous considéré XBAP?

1

Si un ancien travail nous avons fait quelque chose de similaire. Comme le dit Daniel Pratt, nous décrivons nos interfaces en XML, puis un rendu crée le formulaire, le rapport ou tout ce que nous avons décidé de créer.

Nous devons fournir une fonction Javascript pour effectuer certaines validations d'interface utilisateur dans le rendu HTML et un appel à une fonction java dans le rendu Swing.

Attention, vous risquez de vous retrouver avec des applications imparfaites dans les deux mondes.

Questions connexes