Sprechen Sie über den Unterschied zwischen ASP.NET MVC und WebForm
Wenn Sie das ASP.NET MVC-Framework zum Erstellen eines Standardprojekts verwenden, ist das erste intuitive Gefühl, dass alle Adressen neu geschrieben werden . Nach einer kurzen Analyse des Quellcodes und der Konfigurationsdateien ist es nicht schwer zu erkennen, dass MVC httpModules zum Abfangen von Adressanforderungen verwendet, insbesondere mithilfe der Klassenbibliothek System.Web.Routing (in MVC2 habe ich vergessen, wie man MVC1 verwendet). und dieser Teil der Klassenbibliothek ist in .NET Framework3.5 SP1 gepackt. Es ist natürlich, dass MVC2 SP1-Unterstützung erfordert. Die von SP1 bereitgestellte System.Web.Routing-Klassenbibliothek kann Adressanfragen problemlos abfangen und eignet sich auch hervorragend für die Codierungsverarbeitung. Die UrlRoutingModule-Klasse fängt Anfragen ab. Zuvor wird während Application_Start eine Abfangeinstellung an das globale Objekt von RouteTable übergeben. Diese Einstellung wird mit dem RouteCollection-Objekt gespeichert und MVC erweitert diese Klasse – RouteCollectionExtensions. Wenn der Benutzer auf die Seite zugreift, fängt die Klasse UrlRoutingModule die Anforderung ab und prüft, ob sie den Regeln entspricht. Wenn dies der Fall ist, wird dieser Aufruf im httpHandlers-Konfigurationsknoten registriert. vorausgesetzt, die Adresse entspricht den „*.mvc“-Regeln. Die ProcessRequest-Methode von MvcHandler ruft den Controller zur Ausführung auf. Tatsächlich handelt es sich bei dem gesamten Prozess um eine Blackbox, die der Benutzer nicht spüren kann. Nachdem eine Methode im Controller ausgeführt wurde, wird das Ergebnis zurückgegeben und anschließend die spezifische ASPX-Seite eingegeben.
Nachdem Sie das Arbeitsprojekt von MVC analysiert haben, können Sie den Unterschied zu WebForm vergleichen. Wir wissen, dass das Geschäft im MVC-Modus zur Ausführung im Controller abgelegt wird und die ASPX-Seite nur für die Anzeige verantwortlich ist. Dann wird die tatsächliche Ausführungszeit des Geschäfts in MVC auf HttpMolde erhöht und die WebForm-Anforderung wird nur im httpHandler-Container ausgeführt. Mit anderen Worten, die Trennung von Controller und Ansicht in MVC wird durch die Verwendung der ASP.Net-Anforderungspipeline erreicht. Auf diese Weise wird die logische Ebene des Codes zweifellos erreicht, ohne die Effizienz zu beeinträchtigen (eine Anforderung, während Response.Redirect eine ist). zweiter Antrag).
Die Vorteile der MVC-Arbeit liegen auf der Hand, sie ist förderlicher für das Verständnis der Schichtlogik und das Erfassen der Schichtung des Codes. Der Prozess zwischen dem Controller und der ASPX-Seite wurde durch das Framework isoliert. Was den Prozess des Aufrufs der Controller- oder Ansichtsseite und des Modells betrifft, müssen Sie ihn noch selbst beherrschen. Das MVC-Framework von ASP.NET implementiert eine separate Verwaltung des Controller-Codes.
Betrachtet man das WebForm-Entwicklungsmodell , wird es nur im HttpHandler-Container ausgeführt und ist in großen Aspekten nicht unterstützt und kann sich nur auf logische Trennung verlassen. Es ist nicht so, dass sie nicht getrennt werden können, aber sie haben bestimmte Einschränkungen. Das Abfangen von HttpHandler hängt mit dem Zugriff auf den Suffixnamen zusammen. Wenn eine Seite angefordert wird, handelt es sich um einen Handler, und das WebForm-Modell realisiert die Trennung von Anzeige und Logik. Nur der Ereignistreiber von WinForm ist verfügbar. Offensichtlich muss das Ereignis auf der Seite registriert sein, beispielsweise als Button1_Click-Code. Bevor Button1_Click ausgeführt wird, wird die Page_Load-Methode ausgeführt. Der Anzeigecode wird in die Page_Load-Methode geschrieben, was dazu führt, dass zusätzlicher Abfallcode geschrieben werden muss, z. B. if (!Page.IsPostBack). Der Teil, der nach der Ausführung von Button1_Click angezeigt werden muss, ist schwieriger zu handhaben. In Button1_Click muss auch eine andere Methode aufgerufen werden. Die alternative Lösung besteht darin, Response.Redirect zu verwenden, die Logik in einer ASPX-Seite zu verarbeiten und nach der Verarbeitung zu einer anderen angezeigten Seite zu springen. Der Nachteil dabei ist, dass es schwierig ist, Daten zwischen den beiden Seiten auszutauschen, und der Sprung durch Markieren von 302 erfolgt, sodass eine weitere Anforderung erforderlich ist. Darüber hinaus wird die Konvertierung der beiden Seiten durch Verarbeitungsmethoden wie Server.Execute, Server.Transfer oder Context.RewritePath auf der Serverseite abgeschlossen und die Daten können gemeinsam genutzt werden. Man kann sagen, dass die Verarbeitungsmethode dieser ähnelt Der Nachteil des MVC-Frameworks besteht darin, dass diese Umleitungseigenschaften manuell konfiguriert werden müssen.
Aus der obigen Analyse können wir ersehen, dass das MVC-Framework große Vorteile hat und WebForm nicht ohne Vorzüge ist und in einfachen Anwendungen einfacher zu entwickeln ist. WebForm kann auch dieselbe Schichtungsmethode wie MVC implementieren, Sie müssen jedoch bei der Verarbeitung mehr Code schreiben. Meiner Meinung nach besteht das größte Problem bei der Verwendung von WebForm zur Entwicklung hierarchischer Entwicklung in der Datenübertragung zwischen Seiten und in der Beherrschung der Anwendungsfähigkeiten, die durch die Verwendung serverseitiger Sprünge in WebForm (Server.Execute, Server.Transfer oder Context. RewritePath) erzielt werden können Lösen Sie das Datenübertragungsproblem. Im Vergleich zu ASP.NET MVC und WebForm ist WebForm einfacher zu verstehen und führt nicht zu komplizierten Konfigurationen. 【Verwandte Empfehlungen】1. Was ist ASP.NET MVC? Zusammenfassung von ASP.NET MVC
2.Einführung in ASP.NET MVC im Detail – Controller (Controller)
3. Detaillierte Einführung in ASP.NET MVC--Ansicht
4. Detaillierte Einführung in ASP.NET MVC--Routing
Das obige ist der detaillierte Inhalt vonErfahren Sie mehr über die Unterschiede zwischen ASP.NET MVC und WebForm. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!