TechEd 2007: Erster Blick auf MVC für ASP.NET ist eine große Enttäuschung

Der Dotnet-Doktor  –  2 Kommentare

Im Sommer hatte Microsoft angekündigt, in der übernächsten ASP.NET-Version (der Version, die auf ASP.NET 3.5 folgt) eine Unterstützung für das bekannte Pattern "Model-View-Controller (MVC)" einzubauen. Auf der TechEd 2007 zeigt Microsoft zum ersten Mal die Implementierung, die tatsächlich eine klare Kompetenztrennung in Model, View und Controller enthält. Allerdings plant Microsoft überraschenderweise ein Modell, das nicht auf den bestehenden ASP.NET Webforms und deren Serversteuerelementen aufsetzt, sondern eines, das an die klassischen Active Server Pages (ASP) erinnert: Im View müssen HTML-Elemente explizit verwendet werden und werden vermischt mit Codestatements. Auch die Seitenzustandsverwaltung mit dem ASP.NET-Viewstate ist damit in MVC-Seiten nicht verfügbar.

,
, , etc. verwenden und die zugehörige Schleife über die Datensätze explizit programmieren. Nachdem wir Webentwickler jetzt seit sechs Jahren von dem Rendering der ASP.NET-Serversteuerelemente verwöhnt wurden, ist das ein schlimmer Rückfall in die Steinzeit. Seiten nach dem MVC-Modell haben nur einen Vorteil: Sie sind performanter – aber nicht wegen MVC im eigentlichen Sinne, sondern wegen des Verzichts auf Serversteuerelement. Für die meisten Anwendungsfälle ist das Webforms-Modell mit der Abstraktion durch Serversteuerelemente und Viewstate schnell genug. Auch heute schon kann man an ausgewählten Stellen auf diese Abstraktion verzichtet. Aber in Zukunft heißt es: Entweder MVC oder Komfort. Es ist absolut unverständlich, warum Microsoft nicht die Serversteuerelemente mit dem MVC-Pattern kombinieren wird. Erscheinen soll das MVC-Pattern für ASP.NET mit dem Service Pack 1 für das .NET Framework 3.5 (geplant Mitte 2008).

Ein Beispiel: Wer eine Tabelle ausgeben will, kann sich nicht auf die Abstraktion des GridView-Steuerelements stützen, sondern muss die HTML-Elemete