2009-03-25 8 views
1

C'est une question difficile à poser parce que c'est tellement vaste.Comment choisir entre un webform asp.net et une application mvc?

Quelqu'un connaît-il un système de notation des questions qui aiderait à choisir entre une application WebForms et MVC au début d'un projet?

par exemple. Le TDD est-il une partie importante de ce projet? (Si oui, score 1 pour MVC et 0 pour WebForms)

+0

Wiki de la communauté? – ybo

+0

Voir http://stackoverflow.com/questions/328465/how-to-decide-which-is-right-webforms-or-mvc-when-doing-asp-net –

Répondre

2

Je considère ce qui suit:

  1. compétences actuelles de l'équipe. Si vous avez une grande équipe qui ne va pas chercher MVC rapidement mais qui sont à l'aise avec Web Forms, je m'en tiens à Web Forms

  2. De quel niveau de contrôle avez-vous besoin? MVC vous donne plus de contrôle, mais cela signifie aussi que vous allez faire beaucoup de choses supplémentaires vous-même. WebForms vous donne beaucoup moins de contrôle, mais il y a beaucoup plus de choses dans la boîte. Si être capable de contrôler la sortie HTML est important pour vous, peut-être que MVC est un meilleur ajustement.

  3. Aurez-vous besoin d'une intégration tierce? Il n'y a pas beaucoup de support de contrôle tiers pour MVC, mais il y a une tonne de support pour les webforms. Obtenir une belle grille dans webforms est simple, mais vous allez écrire beaucoup de votre propre code dans MVC pour résoudre ce problème.

  4. Comme vous l'avez mentionné, TDD est-il souhaitable?

  5. gestion de l'Etat est beaucoup plus facile en forme web

2

J'ai un test de question unique (avertissement: il est loin d'être parfait, mais fait le travail beaucoup de temps en vous faisant pencher vers chacune des technologies):

Votre application est-elle plus orientée formulaire (par exemple intranet ou autre) ou vous construisez un site Web Internet (par exemple StackOverflow). Dans le premier cas, j'irais probablement avec des formulaires Web. Le dernier cas est probablement mieux satisfait par ASP.NET MVC.

Une autre chose: ces deux ne sont pas les seuls paradigmes disponibles. Avant les jours MVC, j'ai fait plusieurs projets en construisant des gestionnaires HTTP qui font le routage et d'autres choses que fait MVC. Vous pouvez également supprimer la partie formulaire Web d'ASP.NET et utiliser uniquement des contrôles Web non-serveur (alors que vous le feriez dans un projet de formulaires Web standard, je peux difficilement appeler ce type de formulaires Web ASP.NET).

1

Habituellement, la décision d'utiliser WebForms ou MVC se résume à des contrôles. Si vous allez utiliser beaucoup de contrôles côté serveur, alors WebForms est fait pour vous. Si vous n'avez pas ce fardeau alors MVC, au moins à mon avis, est beaucoup plus propre et plus testable. Après avoir utilisé les deux, la façon dont je décide maintenant est: Dois-je utiliser les contrôles du serveur? Si je ne le fais pas, je par défaut à MVC. Si vous étiez bloqué avec WebForms pour une raison quelconque, vous pouvez implémenter le motif MVP (Model-View-Presenter) pour séparer la vue de la logique et espérer un test unitaire du codebehind.

2

Sauf si vous travaillez sur une application de données très central et besoin de contrôles de serveur avec databinding et viewstate, j'irais avec MVC.

Je n'ai pas fait quelque chose de sérieux sous forme web depuis MVC Preview 2. MVC est beaucoup mieux en ce qui concerne les modèles de conception et les meilleures pratiques.

Et oui IMO TDD est très important et donne plus de 1 point à MVC.