Wenn Sie wirklich eng am Kabel arbeiten müssen, ist MVC eine gute Wahl. Damit meine ich, wenn Sie sehr strenge Kontrollen über Markup dann haben müssen; während mit WebForms möglich; es ist viel einfacher mit MVC. Dies wäre für Anwendungen üblich, die auf ein öffentliches Publikum (z. B. das Internet) abzielen, das eine reichere grafische Erfahrung haben könnte. Wenn Sie dagegen eine interne (z. B. Intranet-) Geschäftsanwendung entwickeln, bei der die grafische Darstellung nicht so kritisch ist, bietet WebForms viele nützliche Funktionen, mit denen Sie sich schneller bewegen können. Versteh mich nicht falsch, du kannst WebForm-Anwendungen wirklich gut aussehen lassen, aber du gibst etwas Kontrolle über das Markup auf.
Sehr oft kommt ViewState in diese Art von Diskussion. MVC wird keinen ViewState haben, so dass der On-the-Wire-Footprint viel kleiner sein wird, was zu Einsparungen an Geschwindigkeit und Bandbreite führt. Auf der anderen Seite kann die Erstellung von Stateful-Anwendungen mit MVC schmerzhafter sein. Im Gegensatz dazu werden WebForms standardmäßig ViewState übertragen und sind inhärent zustandsbehafteter. Dies ist normalerweise für interne Anwendungen ausreichend. Denken Sie daran, dass ViewState nicht über die Leitung gesendet werden muss ... es gibt Erweiterungen, die es Ihnen ermöglichen, diese in einen lokalen Cache auszulagern. Ich bevorzuge keine der anderen, aber Sie sollten sich dessen bewusst sein, was jeder in dieser Hinsicht tun kann.
Wenn Komponententests für Sie wichtig sind, dann ist MVC auch eine viel bessere Wahl, da dies auch einfacher ist. Dies ist in WebForms durchaus möglich, erfordert jedoch, dass Sie Ihren Code korrekt formatieren.
Sicherheit ist kein wichtiger Faktor, da IPRinciple und IIdentity in der HTTP-Pipeline über HttpModules häufig eingerichtet werden.
Ein weiterer wichtiger Faktor bei der Wahl Ihrer Fähigkeiten ist die Zeit, die Sie verbringen müssen ... Wenn Sie nicht gewohnt sind, statusfrei zu arbeiten oder Standard-Webtechnologien zu programmieren (zB html, css, jquery , etc ...) MVC dauert länger, um sehr grundlegende Dinge zu tun. Wenn es einmal gesagt wird, wird es wahrscheinlich sauberer, kleiner, testbarer und schneller sein. Wenn Sie sich sehr schnell bewegen müssen, können Sie in WebForms viel schneller machen. WebForms macht auch viel Aufhebens in Bezug auf Markup, daher gibt es eine Reihe von Details, die Sie ASP.NET überlassen können.
Ich verwende beide aus einer Vielzahl von Gründen, und MS hat erklärt, dass sie planen, die Unterstützung und Entwicklung für beide fortzusetzen.
Kommen aus Ruby on Rails, ASP.NET Webforms ist "Phantasie" nicht die ASP.NET MVC-Variante – SztupY
das ist, was ich raten SztupY - was denkst du? – Greg