2008-10-29 6 views
9

Mon équipe envisage de créer notre prochaine application web en utilisant le framework ASP.NET MVC. Je suis un peu hésitant, comme d'autres, car il n'est encore qu'en version bêta. Je veux vraiment y plonger parce que cela semble être un excellent moyen de séparer clairement les préoccupations et d'améliorer la testabilité. Dois-je faire le saut maintenant, alors que MVC est encore en version bêta, ou attendre pour un candidat à la sortie? D'après certaines des réponses, je dois clarifier un peu ma question. Ma principale préoccupation est de savoir s'il faut utiliser un produit qui est encore en version bêta, pas Webforms vs mvc. L'inquiétude est principalement due à la crainte que nous finissions par utiliser certaines fonctionnalités dans la version bêta qui est modifiée/déconseillée/pas pris en charge dans la version finale. Cependant, j'apprécie la perspective sur les formes de Web contre MVC. Cela n'atteint tout simplement pas le cœur de ma question.Dois-je créer ma prochaine application Web dans ASP.NET MVC?

Répondre

17

C'est vraiment un arbre de décision assez simple.

Choisissez ASP.NET MVC si vous ...

  • sont profondément attachés sur les URL
  • profondément au sujet de votre soins HTML
  • voulez la séparation réelle des préoccupations
  • Vous voulez testabilité travers et à travers
  • Vous voulez la flexibilité des moteurs de vue (ASPX, NVelocity, NHaml, etc)

Choisissez WebForms si vous ...

  • Profitez de l'abstraction stateful de WebForms (ViewState)
  • Ne pas l'esprit modèle PostBack
  • Préférez les composants que vous pouvez "glisser & déposer" sur une page

Pour moi, la réponse sera 99% ASP.NET MVC, parce que je pense que c'est une bien meilleure correspondance pour le web.Je pense que l'histoire ajax est aussi beaucoup plus propre, et j'ai un contrôle complet sur mes URL HTML &. En plus de tout cela, je peux tester mon site web (contrôleurs) assez facilement. Oui, je sais que vous pouvez obtenir des URLs propres dans WebForms, et vous pouvez avoir du code HTML plus clair grâce aux adaptateurs de contrôle, et vous pouvez atteindre un niveau de testabilité avec le modèle MVP dans WebForms, mais ce sont tous des le chemin battu approche. Avec ASP.NET MVC, ce truc est essentiel. C'est juste comme tu le fais.

Et ne vous inquiétez pas de l'état d'aperçu/bêta. L'équipe a toujours soutenu que vous n'avez pas besoin d'une licence Go-Live pour le déployer (même si maintenant ils en offrent un). C'est purement additif sur l'ASP.NET Runtime existant.

C'est comme la transmission automatique ou manuelle. Choisissez-en un qui vous rend heureux et courez avec.

+0

ce ne sont pas les deux seules solutions. – roundcrisis

+0

@Roundcrisis * ting * –

+0

grandissant au Royaume-Uni j'ai été habitué à la transmission manuelle et était toujours adament je serais manuel quand j'ai acheté ma première voiture. mais j'étais tellement occupé à choisir la couleur et les caractéristiques que j'ai complètement oublié de demander une transmission manuelle. rétrospectivement, je suis content d'avoir fait (je vis à Los Angeles) mais je suis maintenant de retour au manuel avec MVC! –

0

Si vous n'avez pas besoin de mettre votre application en production bientôt, écrivez-la dans MVC. Ici, nous avons une équipe qui travaille avec MVC et envisage de le mettre en production au mois de janvier 2009.

1

Jusqu'à présent Mvc semble bon, mais je m un avocat du château, je l'ai utilisé monorail dans de nombreux sites de production et il m'a fait dans l'apprentissage de IoC et AR Cheack sur castleproject.org

4

Je préfère ASP.NET MVC WebForms, donc je choisirais cela, mais vous devez travailler en équipe où votre ensemble de compétences est et si oui ou non choisir MVC:

  1. Créer un meilleur produit.
  2. Obtenez le marché plus rapidement.

Ne choisissez pas simplement parce que c'est nouveau. WebForms est toujours un excellent choix, et vous pouvez écrire du code pour WebForms qui est à la fois testable et a une séparation claire des préoccupations.

0

Si ce n'est pas essentiel à la mission et que vous et votre équipe avez le temps de l'apprendre, pourquoi pas?

1

Je vous recommande d'essayer. Nous venons de publier une plate-forme de commerce électronique avec MVC exécutant le frontal, et bien qu'il y ait quelques pièges sur lesquels vous pouvez tomber (Say, résoudre Url avec des types anonymes est actuellement beaucoup plus lent que l'utilisation d'un RouteValueDictionary, était un surprise pour moi), il semble que c'était beaucoup plus facile de construire un système maniable dans MVC par rapport à nos anciennes applications WebForms.

Si vous avez le luxe de choisir, alors vous devriez vraiment regarder de plus près. Les bugs qui sont apparus pendant que nous y travaillions ont tous été corrigés assez rapidement, et la plupart des choses fonctionnent bien maintenant, et ça commence à être assez complet.

Mais à la fin, c'est toujours un risque de s'attaquer à un produit bêta précoce. :)

1

À moins que votre application ne soit super simple, il est probable que MVC sera publié avant d'être mis en production. Cela importe peu cependant. J'ai construit sur MVC depuis Preview 2. Chaque nouvelle version a contenu des changements de rupture; Cependant, ils n'ont pas été très difficiles à localiser et à réparer. Il est très improbable que par 1.0 vous puissiez créer une montagne de code qui serait renversée par quelques changements de rupture. Il suffit de prévoir quelques heures-personnes pour appliquer chaque nouvelle version.

Questions connexes