2011-03-04 7 views
1

J'ai une application Asp.net MVC qui utilise html5 et jquery du côté client. La direction souhaite expérimenter avec Silverlight car elle pense que l'utilisateur final aura l'impression d'utiliser une application de bureau plutôt qu'une application Web. Ce que je veux est de créer une version Silverlight de l'application, mais contrairement à une application MVC où les vues html sont retournées, je veux vraiment avoir des données juste retournées et consommées par l'application Silverlight. Donc, chaque fois que je vais sur une nouvelle page dans l'application Silverlight, seules les données sont retournées pour la peupler (je ne veux pas retourner une page xaml dans laquelle les données sont intégrées). Donc, toute ma logique d'application sera dans l'application Silverlight. Comme notre application sera un système multi-utilisateurs, l'une des exigences est que lors de l'affichage d'une grille de données dans l'application Silverlight, la grille doit être mise à jour périodiquement lorsque d'autres utilisateurs ajoutent et suppriment des enregistrements. Actuellement, avec l'application MVC, j'ai une minuterie qui met à jour la grille avec un appel Ajax toutes les quelques secondes. Je ne suis pas sûr si je peux réutiliser les contrôleurs de mvc et les actions et retourner juste des données ou si je devrais aller avec des services de RIA car il peut me fournir d'autres fonctionnalités plus riches.Silverlight avec mvc ou Ria Services?

JD

Répondre

2

RIA ne fournit avec des fonctionnalités plus riches, mais ne dispose pas de l'OMI le très réutilisabilité (Interop avec jquery par exemple), vous aurez besoin ici. Voir le blog de Tim Heuer sur comment utiliser Silverlight en tant que Vue avec MVC here, et peut-être ajouter un paramètre supplémentaire à votre appel comme (? Mode = sl) et vérifier dans vos contrôleurs, alors rassemblez toutes vos données dont vous aurez besoin pour votre point de vue, puis

if (mode == "sl") return Json(data); 
else return View(data); 

Bien sûr, la vie est pas simple, vous aurez des problèmes avec les actions de l'enfant, ViewModels, etc. Mais il est un bon début. D'autre part, si vous ne faites que des opérations CRUD et que vous n'avez écrit aucune logique métier dans vos contrôleurs, lancez-vous avec RIA! OMI, la chose la plus importante de tous est DRY !!! (Ne vous répétez pas) Donc, si vous avez beaucoup de code dans Controller, ne le réécrivez pas autour de RIA dans SL!

+0

Merci pour la réponse. Mes contrôleurs utiliseront une couche qui a une logique métier qui renvoie les données correctes. Cela peut être réutilisé dans un service RIA, je suppose. Qu'avez-vous voulu dire par réutilisabilité (interop avec jquery par exemple)? –

+0

Je voulais dire que RIA ne peut fonctionner qu'avec SOAP + SL, alors qu'un bon contrôleur peut traiter le HTML, les requêtes XHTML du navigateur, Ajax, SL, n'importe quoi. – TDaver

+0

Bien que j'aie passé un certain temps avec l'application MVC (en utilisant unit/learning JQuery etc ainsi que MVC 2), ce que nous voulons, c'est une application sur le client et non des pages téléchargées. Donc, je pense que RIA est la voie à suivre. –

0

Les deux? :)

Créez un ou plusieurs référentiels pour contenir vos E/S de données et votre logique métier et laissez vos actions MVC et vos méthodes de service de domaine répondre aux besoins.

Questions connexes