ASP.Net MVC und ASP.Net-Formulare

8

Warum sollten Sie ASP.Net MVC oder ASP.Net Standard mit Formularen und Steuerelementen für ein Webprojekt verwenden? Abgesehen von persönlichen Vorlieben, was wären die Gründe? Welche Art von Projekten finden Sie geeigneter für MVC und welche Projekte für normale ASP.Net?

Würden Sie Ihre aktuellen Projekte auf das eine oder andere übertragen?

    
Egor Pavlikhin 12.10.2009, 06:13
quelle

3 Antworten

8

WebForms ist eine Abstraktion, die die Mechanik des Webs vor dem Entwickler versteckt. Es ermöglicht Desktop-Entwicklern, ihre Fähigkeiten relativ einfach ins Web zu übertragen. Während dies teilweise gelingt, ist es in praktischen Szenarien in der Regel nicht lange der Fall, dass die Abstraktion aufhört und man mühsam Abhilfe schaffen muss. Komponententests sind schwierig, da die Logik zur Handhabung von Benutzerinteraktionen eng mit der Benutzeroberfläche verknüpft ist. Der HTML-Code einer typischen WebForms-App ist bei weitem nicht optimal. Es ist typischerweise aufgebläht, schwierig zu lesen und enthält viel Inhalt, der nur vorhanden ist, um der Abstraktion zu ermöglichen, z.B. Viewstate, der ein riesiger Informationsblob ist, der der Abstraktion hilft, dem Entwickler die Illusion des Zustands zu geben, obwohl das Web ein staatenloses Medium ist.

MVC umfasst jedoch die Mechanik des Webs. Die grundlegenden Operationen, die in einer Web-Anfrage und -Antwort stattfinden, werden dem Entwickler als einfache Abstraktionen präsentiert. MVC hat eine klare Trennung der Bedenken. Das Modell repräsentiert einfach die Geschäftsobjekte oder Entitäten, mit denen das System befasst ist, mit Methoden zum Abrufen und Speichern von Instanzen dieser Objekte. Der Controller nimmt eine Webanforderung an, führt Operationen für das Modell durch und übergibt das Modell dann an die Ansicht. Die Ansicht ist ein reiner Renderer, um dem Benutzer das Modell zu präsentieren und Schnittstellenelemente anzuzeigen, die es dem Benutzer ermöglichen, die nächste Anforderung zu formulieren, die an einen Controller übergeben werden soll. Diese Trennung von Bedenken ermöglicht relativ einfache Komponententests. Der Entwickler hat die vollständige Kontrolle über den erzeugten HTML-Code und es müssen keine anderen Artefakte vorhanden sein (z. B. Viewstate).

Ich bevorzuge MVC. In seltenen Fällen kann es nützlich sein, Webforms zu verwenden, z. ein schneller Prototyp oder eine Demo, aber ansonsten würde ich immer die Verwendung von MVC empfehlen.

Was die Übertragung eines Projekts von Webforms auf MVC betrifft, so ist dies natürlich sehr subjektiv und abhängig von der Anwendung selbst und den Haushaltszwängen, aber im Allgemeinen glaube ich, dass dies ein Schritt in die richtige Richtung ist.

    
Adam Ralph 12.10.2009, 06:49
quelle
13

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 Vor- und Nachteile - einige davon müssen bei der Entwicklung einer Web-Anwendung berücksichtigt werden. Eine Webanwendung kann mit einer der beiden Technologien entwickelt werden. So kann die Entwicklung für eine bestimmte Anwendung einfacher sein als die Auswahl einer anderen Technologie und umgekehrt.

ASP.NET-Webformulare:

  • Entwicklung unterstützt den Status • Gibt die Illusion, dass eine Webanwendung ähnlich wie Windows-Anwendungen weiß, was der Benutzer getan hat. I.e. Macht die "Assistenten" -Funktion ein wenig einfacher zu implementieren. Web Forms ist sehr gut darin, einen Großteil dieser Komplexität vor dem Entwickler zu verbergen.
  • Schnelle Anwendungsentwicklung (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 Forms-Modell hat wahrscheinlich weniger erfahrene Entwickler.
  • Größere Steuerungs-Toolbox • ASP.NET Web Forms bietet eine viel umfangreichere und robustere Toolbox (Web-Steuerelemente), während MVC ein primitiveres Steuerelement bietet, das sich mehr auf Rich Client-Side-Steuerelemente über jQuery (Javascript) verlässt.
  • Älter • 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:

  • Trennung von Anliegen (SoC) • Aus technischer Sicht ist die Codeorganisation innerhalb von MVC sehr sauber, organisiert und granular, was (hoffentlich) die Skalierbarkeit einer Webanwendung hinsichtlich der Funktionalität erleichtert. Fördert großes Design vom Standpunkt der Entwicklung.
  • Einfachere Integration in clientseitige Tools (umfangreiche Benutzeroberflächen-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 für Suchmaschinen freundlicher (d. H. 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 Kopfschmerzen 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".
  • Funktioniert gut mit Entwicklern, die ein hohes Maß an Kontrolle benötigen • ASP.NET-Webformulare generieren automatisch einen Großteil des HTML-Rohwerts, der beim Rendern einer Seite angezeigt wird. Dies kann den Entwicklern Kopfschmerzen bereiten. Mit MVC haben Sie die vollständige Kontrolle darüber, was gerendert wird und es gibt keine Überraschungen. Noch wichtiger ist, dass die HTML-Formulare typischerweise viel kleiner sind als die Web-Formulare, was einem Leistungsschub gleichkommt - etwas, das ernsthaft in Betracht gezogen werden sollte.
  • Testgesteuerte Entwicklung (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 alle Funktionen, die zwischen den beiden Web-Frameworks freigegeben werden.

    
J.C. 02.09.2010 17:06
quelle
1

Sie finden viele Unterschiede, Vorteile gegenüber dem ASP.Net MVC gegenüber dem normalen ASP.Net

Anwendungen. Wenn nicht, bitte besuchen Sie die Seite mit dem Stack.

Größter Vorteil bei der Verwendung von ASP.Net MVC vs Webformulare

Der Grund für die Wahl des MVC-Konzepts für Ihre Anwendung ist vielfältig

  1. Was für Ihre Bewerbung? jede Art von Forum, Reporting-Tool oder Intranet-Website

  2. Ob Sie dem Design-Muster folgen wollen oder nicht?

    Wenn ja, ob das dann MVC oder irgendwas anderes ist?

  3. Ob Sie Modularität für zukünftige Erweiterungen benötigen?

  4. Ob Sie die volle Kontrolle über Ihren Code benötigen?

  5. Bessere Unterstützung für den Testteil aus der Entwicklerperspektive sollte da sein oder nicht?

Wenn Sie sich über diese Dinge sicher sind, können Sie Ihre Anwendung in das MVC-Framework-Modell verschieben.

Ansonsten ist es besser, mit ASP.Net Web.apps fortzufahren, da es die neuesten

enthält

zeigt, was die aktuelle Industrie braucht.

    
solairaja 23.05.2017 12:07
quelle

Tags und Links