2010-01-18 6 views
1

Note: J'utiliserai le terme "ViewModel" pour le ViewModel dans WPF/Silverlight et le ViewData fortement typé dans ASP.Net MVC dans le texte suivant.Combine ViewModel (WPF/Silverlight) et ViewData fortement typé (ASp.NET MVC)?

Je souhaite créer des clients ASP.Net MVC et WPF/Silverlight pour le même projet (en d'autres termes, par rapport au même DataModel), dois-je créer un projet ViewModel commun ou un ViewModel distinct pour chaque technologie client? Je voudrais croire qu'un ViewModel commun est la bonne chose à faire, mais le besoin de créer des propriétés dépendantes ou des chaînes JSON le rendrait incompatible.

Peut-être une autre solution est de mettre la partie commune du ViewModel dans la couche DataModel?

Je vous remercie de toute aide qui me mettre dans la bonne direction, grâce

Répondre

1

Vous aurez besoin ViewModels séparés en raison de la restriction (imposée par Visual Studio) qu'un projet Silverlight ne peut pas faire référence à un projet non Silverlight (bien qu'il y ait un ou deux hacks documentés pour contourner cela).

Vous pouvez partager le code entre les deux projets en ayant la classe physique dans un projet, puis en ajoutant un élément existant au second projet (naviguez jusqu'à puis sélectionnez la classe d'origine, puis cliquez sur Ajouter comme lien). Petit indice: si vous pensez qu'une classe va être partagée de cette manière, gardez l'espace de noms aussi neutre que possible, cela peut sauver la confusion et/ou refactoriser plus loin la piste.

+0

Merci pour la réponse. Mais vous parlez d'un problème différent. Je ne devrais probablement pas mentionner Silverlight, juste une technologie de réutilisation de code pour le ViewModel entre ASP.NET MVC et WPF. –

Questions connexes