2010-06-29 5 views
1

Je dois créer une application en C# qui aura plusieurs interfaces utilisateur, 2 pour le Web et une qui sera la même application, mais pouvant être utilisée sans accès Internet. Je me penche vers MVC pour le web, puis MVVM/WPF pour l'application Windows (Silverlight n'est pas une option). Je devrais être capable d'injecter une implémentation de référentiel différente pour les deux paradigmes, résolvant ainsi le problème déconnecté de l'Internet.Partage de la logique de présentation entre l'application C# et les interfaces utilisateur Web

Ce que je me demande, c'est la meilleure façon de réutiliser autant de logique de présentation que possible. Idéalement, j'aimerais pouvoir utiliser les mêmes entités de type contrôleur/présentateur pour exécuter les deux interfaces utilisateur. Je cherche un exemple d'une bonne solution à ce problème. Je ne vois pas de chemin clair pour réutiliser les Contrôleurs de MVC (ils semblent trop liés au framework MVC pour fonctionner), mais en même temps je ne suis pas excité par les frais généraux impliqués dans la mise en œuvre d'un modèle MVVM ou MVP personnalisé pour le web (que je crains est la réponse). Sinon, suis-je fou d'essayer même de réutiliser ces composants? Cela ne vaut-il pas la peine? Nous pouvons facilement partager les services qui sous-tendent les interfaces utilisateur, mais il semble dommage d'écrire deux fois ce même code d'interface utilisateur.

Répondre

1

La bonne chose à faire est de partager uniquement la couche d'affaires et Base de données Couche d'accès à. Au moins, vous aurez une cohérence entre tous les clients.

Ensuite, compilez les clients qui profitent des avantages de chaque plate-forme (richesse de l'application de bureau et de simplicité dans l'application web)

Bien sûr, tout dépend du budget.

+0

Oui, nous allons certainement partager ceux-ci. C'est probablement là que je me retrouverai, mais j'espérais aussi partager une logique de l'interface utilisateur. – Anthony

0

Vous avez la possibilité d'utiliser WPF pour tout pour une réutilisation maximale. WPF peut être déployé en tant que XBAP de confiance partielle.

Il y a des inconvénients si * La taille du téléchargement peut être un problème * Les clients ont besoin de la version correcte du cadre et ne peut fonctionner que dans Internet Explorer (Firefox par plug-in (ne fonctionne pas sur Windows 7))

J'ai essayé sur une solution avec un petit client XBAP et une plus grande application autonome - et c'est vraiment des détails mineurs qui ne peuvent pas être réutilisés (fenêtre dans l'application, page dans XBAP et ainsi de suite). Fait pour une belle mise en page cohérente aussi.

+0

Malheureusement, les applications Web doivent être largement disponibles et facilement accessibles (ce qui signifie que nous devons les construire au plus petit dénominateur commun, un simple site Web html) – Anthony

0

Ceci est légèrement hackish (et pas vraiment recommandé, sauf si vous comprenez vraiment ce que vous faites :)), mais vous pourriez essayer de créer une application de bureau, qui embarque un navigateur. Cela vous permet de réutiliser l'interface graphique. Vous devrez également empaqueter un serveur Web, ce qui pourrait poser problème si vous utilisez C#/MVC/.NET.

+0

Vous n'auriez même pas à faire une application Windows, dans ce cas - nous pourrions en faire un site web local. Nous en avons discuté, mais le serveur web intégré est ce qui a cessé de penser dans ce sens. – Anthony

Questions connexes