Was sind einige der Vorteile einer Verwendung gegenüber der anderen?
asp.net
asp.net-mvc
user18931
quelle
quelle
ASP.NET Web Forms und MVC sind zwei von Microsoft entwickelte Webframeworks - beide sind eine gute Wahl. Weder sollen die Web-Frameworks durch die anderen ersetzt werden, noch ist geplant, sie zu einem einzigen Framework zusammenzuführen. Die kontinuierliche Unterstützung und Entwicklung wird parallel von Microsoft durchgeführt, und beide werden nicht "verschwinden".
Jedes dieser Webframeworks bietet Vor- und Nachteile, von denen einige bei der Entwicklung einer Webanwendung berücksichtigt werden müssen. Eine Webanwendung kann mit beiden Technologien entwickelt werden. Dies erleichtert möglicherweise die Auswahl einer Technologie für die Auswahl einer Technologie gegenüber der anderen und umgekehrt.
ASP.NET Web Forms:
ASP.NET MVC:
Authentifizierung, Autorisierung, Konfiguration, Kompilierung und Bereitstellung sind Funktionen, die von den beiden Webframeworks gemeinsam genutzt werden.
quelle
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 scheint in diese schlechten alten Zeiten zurückzukehren.
Als ASP.Net auf den Markt kam, wurde es als der Retter gefeiert, der Code vom Inhalt trennte und es uns ermöglichte, dass Webdesigner den HTML-Code erstellten und die Codierer an dem dahinter stehenden Code arbeiteten. Wenn wir ViewState nicht verwenden wollten, haben wir es deaktiviert. Wenn wir aus irgendeinem Grund keinen Code dahinter verwenden wollten, könnten wir unseren Code wie bei klassischem ASP im HTML-Code platzieren. Wenn wir PostBack nicht verwenden wollten, haben wir zur Verarbeitung auf eine andere Seite umgeleitet. Wenn wir keine ASP.Net-Steuerelemente verwenden wollten, verwendeten wir Standard-HTML-Steuerelemente. Wir könnten das Response-Objekt sogar abfragen, wenn wir ASP.Net runat = "server" nicht für unsere Steuerelemente verwenden möchten.
Jetzt hat jemand in seiner großen Weisheit (wahrscheinlich jemand, der nie klassisches ASP programmiert hat) beschlossen, dass es Zeit ist, zu den Tagen des Mischens von Code mit Inhalten zurückzukehren und es "Trennung von Bedenken" zu nennen. Sicher, Sie können saubereres HTML erstellen, aber Sie könnten es mit klassischem 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 weitaus sauberer und besser als ASP.NET".
Wenn ich wieder Code mit Inhalten mischen möchte, würde ich mir die Entwicklung mit PHP ansehen, das eine weitaus ausgereiftere Umgebung für diese Art der Entwicklung bietet. Wenn es so viele Probleme mit ASP.NET gibt, warum nicht diese Probleme beheben?
Last but not least ist es mit der neuen Razor-Engine noch schwieriger, zwischen HTML und Code zu unterscheiden. Zumindest könnten wir in ASP nach öffnenden und schließenden Tags suchen, dh <% und%>, aber jetzt ist die einzige Anzeige das @ -Symbol.
Es könnte an der Zeit sein, auf PHP umzusteigen und weitere 10 Jahre zu warten, bis jemand den Code wieder vom Inhalt trennt.
quelle
Wenn Sie mit anderen Entwicklern wie PHP oder JSP zusammenarbeiten (und ich vermute, dass es sich um Rails handelt), fällt es Ihnen viel leichter, Seiten zu konvertieren oder zusammenzuarbeiten, da Sie nicht über all diese "bösen" ASP.NET verfügen Ereignisse und Kontrollen überall.
quelle
Das Problem mit MVC ist, dass es selbst für "Experten" viel wertvolle Zeit in Anspruch nimmt und viel Aufwand erfordert. Unternehmen werden von der Grundfunktion "Schnelle Lösung, die funktioniert" angetrieben, unabhängig von der dahinter stehenden Technologie. WebForms ist eine RAD-Technologie, die Zeit und Geld spart. Alles, was mehr Zeit erfordert, wird von Unternehmen nicht akzeptiert.
quelle
quelle
Der größte Einzelvorteil für mich wäre die klare Trennung zwischen den Ebenen Modell, Ansicht und Controller. Es fördert von Anfang an gutes Design.
quelle
Ich habe in MVC KEINE Vorteile 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 einfach wegen Hype zu Bandwagon. Alle oben aufgeführten Vorteile sind bereits in Asp.Net verfügbar (mit weiteren Verbesserungen [ Neue Funktionen in Asp.Net 4 ] in Asp.Net 4).
Wenn Ihr Entwicklungsteam oder eine einzelne Entwicklerfamilie mit Asp.Net einfach dabei bleibt und schnell schöne Produkte herstellt, um Ihre Kunden zufrieden zu stellen (die für Ihre Arbeitszeit bezahlen). MVC wird Ihre wertvolle Zeit verschlingen und die gleichen Ergebnisse wie Asp.Net erzielen :-)
quelle
Francis Shanahan,
Warum nennst du partielles Postback "Unsinn"? Dies ist das Kernmerkmal von Ajax und wurde sehr gut im Atlas-Framework und in wunderbaren Steuerelementen von Drittanbietern wie Telerik verwendet
Ich stimme Ihrem Standpunkt bezüglich des Ansichtszustands zu. Wenn Entwickler jedoch darauf achten, den Ansichtsstatus zu deaktivieren, kann dies die Größe des gerenderten HTML-Codes erheblich reduzieren, sodass die Seite leicht wird.
Im ASP.NET Web Form-Modell werden nur HTML Server-Steuerelemente umbenannt und keine reinen HTML-Steuerelemente. Was auch immer es sein mag, warum sind Sie so besorgt, wenn die Umbenennung erfolgt ist? Ich weiß, dass Sie mit vielen Javascript-Ereignissen auf der Clientseite umgehen möchten, aber wenn Sie Ihre Webseiten intelligent gestalten, können Sie definitiv alle gewünschten IDs erhalten
Sogar ASP.NET Web Forms erfüllt die XHTML-Standards und ich sehe kein Aufblähen. Dies ist keine Rechtfertigung dafür, warum wir ein MVC-Muster benötigen
Warum beschäftigen Sie sich wieder mit AXD Javascript? Warum tut es dir weh? Dies ist wiederum keine gültige Begründung
Bisher bin ich ein Fan der Entwicklung von Anwendungen mit klassischen ASP.NET-Webformularen. Zum Beispiel: Wenn Sie eine Dropdown-Liste oder eine Rasteransicht binden möchten, benötigen Sie maximal 30 Minuten und nicht mehr als 20 Codezeilen (natürlich minimal). Aber im Falle von MVC sprechen Sie mit den Entwicklern, wie schmerzhaft es ist.
Der größte Nachteil von MVC ist, dass wir in die Zeit von ASP zurückkehren. Erinnern Sie sich an den Spaghetti-Code zum Verwechseln von Server-Code und HTML? Oh mein Gott, versuchen Sie, eine MVC-Aspx-Seite zu lesen, die mit Javascript, HTML, JQuery, CSS, Server-Tags und was nicht gemischt ist. Jeder kann diese Frage beantworten?
quelle
Webformulare profitieren auch von einer höheren Reife und Unterstützung durch Drittanbieter wie Telerik.
quelle
In Webformularen können Sie auch fast das gesamte HTML von Hand rendern, mit Ausnahme einiger weniger Tags wie viewstate, eventvalidation und ähnliches, die mit PageAdapters entfernt werden können. Niemand zwingt Sie, GridView oder ein anderes serverseitiges Steuerelement zu verwenden, das eine schlechte HTML-Rendering-Ausgabe aufweist.
Ich würde sagen, dass der größte Vorteil von MVC SPEED ist!
Als nächstes kommt die erzwungene Trennung der Bedenken. Es verbietet Ihnen jedoch nicht, die gesamte BL- und DAL-Logik in Controller / Action zu integrieren! Es ist nur eine Trennung der Ansicht, die auch in Webformularen (z. B. MVP-Muster) erfolgen kann. Viele Dinge, die Leute für mvc erwähnen, können in Webformularen erledigt werden, aber mit einigem zusätzlichen Aufwand.
Der Hauptunterschied besteht darin, dass die Anforderung an den Controller und nicht an die Ansicht kommt und diese beiden Ebenen getrennt sind und nicht wie in Webformularen über eine Teilklasse verbunden sind (Aspx + Code dahinter).
quelle
Meine 2 Cent:
quelle
Mit MVC können Sie mehr als ein Formular auf einer Seite haben. Eine kleine Funktion, die ich kenne, die aber praktisch ist!
Auch das MVC-Muster erleichtert meiner Meinung nach die Pflege des Codes, insb. wenn Sie es nach ein paar Monaten erneut besuchen.
quelle
runat="server"
Formular-Tag, wenn Sie noch Webformulare verwenden möchten, und da Sie Formulare nicht verschachteln können / sollten, ist es ziemlich offensichtlich, was er meinte :)MVC-Controller:
MVC-Ansicht:
Wie schwer ist das Kein ViewState, kein BS-Seitenlebenszyklus ... Nur reiner effizienter Code.
quelle
Ich kann die einzigen zwei Vorteile für kleinere Websites sehen: 6) RESTful URLs, die SEO ermöglichen. 7) Keine ViewState- und PostBack-Ereignisse (und höhere Leistung im Allgemeinen)
Das Testen auf kleine Sites ist kein Problem, ebenso wenig wie die Designvorteile, wenn eine Site ohnehin richtig codiert ist. MVC verschleiert in vielerlei Hinsicht und erschwert Änderungen. Ich entscheide immer noch, ob sich diese Vorteile lohnen.
Ich kann den Vorteil von MVC auf größeren Websites mit mehreren Entwicklern deutlich erkennen.
quelle
Der Hauptvorteil, den ich finde, ist, dass es das Projekt in eine prüfbarere Struktur zwingt. Dies kann ziemlich einfach auch mit Webformularen durchgeführt werden (MVP-Muster), erfordert jedoch, dass der Entwickler dies versteht, viele tun dies nicht.
Webforms und MVC sind beide praktikable Tools, die sich in verschiedenen Bereichen auszeichnen.
Ich persönlich verwende Webformulare, da wir hauptsächlich B2B / LOB-Apps entwickeln. Aber wir machen es immer mit einem MVP-Muster, mit dem wir eine Codeabdeckung von 95 +% für unsere Unit-Tests erreichen können. Dies ermöglicht es uns auch, das Testen der Eigenschaften von Webcontrols zu automatisieren. Der Eigenschaftswert wird durch die Ansicht angezeigt, z
) Ich glaube nicht, dass dieses Testniveau in MVC so einfach erreicht werden kann, ohne mein Modell zu verschmutzen.
quelle
Sie fühlen sich nicht mehr schlecht, wenn Sie "Nicht-Post-Back-Steuerelemente" verwenden - und herausfinden, wie Sie sie in eine traditionelle asp.net-Umgebung integrieren können.
Dies bedeutet , dass moderne (kostenlos zu benutzen) Javascript Kontrollen wie diese oder dieser oder diese können alle verwendet werden , ohne dass eine Runde Pflock in einem quadratischen Loch Gefühl zu passen zu versuchen.
quelle
Moderne Javascript-Steuerelemente sowie JSON-Anforderungen können mit MVC sehr einfach verarbeitet werden. Dort können wir viele andere Mechanismen verwenden, um Daten von einer Aktion in eine andere Aktion zu übertragen. Deshalb bevorzugen wir MVC gegenüber Webformularen. Wir können auch leichte Seiten erstellen.
quelle
Meine persönliche Meinung ist, dass der größte Nachteil bei der Verwendung von ASP.Net MVC darin besteht, dass die Entwickler, die es warten ,
CODE BLOCKS
mitHTML
...HTML-Hölle vermischt sind ...
quelle