Supposons que vous démarriez demain un nouveau site Web / une application ASP.NET. Souhaitez-vous choisir Web Forms ou MVC, et pourquoi?
Réponses
Trop de publicités?MVC bébé! Et JQuery!
Edit: OK, il est assez juste de dire que ma réponse mérite un peu plus d'infos.
Moi je préfère le MVC pour les raisons suivantes:
- J'ai travaillé dans les Rails et l'a trouvé très productif. ASP MVC a emprunté tant de Rails qu'il se sent comme un port direct d'une certaine façon (et c'est une bonne chose dans mon esprit).
- AJAX est important, mais je déteste le Microsoft "Atlas" approche AJAX (quel que soit le nom du produit est de ces jours). Si vous allez faire de l'AJAX, vous devez comprendre le HTML et le JavaScript. Cadres de le cacher vous font du mal à vous plus que ce qu'ils sont en vous aidant (OMI).
- JQuery a pris le dessus sur le monde, il semble en termes de frameworks JavaScript. ASPMVC est bien intégré. Je veux apprendre, donc il y a une grande alignement ici.
- L'ensemble du "contrôle" du modèle est une bonne idée, mais c'est plus compliqué qu'il apparaît sur la surface. Par exemple, regardez autour de vous sur TELLEMENT de questions sur la façon dont un UserControl peut trouver son plus haut niveau de contrôle et ainsi de suite. Le contrôle de la hiérarchie d'abstraction a des fuites. Les grilles sont très bien si ils font ce que vous voulez hors de la boîte, mais c'est très très dur de les personnaliser pour faire quelque chose qu'ils n'étaient pas fait pour faire. Et le meilleur de la grille de contrôle sur le marché (ceux qui sont hautement personnalisables sont de grands, des ballonnements, trop compliqué bêtes. Peut-être que nous montre que nous devrions redescendre en HTML et de laisser les boucles dans nos vues de faire ce genre de chose pour nous.
- Je crois que je peux construire complet, de belles applications en ASPMVC beaucoup plus rapide que dans ASP.Net (et j'ai quelques années de ASP.Net sous ma ceinture). Regardez StackOverflow ... construit rapidement sur ASPMVC avec JQuery, et il est rapide, évolutive et une joie à utiliser de l'OMI.
- Oh, et il est complètement open source! C'est ok pour lire le code source, blog à ce sujet, et même les modifier puis de les redistribuer!
Je choisirais MVC tout simplement parce qu'il est conçu pour être testable, et se moquer de'able. Que serait le facteur le plus important dans ma décision.
Les formulaires web sont beaucoup plus difficiles à Test de l'Unité parce qu'ils sont enracinés dans plusieurs classes concrètes qui sont difficiles, dans la mesure du possible, à se Moquer. Ces inclure HttpContext, HttpResponse, HttpRequest et HttpCookie.
MVC est conçu pour être testable, et c'est l'API qui facilite grandement le faire.
Bon article sur la testabilité de la MVC: http://dotnetslackers.com/articles/aspnet/ASPNETMVCFrameworkPart2.aspx
Personnellement, j'ai décidé d'utiliser les deux...
Si c'est un site (consulter en ligne), j'ai décidé d'utiliser ASP.NET MVC. Si c'était une application (application web avec un seul but), j'ai décidé d'utiliser des formulaires web.
Cette décision est purement basée sur l'utilisation de cas et la solution vous tente de transmettre. Si vous êtes intéressés par un bon RÉFÉRENCEMENT et un site web plus rapide, MVC est beaucoup plus propre HTML et plus vite que les formulaires web.
Toutefois, si vous après une fonctionnalité complexe avec beaucoup de filtres, grilles, les publications sur la même page et que vous êtes bien connu dans les Formulaires Web, il suffit de coller avec elle.
Si je commençais aujourd’hui, je continuerais probablement à utiliser des formulaires Web en raison du volume de connaissances et de ressources qui s’y rattachent.
Cela dit, je veux vraiment essayer MVC et, comme d'autres l'ont mentionné, l'enthousiasme au sein de la communauté signifie qu'il ne faudra pas longtemps avant que tout le monde soit soutenu.