Größter Vorteil bei der Verwendung von ASP.Net MVC im Vergleich zu Webformularen

Was sind die Vorteile der Verwendung eines über dem anderen?

Die Hauptvorteile von ASP.net MVC sind:

  1. Ermöglicht die vollständige Kontrolle über das gerenderte HTML.

  2. Bietet saubere Trennung von Bedenken (SoC).

  3. Aktiviert Test Driven Development (TDD) .

  4. Einfache Integration in JavaScript-Frameworks

  5. Nach dem Design der zustandslosen Natur des Webs.

  6. RESTful URLs, die SEO ermöglicht.

  7. Keine ViewState- und PostBack-Ereignisse

Der Hauptvorteil von ASP.net Web Form sind:

  1. Es bietet RAD- Entwicklung

  2. Einfaches Entwicklungsmodell für Entwickler aus der Winform-Entwicklung.

ASP.NET Web Forms und MVC sind zwei von Microsoft entwickelte Web-Frameworks – beide sind eine gute Wahl. Keines der Web-Frameworks soll durch das andere ersetzt werden, noch ist geplant, sie in ein einziges Framework “zusammenführen” zu lassen. Die fortlaufende Unterstützung und Entwicklung wird parallel von Microsoft durchgeführt und wird auch nicht weggehen.

Jedes dieser Web-Frameworks bietet Vorteile / Nachteile – einige davon müssen bei der Entwicklung einer Web-Anwendung berücksichtigt werden. Eine Web-Anwendung kann mit beiden Technologien entwickelt werden – es kann die Entwicklung für eine bestimmte Anwendung erleichtern, die eine Technologie gegenüber der anderen auswählen und umgekehrt.

ASP.NET-Webformulare:

  • Entwicklung unterstützt Status • Gibt die Illusion, dass eine Webanwendung ähnlich wie Windows-Anwendungen weiß, was der Benutzer getan hat. Ie Macht die ‘Zauberer’ functionalität ein wenig einfacher zu implementieren. Web Forms macht es sehr gut, einen Großteil dieser Komplexität vor dem Entwickler zu verbergen.
  • Rapid Application Development (RAD) • Die Möglichkeit, einfach “hineinzuspringen” und mit der Bereitstellung von Webformularen zu beginnen. Dies wird von einigen der MVC-Community bestritten, aber von Microsoft geschoben. Letztendlich kommt es auf das Know-how des Entwicklers an und darauf, womit er sich auskennt. Das Web-Formular-Modell hat für weniger erfahrene Entwickler wahrscheinlich weniger Lernkurve.
  • Größere Steuerungs-Toolbox • ASP.NET Web Forms bietet eine viel größere und robustere Toolbox (Web-Steuerelemente), während MVC eine eher primitive Steuerkomponente bietet, die sich mehr auf Rich Client-Side-Steuerelemente über jQuery (Javascript) verlässt.
  • Mature • Es gibt es seit 2002 und es gibt eine Fülle von Informationen in Bezug auf Fragen, Probleme, etc. Bietet mehr Kontrolle von Drittanbietern – müssen Sie Ihre vorhandenen Toolkits berücksichtigen.

ASP.NET MVC:

  • Separation of Concerns (SoC) • Aus technischer Sicht ist die Codeorganisation in MVC sehr sauber, organisiert und granular, was (hoffentlich) die Skalierbarkeit einer Webanwendung in Bezug auf die functionalität erleichtert. Fördert großes Design vom Standpunkt der Entwicklung.
  • Einfachere Integration mit clientseitigen Tools (Rich-User-Interface-Tools) • Webanwendungen werden mehr denn je so umfangreich wie die Anwendungen, die Sie auf Ihren Desktops sehen. Mit MVC können Sie einfacher und nahtloser als mit Web Forms in solche Toolkits (z. B. jQuery) integrieren.
  • Suchmaschinenoptimierung (SEO) Friendly / Stateless • URLs sind Suchmaschinen freundlicher (zB mywebapplication.com/users/ 1 – Benutzer mit einer ID von 1 vs mywebapplication / users / getuser.aspx abrufen (ID in Sitzung übergeben)). Da MVC statusfrei ist, werden auch die Probleme von Benutzern beseitigt, die mehrere Webbrowser aus demselben Fenster erstellen (Sitzungskollisionen). Entlang dieser Richtlinien hält sich MVC an das staatenlose Webprotokoll, anstatt sich dagegen zu “wehren”.
  • functioniert gut mit Entwicklern, die ein hohes Maß an Kontrolle benötigen • Viele Steuerelemente in ASP.NET-Webformularen generieren automatisch einen Großteil des HTML-Rohwerts, der beim Rendern einer Seite angezeigt wird. Dies kann den Entwicklern Kopfschmerzen bereiten. Mit MVC eignet es sich besser dafür, die vollständige Kontrolle über das Rendering zu behalten, und es gibt keine Überraschungen. Noch wichtiger ist, dass die HTML-Formulare typischerweise viel kleiner sind als die Web-Formulare, was einem performancesschub gleichkommt – etwas, das ernsthaft in Betracht gezogen werden sollte.
  • Test Driven Development (TDD) • Mit MVC können Sie Tests für die Web-Seite der Dinge einfacher erstellen. Eine zusätzliche Testschicht bietet eine weitere Schutzebene gegen unerwartetes Verhalten.

Authentifizierung, Autorisierung, Konfiguration, Kompilierung und Bereitstellung sind functionen, die von den beiden Web-Frameworks gemeinsam genutzt werden.

Jeder, der alt genug ist, um sich an klassisches ASP zu erinnern, wird sich an den Albtraum erinnern, eine Seite mit Code zu öffnen, der mit HTML und Javascript gemischt ist – selbst die kleinste Seite war ein Schmerz, um herauszufinden, was zum Teufel es tat. Ich könnte mich irren, und ich hoffe ich bin es, aber MVC sieht so aus, als würde ich in diese schlechten alten Zeiten zurückkehren.

Als ASP.Net auf den Markt kam, wurde es als Retter gepriesen, indem es den Code vom Inhalt trennte und es uns ermöglichte, dass Webdesigner den HTML-Code und Coder den Code dahinter erstellten. Wenn wir ViewState nicht verwenden wollten, haben wir es deaktiviert. Wenn wir aus irgendeinem Grund keinen Code verwenden wollten, könnten wir unseren Code wie klassisches ASP in den HTML-Code einfügen. Wenn wir PostBack nicht verwenden wollten, wurden wir zur Verarbeitung auf eine andere Seite umgeleitet. Wenn wir keine ASP.Net-Steuerelemente verwenden wollten, verwendeten wir Standard-HTML-Steuerelemente. Wir könnten sogar das Response-Objekt abfragen, wenn wir ASP.Net runat = “server” nicht auf unseren Steuerelementen verwenden wollten.

Nun hat jemand in seiner großen Weisheit (wahrscheinlich jemand, der nie einen klassischen ASP programmiert hat) beschlossen, dass es an der Zeit ist, zu den Tagen des Mischens von Code mit Inhalt zurückzukehren und es “Trennung von Sorgen” zu nennen. Sicher, Sie können sauberer HTML erstellen, aber Sie könnten mit klassischen ASP. Zu sagen “Sie programmieren nicht richtig, wenn Sie zu viel Code in Ihrer Ansicht haben” ist wie zu sagen “Wenn Sie gut strukturierten und kommentierten Code in klassischem ASP geschrieben haben, ist er viel sauberer und besser als ASP.NET”

Wenn ich zurückgehen wollte, um Code mit Inhalt zu mischen, würde ich mich mit PHP beschäftigen, das eine weit ausgereiftere Umgebung für diese Art von Entwicklung hat. Wenn es so viele Probleme mit ASP.NET gibt, warum beheben Sie diese Probleme nicht?

Nicht zuletzt die neue Razor-Engine macht es noch schwerer, zwischen HTML und Code zu unterscheiden. Zumindest könnten wir nach öffnenden und schließenden Tags suchen, dh < % und%> in ASP, aber jetzt ist der einzige Hinweis das @ -Symbol.

Es könnte Zeit sein, zu PHP zu wechseln und noch einmal 10 Jahre zu warten, bis jemand Code wieder vom Inhalt trennt.

Wenn Sie mit anderen Entwicklern arbeiten, wie PHP oder JSP (und ich rate rails), werden Sie die Konvertierung oder die Zusammenarbeit auf Seiten viel einfacher haben, weil Sie nicht all diese “fiesen” ASP.NET-Dateien haben Ereignisse und Kontrollen überall.

Das Problem mit MVC ist, dass es selbst für “Experten” viel wertvolle Zeit kostet und viel Aufwand erfordert. Unternehmen werden von der grundlegenden Sache “Quick Solution, die funktioniert” angetrieben, unabhängig von der Technologie dahinter. WebForms ist eine RAD-Technologie, die Zeit und Geld spart. Alles, was mehr Zeit erfordert, ist für Unternehmen nicht akzeptabel.

  1. Proper AJAX, zB JSONResults keine Teilseite Postback Unsinn.
  2. kein Blickwinkel +1
  3. Kein Umbenennen der HTML-IDs
  4. Clean HTML = no bloot und eine ordentliche Aufnahme beim Rendern von XHTML- oder standardkonformen Seiten.
  5. Kein generiertes AXD Javascript mehr.

Der größte Vorteil für mich wäre die klare Trennung zwischen Model, View und Controller. Es hilft von Anfang an gutes Design zu fördern.

Ich habe keine Vorteile in MVC gegenüber ASP.Net gesehen. Vor 10 Jahren hat Microsoft UIP (User Interface Process) als Antwort auf MVC entwickelt. Es war ein Flop. Wir haben damals ein großes Projekt (4 Entwickler, 2 Designer, 1 Tester) mit UIP gemacht und es war ein Albtraum.

Springen Sie nicht wegen Hype in den Zug. Alle oben aufgeführten Vorteile sind bereits in Asp.Net verfügbar (mit mehr Optimierungen [ Neue functionen in Asp.Net 4 ] in Asp.Net 4).

Wenn sich Ihr Entwicklungsteam oder einzelne Entwicklerfamilien mit Asp.Net daran halten und schöne Produkte schnell erstellen, um Ihre Kunden zufrieden zu stellen (wer bezahlt Ihre Arbeitszeiten). MVC wird Ihre wertvolle Zeit aufbrauchen und die gleichen Ergebnisse wie Asp.Net erzielen 🙂

Francis Shanahan,

  1. Warum nennst du partielles Postback als “Unsinn”? Dies ist das coremerkmal von Ajax und wurde sehr gut im Atlas-Framework und wunderbaren Drittanbieter-Steuerelementen wie Telerik verwendet

  2. Ich stimme Ihrem Standpunkt hinsichtlich des Viewstates zu. Aber wenn Entwickler den Anzeigestatus sorgfältig deaktivieren, kann dies die Größe des HTML, das gerendert wird, stark reduzieren, wodurch die Seite leichter wird.

  3. Nur HTML Server-Steuerelemente werden im ASP.NET Web Form-Modell und nicht als reine HTML-Steuerelemente umbenannt. Was auch immer es sein mag, warum sind Sie so besorgt, wenn die Umbenennung gemacht wird? Ich weiß, dass Sie mit vielen JavaScript-Ereignissen auf der Client-Seite umgehen wollen, aber wenn Sie Ihre Webseiten intelligent gestalten, können Sie definitiv alle gewünschten IDs erhalten

  4. Sogar ASP.NET Web Forms erfüllt die XHTML-Standards und ich sehe keine Blähungen. Dies ist keine Rechtfertigung dafür, warum wir ein MVC-Muster brauchen

  5. Noch einmal, warum haben Sie sich mit AXD Javascript geärgert? Warum verletzt es dich? Dies ist keine gültige Begründung mehr

Bisher bin ich ein Fan von Anwendungen, die klassische ASP.NET-Webformulare verwenden. Zum Beispiel: Wenn Sie eine Dropdownliste oder eine Gridview binden möchten, benötigen Sie maximal 30 Minuten und nicht mehr als 20 Codezeilen (minimal natürlich). Aber im Falle von MVC, sprechen Sie mit den Entwicklern, wie schmerzhaft es ist.

Der größte Nachteil von MVC ist, dass wir zurück zu den Tagen von ASP gehen. Erinnern Sie sich an den Spaghetti-Code zum Mischen von Server-Code und HTML ??? Oh mein Gott, versuche eine MVC aspx-Seite zu lesen, gemischt mit Javascript, HTML, JQuery, CSS, Server-Tags und was nicht …. Jeder Körper kann diese Frage beantworten?

Web-Formulare profitieren außerdem von einer größeren Reife und Unterstützung von Drittanbieter-Kontrollanbietern wie Telerik.

In Webforms können Sie auch fast den gesamten HTML-Code von Hand rendern, mit Ausnahme von Tags wie viewstate, eventvalidation und ähnlichen, die mit PageAdapters entfernt werden können. Niemand zwingt Sie, GridView oder ein anderes serverseitiges Steuerelement zu verwenden, das eine errorshafte HTML-Rendering-Ausgabe aufweist.

Ich würde sagen, dass der größte Vorteil von MVC SPEED ist!

Als nächstes ist die erzwungene Trennung der Bedenken. Aber es verbietet Ihnen nicht, ganze BL- und DAL-Logik in Controller / Action zu stecken! Es ist nur die Trennung der Ansicht, die auch in Webforms (MVP-Muster zum Beispiel) getan werden kann. Viele Dinge, die Leute für mvc erwähnen, können in Webforms gemacht werden, aber mit etwas mehr Aufwand.
Der Hauptunterschied besteht darin, dass die Anfrage zum Controller kommt, nicht zur Ansicht, und diese beiden Ebenen sind getrennt, nicht wie in Webformularen über partielle classn verbunden (aspx + code behind)

Meine 2 Cent:

  • ASP.net-Formulare eignen sich hervorragend für die schnelle Anwendungsentwicklung und die schnelle Steigerung des geschäftlichen Nutzens. Ich benutze es immer noch für die meisten Intranet-Anwendungen.
  • MVC eignet sich hervorragend für die Suchmaschinenoptimierung, da Sie die URL und den HTML-Code stärker steuern
  • MVC erzeugt im Allgemeinen eine viel schlankere Seite – kein Viewstate und saubereres HTML = schnelle Ladezeiten
  • MVC einfach Teile der Seite zu cachen. -MVC macht Spaß zu schreiben: – persönliche Meinung 😉

MVC können Sie mehr als ein Formular auf einer Seite haben, eine kleine function, die ich weiß, aber es ist praktisch!

Auch das MVC-Muster, das ich fühle, macht den Code leichter zu pflegen, insb. wenn Sie es nach ein paar Monaten wieder besuchen.

MVC-Controller:

  [HttpGet] public ActionResult DetailList(ImportDetailSearchModel model) { Data.ImportDataAccess ida = new Data.ImportDataAccess(); List data = ida.GetImportDetails(model.FileId, model.FailuresOnly); return PartialView("ImportSummaryDetailPartial", data); } 

MVC-Ansicht:

  @foreach (Data.ImportDetailData detail in Model) {  } 
Unique IdError TypeFieldMessageState
@detail.UniqueID@detail.ErrorType@detail.FieldName@detail.Message@detail.ItemState

Wie schwer ist das? Kein ViewState, kein BS Page Life-Cycle … Einfach reiner, effizienter Code.

Ich kann die einzigen zwei Vorteile für kleinere Seiten sehen: 6) RESTful URLs, die SEO ermöglichen. 7) Keine ViewState- und PostBack-Ereignisse (und allgemein eine höhere performance)

Das Testen für kleine Sites ist kein Problem, ebenso wenig wie die Designvorteile, wenn eine Site trotzdem korrekt codiert wird. MVC verschleiert in vielerlei Hinsicht und macht Änderungen schwieriger. Ich bin immer noch dabei zu entscheiden, ob diese Vorteile es wert sind.

Ich kann den Vorteil von MVC in größeren Multi-Entwickler-Sites deutlich sehen.

Hauptvorteil, den ich finde, ist, zwingt es das Projekt in eine testbarere Struktur. Dies kann ziemlich einfach mit Webforms (MVP-Muster) getan werden, aber erfordert der Entwickler, dies zu verstehen, viele nicht.

Webforms und MVC sind beide brauchbare Werkzeuge, die sich in verschiedenen Bereichen auszeichnen.

Ich benutze Webformulare, da wir hauptsächlich B2B / LOB Apps entwickeln. Aber wir tun es immer mit einem MVP-Muster, mit dem wir 95 +% Codeabdeckung für unsere Komponententests erreichen können. Dies erlaubt uns auch, das Testen von Eigenschaften von Webcontrols zu automatisieren. Eigenschaftswert wird durch die Ansicht z

 bool IMyView.IsAdminSectionVisible{ get{return pnlAdmin.Visible;} get{pnlAdmin.Visible=value;} } 

) Ich denke nicht, dass diese Teststufe in MVC so leicht zu erreichen ist, ohne mein Modell zu beschädigen.

Sie fühlen sich nicht schlecht mit der Verwendung von “non-post-back controls” – und überlegen, wie Sie diese in eine herkömmliche asp.net-Umgebung integrieren können.

Dies bedeutet, dass moderne (frei zu verwenden) Javascript-Steuerelemente wie dies oder das oder das alles verwendet werden kann, ohne dass versucht wird, einen runden Stift in ein quadratisches Loch-Gefühl zu passen.

Moderne JavaScript-Steuerelemente sowie JSON-Anforderungen können mit MVC sehr einfach gehandhabt werden. Dort können wir viele andere Mechanismen verwenden, um Daten von einer Aktion zu einer anderen Aktion zu übertragen. Deshalb bevorzugen wir MVC gegenüber Webformularen. Auch können wir leichte Seiten bauen.

Meine persönliche Meinung ist, dass der größte CODE BLOCKS Verwendung von ASP.Net MVC ist, dass CODE BLOCKS mit HTML gemischt …
html Hölle für die Entwickler, die es pflegen …