2010-05-11 7 views
8

Ich habe vor Monaten MVC ausgecheckt und habe es nicht wirklich verstanden .. aber vor kurzem, als ich ein besserer Programmierer geworden bin denke ich, dass es Sinn macht .. Hier ist meine Theorie .. Sag mir, wenn ich es richtig habeWebforms vs. MVC. Sobald Sie MVC verwenden .. Gehen Sie jemals zurück zu Webforms?

In den 90er Jahren für Microsoft Devs hatten wir Classic ASP. Dieses gemischte VBScript und HTML auf derselben Seite. Sie mussten also den gesamten HTML-Code selbst erstellen und HTML und VBScript mischen. Dies wurde nicht als Ideal angesehen. Dann kam .NET und alle mochten es, weil es der ereignisgesteuerten VB 6-Stil-Programmierung ähnlich war. Es erstellt diese Abstraktion von Bindungsdaten zu ASP Servier-Steuerelementen. Es machte es einfach, aufgezählte Daten mit einer Zeile auf den Bildschirm zu bekommen. Dann vor kurzem Jquery und SOA-Konzepte sind gemischt .. Jetzt Leute denken .. Warum diese zusätzliche Ebene der Abstraktion erstellen, wenn ich direkt .NET als Datenprovider verwenden kann und jQuery AJAX-Aufrufe verwenden, um die Daten zu erhalten und mit HTML zu erstellen es .. direkt keine Notwendigkeit für die Webforms Abstraktionsschicht ..

Sowe sind zurück HTML zur Schaffung direkt wie wir

So MVC dreht sich alles um zu sagen Stopp vorgibt wie Webprogrammierung ist ein VB6 app 1999 tat! HTML direkt generieren!

Fehle ich etwas?

Also ich wundere mich ... für Sie Leute da draußen mit MVC ... ist es die Art von Dingen, die, wenn Sie sich erst einmal daran gewöhnen Sie nie wieder zu Webforms gehen möchten ??

+1

Während ich denke, dass es eine richtige Antwort auf diese Frage gibt, bezweifle ich, dass jeder mir zustimmen wird. Du fragst nach Meinungen und Konventionen über SO für diese Art von Frage, um es Community-Wiki zu machen, obwohl manchmal diese Art von Fragen auch geschlossen wird. – tvanfosson

+0

Community Wiki - von SO FAQS: "Vermeiden Sie Fragen zu stellen, die subjektiv, argumentativ sind oder ausführliche Diskussionen erfordern. Dies ist kein Diskussionsforum, hier können Sie Fragen beantworten!" –

+0

Ja, es ist ein interessanter Diskussionspunkt . Webforms machte es für Stateful Winforms-Entwickler bequem, die staatenlose Welt der Web-Programmierung zu nutzen. Es hat viele Leute nach Asp.Net gelockt, weil es produktiv war. Classic Asp hatte wenig oder keinen Vorteil gegenüber Sprachen wie PHP. (als Kommentar gepostet, weil es nicht wirklich eine Antwort ist) – Armstrongest

Antwort

5

Gott, ich liebe MVC so viel kann ich nicht einmal Worte denken kann erfassen, wie ich :) fühlen

Von Zeit etwas Sicht der Entwicklung aufgewendet, denke ich, dass MVC und WebForms gleich sind.

In WebForms würde ich viele Stunden kämpfen mit DataGrid und anderen Kontrollen zu tun, was ich will und wie ich es will. Und ganz zu schweigen von vielen Stunden, die UpdatePanels durch jQuery ersetzt haben, von Sites, wo es keine brauchbare Lösung mehr war (leistungsmäßig).

In MVC beginne ich mit einem unbeschriebenen Blatt und formt es nach meinen Bedürfnissen. Muss ich mehr sagen?

EDIT: Ich habe gerade http://aspnetmvc.componentart.com/

+0

wow das sind einige schöne Designs auf dieser Website. Es ist auch gut zu referenzieren, aus irgendeinem Grund können Sie ihre Struktur ziemlich nachahmen, wenn Sie die Seitenquelle betrachten, können Sie das gleiche oder sogar besseres Design erstellen, ohne eine Abonnementgebühr zu bezahlen. Es ist so einfach, eigene HTMLHelpers zu erstellen. Ich liebe MVC: D – Ayo

0

MVC bietet Ihnen den Vorteil, Ihre Webanwendung mit dem Model-View-Controller-Muster zu gestalten, d. H. Trennung von Problemen, es geht nicht darum, HTML manuell zu schreiben.

+0

Wahr, aber merkwürdigerweise ist es die Trennung der Steuerelemente, die Sie zwingt, den HTML-Code zu schreiben. Lassen Sie die Html ihre Sache machen, indem Sie sie von jeder Logik trennen, die die spitzen Klammern für Sie schreiben würde. Ich verstehe deinen Standpunkt jedoch. – Armstrongest

+0

I tihnk Ich mag es, den HTML selbst zu machen. Aber wo sind die offiziellen jquery clientseitigen Vorlagen von Microsoft? – punkouter

+0

@Atmoiton: Sie können immer noch einen visuellen Designer verwenden, es ist nicht so, als ob Sie * den * HTML manuell schreiben müssen. @punkouter: Ich stimme zu Ich schreibe meinen HTML-Code immer von Hand, wobei Designer normalerweise viel unnötiges Markup hinzufügen. – James

0

Ich denke, dass es Sie dazu bringt, mehr darüber nachzudenken, was Sie tun - in Webforms war es sehr einfach, ein Updatepanel einzufügen und eine AJAXy-Stilseite zu haben, ohne wirklich an Leistung zu denken. Mit MVC ist es viel sauberer, fokussierte AJAX-Aufrufe über jQuery auf einzelne Controller-Aktionen zu konzentrieren - alles ist viel leichter.

Es gibt auch keine Seitenereignisstruktur, über die man sich Sorgen machen muss, und keine Viewstate, auf die man sich als Krücke verlassen kann - ich denke, dass dies im Allgemeinen zu besserem Code führt.

+0

Und SL4 bewegt sich in Richtung MVVM. Also denke ich alles, was mich dazu bringen kann, bessere Muster zu verwenden, die ich ausprobieren sollte. – punkouter

1

Es gibt Zeiten, wenn ich wünschte, ich könnte einfach ein Grid oder Datenreader anschließen, es anschließen und es funktioniert einfach, wie ich in ASP.NET. Das Erstellen von Anwendungen in ASP.NET MVC ist wohl mehr Arbeit. Aber dann erinnere ich mich an all die pingeligen Dinge, mit denen ich in ASP.NET zu tun hatte, wie ViewState, Code-Behind und Magic IDs. Die Seiten-Rendering-Pipeline war für mich so undurchsichtig, dass ich nie wirklich den Eindruck hatte, die Code-Behind-Ereignisse richtig zu verwenden.

ASP.NET MVC scheint nur sauberer und besser organisiert, und ich habe viel feinere Kontrolle über meine Anwendung und ihre Markup.

Das heißt, ich bin froh, dass Sie ASP.NET und ASP.NET MVC-Seiten mischen können, weil es einige Dinge gibt, die Sie in ASP.NET MVC nicht tun können, wie Serversteuerelemente verwenden. Die neuen Verbesserungen in ASP.NET 4.0 sollten es dedizierten ASP.NET-Entwicklern erleichtern, Anwendungen mit einer feineren Kontrolle über ihr Markup zu erstellen.

+0

Also als ein erfahrener MVC-Entwickler .. Möchten Sie Ihre ASP.NET-Anwendungen ab jetzt nur noch mit MVC erstellen? – punkouter

+0

Ja, allgemein. Aber es gibt einige vorhandene ASP.NET-Anwendungen, die in meine aktuelle Anwendung integriert werden müssen, und ich bezweifle, dass sie von Grund auf neu geschrieben werden. Das ist der Haken, verstehst du? ASP.NET MVC unterscheidet sich strukturell und philosophisch von ASP.NET und Ihr Shop hat bereits eine erhebliche Investition in ASP.NET. –

+1

Problem mit MVC ist die Vorteile der Verwendung es im Laufe der Zeit kommen. So der Nicht-Tech-Chef, der wissen will, warum ich es verwenden muss, wird nicht von dieser Antwort beeindruckt sein. – punkouter

1

Ich sehe es als Webforms sind eine schnelle und schmutzige Möglichkeit, um eine Website mit komplexen Funktionen zu betreiben. Sie ermöglichen es dem Entwickler, sich nicht auf viele Aspekte des Controllers zu konzentrieren, indem er ein Tool mit hohem Overhead für den Benutzer (Ansichtszustand, Update-Panels usw.) verwendet.)

MVC, obwohl ein wenig mehr Planung von den Entwicklern Standpunkt macht ein besseres Produkt für die Benutzer ohne viel "Feintuning" durch den Entwickler aus, indem versucht, die Webform-Tool-Funktionalität zu überarbeiten.

Ganz zu schweigen von MVC ermöglicht die einfache TDD-Integration, offensichtlich ist das ein Plus für größere Projekte mit mehreren Entwicklern.

MVC wäre das richtige Werkzeug für die meisten Produktionsstandorte mit hohem Datenaufkommen, aber Webforms könnte das ideale Werkzeug für schnelle Prototypen und experimentelle Stubs sein.

0

Einige von uns haben. Ich arbeite mit einer Reihe verschiedener Clients, und während mein jüngstes Projekt MVC verwendet habe, schaue ich jetzt zurück auf eine Anwendungssuite, die sowohl Webforms als auch klassische ASPs enthält.

Und alles was ich sagen kann ist, dass der Übergang sehr, sehr schmerzhaft ist.