Ich dachte immer das ASP.NET MVC Framework war ein schlechter Name, da es ein Design Pattern ist. sein
sollte die Frage:
Wann würde ich ASP.NET MVC-Framework über ASP.NET Web-Formulare verwenden?
Die Developer Experience
a) ASP.NET Web Forms zu abstrahieren von dem Entwickler der staatenlos Natur von HTTP versucht. Der Status von GUI Elements und/oder Daten wird in Viewstate/Session gespeichert. Jede Form macht ein Postback für sich selbst und imitiert im Grunde das Verhalten eines ereignisgesteuerten WinForm-Entwurfs.
b) HTML-GUI-Elemente werden durch Controls weiter abstrahiert, die wiederverwendet und von Drittanbietern gekauft werden können. Dies hilft Entwicklern, eine HTML-App zusammen zu kleben, ohne zu viel JavaScript und HTML/HTTP-Kenntnisse. Grundsätzlich ähnlich wie Sie VB/WinForms entwickeln würden
c) Sie können eine gute Arbeit, die MVC/MVP-Muster in ASP.NET-Webforms implementieren. Sehen Sie sich die Softwarefabrik "Patterns and Practices" an, um zu sehen, wie sie es gemacht haben.
d) Entwickeln mit WebForms Sie ändern im Allgemeinen die HTML (View) basierend auf Benutzerfeedback auf dem Server. Die meisten Ereignisse (Benutzer klickt auf eine Schaltfläche, bearbeitet ein Feld) werden auf dem Server in einer fortlaufenden Postback-Schleife verarbeitet, die den sogenannten ASP.NET Page Lifecycle ausführt.
VS
Browser gesteuert Ansicht (weiß nicht, was sonst es zu nennen). Alle HTML-Änderungen, die auf Benutzereingaben basieren, werden im Browser gehandhabt. Sie werden das DOM mit Javascript manipulieren.
Hinweis: Ich habe dies auf die Tatsache gestützt, dass ASP.NET MVC wird höchstwahrscheinlich durch einfache HTML angetrieben + Ajax
Wie ich persönlich zwischen ihnen wählen würde (nie MVC benutzt zu haben, nur auf sie zu lesen)
1) Wenn ich ein reines statusloses Frontend mit Ajax, Jquery, EXT JS-Typ-Bibliotheken ASP.NET MVC würde die bessere Passform scheinen. Obwohl Sie dies in ASP.NET-Webforms erstellen könnten, scheint es sinnlos, da Sie das Postback-Modell und die Serversteuerelemente nicht nutzen.
2) Wenn ich gebeten würde, eine neue grundlegende Webanwendung zu erstellen, würde ich bei ASP.NET Webforms bleiben, da ich bereits damit vertraut bin und die gesamte Seitenlebensdauer kenne.
3) Wenn ich gebeten wurde, ein Web 2 zu erstellen.0 (hasse diesen Begriff), um eine Benutzererfahrung der nächsten Generation zu haben, würde ich wahrscheinlich mit ASP.NET MVC gehen und JQuery/ASP.NET Ajax Client-Steuerelemente verwenden.
4) Viele Unternehmen haben einen festen Satz von WebForm-Steuerelementen zur Verwendung erstellt. Es wäre kostspielig, sie alle in einer reinen zustandslosen Ajaxy-Art wieder aufzubauen :)
Diese Frage erscheint Wegthema zu sein, weil es nicht im Rahmen der Diskussion ist, wie in der Hilfe beschrieben. – Will