2009-10-07 4 views
3

On m'a demandé de convertir une application MVP ASP.NET en Silverlight. Ce sera ma première application Silverlight et j'ai du mal à déterminer la meilleure façon d'organiser l'architecture.Conversion d'une application MVP ASP.NET en Silverlight 3 - aidez-moi à choisir une architecture

L'application est très bien une application standard CRUD LOB. J'utiliserai également un composant SIG mais je ne pense pas que cela fasse une différence dans l'architecture générale (veuillez me corriger si c'est le cas). Je vais utiliser Subsonic comme DAL, mais encore une fois, je ne pense pas que cela fasse une différence dans mon architecture. L'application d'origine est plutôt grande, donc si possible, je voudrais réutiliser le plus possible le modèle et la vue. Lire sur le web est un peu déroutant quant à ce qui est considéré comme les «meilleures pratiques» pour l'architecture des applications LOB Silverlight 3. Microsoft semble pousser ce framework RIA - mais seulement en avant-première ... est-il prêt pour la production? J'ai l'impression que Microsoft pousse différentes directives architecturales avec Silverlight 3, mais j'ai du mal à trouver exactement ce que sont ces architectures!

Il y a aussi Prism, et le projet Caliburn. Luckliy J'ai ici une date limite très flexible, alors j'aimerais me rapprocher des meilleures pratiques, même si cela signifie un peu d'apprentissage au début.

J'apprécierais grandement un petit coup de pouce amical dans la bonne direction.

modifier en réponse à des réponses à ce jour

  • La solution sera une application Silverlight fullscreen 100%. Je ne suis pas intéressé par une interface mixte Silverlight-Asp.net.

  • Avec cela à l'esprit - je veux optimiser la réutilisation du modèle et vue partie de la base de code, mais seulement si cela est possible sans faire de grands sacrifices à la nouvelle architecture.

  • La solution doit provenir de Microsoft ou être au moins très bien prise en charge.

  • Si RIA est susceptible de changer avant la libération, il est totalement hors de contention.

deuxième édition

Merci à tous pour leurs excellentes réponses. J'ai mis tout le monde à la pâte, mais la réponse doit aller à Steve parce que sa réponse était en fait la série de questions que j'aurais dû me poser.

Je mettrai à jour le fil de discussion une fois que j'aurai jeté un coup d'œil à la fois sur Prism et sur CSLA.

Je vous aime tous.

Répondre

2

beaucoup d'options :-) Votre choix dépend probablement de plusieurs facteurs:

  • Combien vous voulez réutiliser de la solution actuelle
  • Si vous voulez une application SL en plein écran, ou simplement remplacer des parties du site avec le contenu "plus riche"
  • Comment votre application actuelle est structuré, à la fois visuellement et ce que vos ActionMethods reviennent
  • Timescales

services RIA pourraient être un ajustement décent, car il vous permettra d'au moins réutiliser votre modèle et de validation (si vous utilisez des annotations de données), mais il est loin et il est probable qu'il changera avant la publication.

L'autre option est une application Silverlight, pour laquelle je recommande de jeter un oeil à PRISM et MVVM pour la structurer (si seulement pour réduire la charge utile initiale!). Vous pouvez probablement réutiliser votre modèle, et il existe un support pour les annotations de données dans Silverlight, mais vous ne serez pas en mesure de recréer une nouvelle application. La troisième option, et celle que vous pouvez aimer ou détester, consisterait à créer des «îlots» de fonctionnalités riches dans SL pour les zones de votre site. Vous pouvez utiliser votre application MVC existante et potentiellement ActionMethods retourner JSON (ou XML si vous préférez) que vos zones SL pourraient consommer et rendre. Vous auriez une réutilisation de code décent et vous pourriez améliorer les zones du site de manière isolée.

Une réponse ouverte à ended une question ouverte :-)

EDIT: A en juger par vos réponses, si elle était moi, je créerions une application PRISM. S'il s'agit actuellement d'une application Web, elle doit "s'asseoir" assez bien avec le modèle régional (bien que vous ne réutilisiez aucun code de vue), et le chargement dynamique XAP vous aidera avec votre charge utile initiale si vous voulez une seule application en plein écran . Si c'est une application basée sur CRUD, alors vous pouvez jeter un oeil à la XAML Power Toys pour mettre rapidement des formulaires de données ensemble. Datawise vous pouvez soit réutiliser votre modèle et l'exposer via WCF ou ADO.Net Data Services, attendez que les services RIA se stabilisent (en fonction de vos échelles de temps) ou encore utilisez les méthodes d'action MVC mais renvoyez JSON pour eux application à consommer.

+0

Réponse de qualité! Et oui, je suis trop ouvert. Je vais modifier ma question pour inclure certaines des réponses à vos questions. – Alex

+0

Eh bien, il n'y a pas de bonne réponse, mais j'espère que je vous ai donné matière à réflexion pour prendre une décision :-) –

+0

@Steve: Qu'entendez-vous par Timescales? – Alex

1

Vous voudrez peut-être jeter un coup d'œil au cadre de l'AAPC, même si ce n'est pas pour tout le monde, c'est un cadre agréable, facile à utiliser et puissant.L'auteur, Rockford Lhotka, a également écrit une version pour Silverlight et propose une série de vidéos sur la création d'applications utilisant CSLA et Silverlight, pour aider les développeurs à se mettre à jour rapidement.

Quelques liens pour vous de vérifier:

+0

ooh CSLA oui c'est une autre façon d'y aller! – 76mel

+0

@mattruma - pouvez-vous être plus précis? Pourquoi pas pour tout le monde? Pourquoi devrais-je le considérer sur le modèle Prism/MVVM, en tenant compte du fait que j'ai modifié un peu ma question pour clarifier les exigences. – Alex

+0

Ce n'est pas très amical quand il s'agit d'un cadre testable ... simuler des objets et ainsi de suite. C'est à propos de la critique la plus sévère, d'autre part, j'adore ça ... J'ai utilisé le framework Windows/Web CSLA pendant 6+ ans. – mattruma

1

Cela fait quelques mois que nous y allons. Nous utilisons les services Prism et RIA. Je pense qu'il y a un peu de courbe d'apprentissage, mais j'apprécie Prism et il y a un certain soutien en ligne.

Les services RIA sont un peu plus incertains, mais je pense que cela vaut la peine d'utiliser. Nous avons commencé à essayer de l'utiliser peu après l'aperçu de juillet, et il n'y avait pas beaucoup de documentation en ligne à regarder. Au cours des derniers mois, nous avons réussi à faire ce que nous voulons, et il y a plus d'exemples et de solutions en ligne qui aident. Microsoft le pousse, et je pense qu'ils finiront par arriver à la fin.

Questions connexes