TOC

This article has been localized into German by the community.

Einführung:

Vergleich von ASP.NET MVC und Web Forms

Die erste Version von ASP.NET wurde 2002 veröffentlicht, wobei die Web Forms View Engine die einzige Option war. Später hat Microsoft ASP.NET erweitert, um mehrere View Engines zu unterstützen, wodurch Dinge wie MVC möglich wurden. Aber für viele Jahre, wenn man ASP.NET verwendete, benutzte man auch automatisch Web Forms.

Microsoft hatte ein sehr lobenswertes Ziel, als sie Web Forms erstellten: Sie wollten so viele der mühsamen Details des HTTP-Protokolls und der Zustandslosigkeit des Protokolls abstrahieren und dem Web-Entwickler das Gefühl geben, eine Windows-Anwendung zu entwickeln, was zu diesem Zeitpunkt schon eine ziemlich angenehme Erfahrung war.

Sie taten dies durch die Einführung des ViewState, der sicherstellen würde, dass der aktuelle Zustand jeder Web Form während der Post-Backs auf dem Server erhalten bleibt, und sie taten es mit Serversteuerelementen, die das Rendern von HTML und CSS in ein beliebiges Steuerelement kapselten, das Sie mit Hilfe logischer Eigenschaften anpassen konnten, anstatt gezwungen zu sein, HTML und CSS direkt zu mischen.

Sie führten auch das ereignisgesteuerte Modell ein, das den damaligen Windows-Entwicklern bereits bekannt war, um es dem Entwickler zu ermöglichen, auf auftretende Ereignisse zu reagieren, wie z.B. das Anklicken einer Schaltfläche oder das Ändern einer Checkbox, anstatt jedes Mal, wenn die Seite geladen wurde, manuelle Prüfungen dafür durchzuführen. Das bedeutete auch, dass Markup und Code getrennt wurden, was in der Theorie eine großartige Sache ist.

Wo die Web Forms versagten

Web Forms war für viele Entwickler ein frischer Wind, und es hat wahrscheinlich auch vielen neuen Entwicklern oder Entwicklern, die nur mit der Entwicklung von Windows-Anwendungen vertraut sind, geholfen, das Erstellen von Anwendungen für das Web zu lernen. Leider ist es Microsoft nicht gelungen, eine perfekte und fehlerfreie Abstraktion zu schaffen, da schnell eine Reihe von Problemen auftauchten. Einige von ihnen wurden in späteren Versionen behoben, während andere grundlegender für die Funktionsweise von Web Forms waren und daher schwieriger zu ändern waren. Die Web Forms-Technologie wurde vor allem für die folgenden Punkte kritisiert:

ViewStates blähen Seiten auf

Indem der Zustand jedes Server Controls auf der Seite in einer ViewState-Zeichenkette gehalten wurde, die bei jeder Anforderung zwischen Client und Server hin und her gesendet wurde, wurden Web Forms-Seiten um einiges schwerfälliger. Wenn Sie eine mittelkomplexe Seite erstellten, konnte die resultierende ViewState-Zeichenkette zu einem Anstieg von mehreren hundert Kilobyte führen. Dies konnte zu langen Ladezeiten führen. Vor allem bei einer mobilen Verbindung und mit der Zunahme des Datenverkehrs mit Smartphones auf der ganzen Welt, wurde dies zu einem sehr realen Problem.

Server Controls beschränkten den Möglichkeiten bei der HTML Ausgabe

Server-Steuerelemente machen es Ihnen leicht, schnell etwas Nützliches zu erstellen, aber Sie haben dabei nie die volle Kontrolle über das HTML, das sie erzeugen. Dies kann zu Problemen führen, wenn Sie Detailanpassungen machen möchten, sowie zu Problemen mit der Browser-Kompatibilität.

Web Forms behindern das automatisierte Testen

Das Web Forms-Modell wurde eingeführt, bevor das automatisierte Unit Testing aufkam, und als es zum Standard wurde, war leicht zu erkennen, dass automatisierte Tests bei Web Forms schwer, wenn nicht gar unmöglich waren.

Wo ASP.NET MVC eine Verbesserung gegenüber Web Forms ist

ASP.NET MVC entfernt viele der von Web Forms implementierten Abstraktionen. Beispielsweise generieren Sie in der Regel das gesamte HTML selbst, anstatt sich auf Server-Kontrollen zu verlassen. Es wird auch kein ViewState mehr mitgeführt, was dieses Problem behebt (aber auch mehrere der Server-Steuerelemente, wie GridView und Repeater, gleichzeitig nutzlos macht).

Das MVC-Modell eignet sich aufgrund der losen Kopplung zwischen den verschiedenen Schichten hervorragend für automatisiertes Unit Testing.

Welche Technologie sollten Sie wählen?

Wenn man die obigen Ausführungen liest, dann erscheint Web Forms wie eine veraltete Technologie, aber ich möchte betonen: Dem ist nicht so - Web Forms wird immer noch von Microsoft weiterentwickelt und ist immer noch eine mögliche Wahl, wenn man mit ASP.NET in die Welt der Webentwicklung eintritt. Web Forms eignet sich besonders gut für Situationen, in denen Sie etwas zügig in Betrieb nehmen möchten - die große Anzahl an leistungsfähigen Server-Controls macht es einfach, schnell Nützliches zu erstellen, und das zu einem Preis, der Ihnen die Flexibilität gibt, das gesamte Markup manuell zu schreiben.

Wenn Sie bereits wissen, wie man Web Forms verwendet, sollten Sie auf jeden Fall ASP.NET MVC ausprobieren, besonders wenn auch Sie auf einige der oben genannten Probleme gestoßen sind. Wenn Sie neu in der Webentwicklung sind und sich zwischen den beiden Technologien entscheiden müssen, würde ich trotzdem empfehlen, ASP.NET MVC auszuprobieren. Das MVC-Modell kann für einige Leute etwas restriktiv erscheinen, und es ist immer schwieriger, einem Muster zu folgen zu müssen, als dies nicht zu tun, aber wenn man sich erst einmal daran gewöhnt hat, ist es sehr angenehm, mit ihm zu arbeiten. Und wenn man sieht, welchen Grad an Aufmerksamkeit MVC in der Entwickler-Gemeinde erhält, wird es wahrscheinlich nicht so bald wieder verschwinden.

Zusammenfassung

ASP.NET Web Forms mag etwas einfacher zu verwenden sein, trotzdem sollten Sie ASP.NET MVC zuerst ausprobieren, wenn Sie neu in der Welt der Webentwicklung sind. Keine Sorge, dieses Tutorial gibt Ihnen den Einstieg und führt Sie durch den Prozess der Entwicklung Ihrer ersten ASP.NET MVC-Anwendung.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!