Menü

TechEd Europe 2009: Microsoft stellt ASP.NET MVC 2 vor

Stephen Walther, Senior Programm Manager für ASP.NET bei Microsoft zeigte in seinem Vortrag auf der TechEd Europe eine erste Beta-Version des Model View Controller Framework 2.0 für ASP.NET (ASP.NET MVC). (Die Version ist öffentlich noch nicht verfügbar.)

Ein zentrales Thema in ASP.NET MVC 2.0 ist die Zusammensetzbarkeit von Websites aus Bausteinen. Nun kann der Entwickler einen View auf einfache Weise aus mehreren anderen Views zusammensetzen. Außerdem kann eine MVC-Anwendung mehrere Unteranwendungen (sogenannte „Areas“) mit eigenen Views, Controllern und Modellen besitzen, sodass sie eine eigenständige MVC-Anwendung bilden. Große Webanwendungen werden somit überschaubarer und können besser in getrennten Teams entwickelt werden.

Erheblich verbessert hat Microsoft die Validierung von Eingaben. Der Entwickler kann bereits durch Annotationen des Objektmodells Gültigkeitsbedingungen wie Required, Range und RegularExpressions festlegen. Die Gültigkeitsbedingungen schlagen sich nicht nur im Modell nieder, sondern sowohl bei der serverseitigen als auch der clientseitigen Validierung. Das bedeutet, dass bereits JavaScript dafür sorgt, dass eine Eingabemaske mit ungültigen Daten nicht abgesendet werden können. Zur Anreicherung des Objektmodells kommen die gleichen Annotationen aus dem Namensraum System.ComponentModel.DataAnnotations zum Einsatz, die bei dynamischen Datenwebsites (alias ASP.NET Dynamic Data ) Verwendung finden.

Durch Vorlagen (Templates) kann ein Entwickler eine Standarddarstellung von Datentypen für Eingabe (EditorTemplate) und Ausgabe (DisplayTemplate) festlegen. Nach dem Prinzip „Konvention statt Programmierung“ spart man somit in Standardszenarien die explizite Festlegung von Views. In abweichenden Fällen kann man dann individuelle Darstellungen für einzelne Klassen festlegen. Auch eine Vererbungsunterstützung ist realisiert. Wenn Mitarbeiter von „Person“ erbt, es aber nur eine Vorlage für „Person“ gibt, nicht aber für „Mitarbeiter“, wird die „Person“-Vorlage automatisch als Vorlage verwendet.

Darüber hinaus bietet ASP.NET MVC keine Steuerelemente auf dem Abstrakstionsniveau von ASP.NET Webforms. Die waren das ursprüngliche im Jahr 2002 eingeführte Webentwicklungsframework in .NET, bei dem die Laufzeitumgebung sogenannte ASP.NET-Serversteuerelemente automatisch in eine komplexe Folge von HTML-Tags sowie zugehörigen CSS-Klassen und ggf. JavaScript umsetzt. Im Gegensatz zu dieser Abstraktion und dem damit einhergehenden Kontrollverlust über das erzeugte HTML setzt das im März 2009 in Version 1.0 erschienene ASP.NET MVC nicht nur auf eine klare Schichtentrennung, sondern insbesondere auch auf eine volle Kontrolle über den HTML-Code. Die Ausgabe wird durch Codefragmente in HTML-Dateien erzeugt (siehe Beispiel ). Vorteile von ASP.NET MVC sind neben der klareren HTML-Ausgabe auch eine bessere Wart- und Testbarkeit.

Leider gehen diese Vorteile bisher einher mit einem Programmiermodell, das in Bezug auf die Views eher dem klassischen ASP, JSP und PHP ähnelt. Um die schlechtere Produktivität bündeln sich bisher auch die Kritikpunkte an ASP.NET MVC. Durch die kommende Version 2.0 gibt es Verbesserungen und interessante Annäherungen an ASP.NET Dynamic Data, einem entgegen zu ASP.NET MVC genutzten Framework für Rapid Application Development (RAD). Doch trotz dieser Synergieeffekte mit ASP.NET Dynamic Data bleibt ASP.NET MVC ein Werkzeuge für größere Teams, größere Projekte und größere Budgets.

Das bisher eigenständige ASP.NET MVC gehört ab .NET 4.0 und Visual Studio 2010 zum Standardumfang der .NET-Plattform. Die Version 2.0 soll sowohl in Visual Studio 2008 als auch Visual Studio 2010 lauffähig sein. Einen Erscheinungstermin wollte Walther noch nicht nennen. Derzeit ist eher unwahrscheinlich, dass ASP.NET MVC 2.0 zeitgleich mit Visual Studio 2010 im März 2010 erscheinen kann. Die Beta 2 Version von Visual Studio 2010 enthält noch die ASP.NET MVC 1.0. Dies deutet darauf hin, dass Microsoft ASP.NET MVC 2.0 dann erst später nachliefern wird.

(Holger Schwichtenberg) / (wm)

Anzeige
Zur Startseite
Anzeige