Mise à jour de 2014:
Visual Studio 2013, nous rapproche Un ASP.NET. Il n'y a pas de MVC
type de projet Web ou projet de Formulaires plus, il y a juste ASP.NET. Si
vous voulez mélanger des Formulaires Web et des API Web, ou MVC et SignalR, aller de l'avant!
Vous êtes encouragés et soutenus. De nouvelles fonctionnalités sont
amené avec NuGet sans casser des applications existantes.
VS 13
Si le mélange de Formes de Web et MVC (qui a été assez bien de travailler en toute transparence) est maintenant encouragée et les frontières sont brouillées. Je suppose que MS a reconnu la nécessité de permettre que des projets lentement migrer vers MVC, ou tout simplement migrer des parties si nécessaire, et à en tirer le meilleur des deux mondes.
Projet MVC:
Ayant utilisé MVC avec des formulaires Web pour un certain temps, il est certainement possible et un excellent choix. De nouvelles fonctionnalités et les pages peuvent être facilement ajoutés en MVC pages avec une bonne conception architecturale comme DDD (Référentiel de Service, l'Injection de Dépendance, etc.) et les vieux trucs peut rester tel qu'il est. Combinant MVC à l'intérieur d'un webforms page fonctionne aussi très bien, même si il peut y avoir quelques problèmes mineurs avec les JS de validation. Je le recommande fortement.
Son assez facile de démarrer avec la création d'une application MVC (5 atm) et puis, après que vous obtenez le modèle de base et en cours d'exécution ajouter l'ancien webforms à l'intérieur d'un dossier. De cette façon, vous obtenez la nouvelle MVC installation est correcte et qu'elle conserve une compatibilité descendante.
- Vous pouvez créer un projet MVC et il suffit de copier tous les Formulaires de pages, par exemple un dossier. (possible de mettre à niveau un projet trop, j'imagine)
- Configuration du routage à ignorer les demandes avec le nom du dossier dans l'URL. De cette façon, MVC et web forms peuvent être utilisés ensemble sans tracas dans l'Url.
- Asp.net WebForms aspx pages peut résider dans MVC tant qu'ils ne sont pas placés à l'intérieur de l' /dossier Vues.
- Aller avec le Rasoir sur la vieille syntaxe, vous pouvez personnaliser HTML helpers facilement et c'est beaucoup plus propre.
- Vérifier dans MVC, les normes et les conventions, le contrôleur doit être très léger. Ce n'est pas le code sous-jacent qui peut contenir autant de logique que vous en avez besoin.
- Points de vue ne doivent pas contenir plus de la logique de présentation (pas de logique métier)
- Tout ce qui est nouveau => MVC
- Des ressources, web.config etc. sont utilisables par les deux
- Les Menus ne pas utiliser l'ancien sitemaps en MVC
En utilisant MVC à l'intérieur d'un webforms .page aspx:
Le texte ci-dessous est destiné à montrer comment vous pouvez utiliser MVC, à partir de l'intérieur d'un webforms page. (Par exemple à l'intérieur de MyPage.aspx), Vous pouvez utiliser MVC actions/points de vue à l'intérieur de formulaires web avec ajax par exemple pour remplir une partie de la page ou de certaines divisions.
Webforms contenant MVC fonctionne très bien, au moins lors de l'ajout d'un appel ajax à l'intérieur de l'HTML pour remplir un div de la MVC.
À l'intérieur d'un .aspx
..html & webforms code
<div id="fillMeFromMVC">
<script type="text/javascript">
$.ajax(... call an MVC action to fill
the "fillMeFromMVC" div that this script sits inside of);
</script>
</div>
Cela permettra de combler une partie de la page via MVC et vous pouvez proprement vos MVC sans se soucier de ce qui est fait dans les formulaires web.
WebForms vs MVC:
À ce stade, vous êtes probablement assez conscients des différences entre les deux technologies, cependant, voici une petite comparaison entre eux. Ils ont tous les deux leurs objectifs et à leurs utilisations. Personnellement, je préfère MVC pour les choses que j'ai besoin de faire, cependant il est probable dépend de ce que vous essayez d'atteindre.
Si vous utilisez par exemple un SOA derrière eux à la fois les webforms et MVC pages peuvent utiliser la même logique d'entreprise. Webforms peut être préjudiciable lorsque le code est tous dans la page de derrière et il est lié à l'INTERFACE utilisateur (pas de séparation des préoccupations). Avec une solide architecture et un peu d'effort qui peut être réduit si.
Pour en savoir plus:
Webforms vs MVC (Code projet)
Différence entre ASP.NET WebForms et ASP.NET MVC (blog)