Web

APS.NET MVC

Microsoft hat von Open Source gelernt

02.06.2011
Von Peter Monadjemi
Mit ASP.NET MVC hat Microsoft die Web-Entwicklung neu entdeckt und eine Alternative zum ASP.NET-WebForms-Modell geschaffen, das sich in der Entwicklergunst nie gegen PHP & Co. behaupten konnte.
Lange schien es so, als schalte Microsoft beim Thema Web-Entwicklung sein Hirn aus...
Lange schien es so, als schalte Microsoft beim Thema Web-Entwicklung sein Hirn aus...
Foto: Fotolia.com/Sebastian Kaulitzki

Microsoft und die Web-Entwicklung, das schien lange Zeit nicht gut zusammenzupassen. Zu oft versuchte man in Redmond, für den Desktop entwickelte Techniken eins zu eins auf das Web und den Browser zu übertragen, und ignorierte dabei nicht nur die Besonderheiten zustandsloser Protokolle, sondern vor allem die große Macht offener Standards. Das Bestreben, mit dem Internet Explorer 4 und einem Browser-spezifischen Dynamic HTML das damalige Standard-HTML zu ersetzen, die zeitweise "Verschmelzung" des Windows-Desktops mit dem Browser bei Windows 98 im Rahmen des "Active Desktops" und vor allem die durch ihre potenziellen Sicherheitslücken bekannte ActiveX-Technik werden vielen Web-1.0-Entwicklern noch in wenig guter Erinnerung sein.

Auch der Neustart 2002 mit dem .NET-Framework 1.0, das ursprünglich als "Webservices Platform" konzipiert war, brachte keinen nachhaltigen Erfolg. Der Ansatz, mit ASP.NET WebForms das auf dem Desktop entstandene "Codebehind-Model" dem zustandslosen Hypertext Transfer Protocol (HTTP) überzustülpen, überzeugte nur wenige Entwickler und etablierte sich nie als echte Alternative zu PHP & Co.

Neubeginn mit ASP.NET MVC

Das alles ist inzwischen Vergangenheit. Wenn man in Redmond eines besitzt, dann einen langen Atem. Das Resultat einer bereits 2007 beim ASP.NET-Team eingeleiteten Neuausrichtung ist, dass Microsoft im Mai 2011 Web-Entwicklern ein attraktives Tool-Paket mit einer Prise Open Source anbieten kann. Im Mittelpunkt der neuen Offerte steht ASP.NET MVC, das Ende 2007 erstmals in einer Preview als Open-Source-Projekt unter der Microsoft Public License (MS-PL) erschien. Es wurde im März 2009 offiziell freigegeben, aktuell liegt es in Version 3 vor. Das Kürzel MVC steht für Model View Controller und damit für ein bei der Entwicklung grafischer Benutzer-oberflächen populäres Modell, dessen Ursprung bis in die 80er Jahre reicht. Die Grundidee von MVC ist eine klare Trennung der Zuständigkeiten, also keine direkte Kopplung zwischen einer Benutzeraktivität wie dem Anfordern von Datensätzen und der View, mit der Datensätze angezeigt und editiert werden. Der Model-Teil repräsentiert die Datenschicht der Anwendung, die Datenklassen kapselt.

Über das in ASP.NET MVC 3 integrierte Entity Framework 4.1 wird aus einer Model-Klasse automatisch eine SQL-Server-Tabelle erzeugt, so dass die Datenbank zu einem Randdetail wird. Die View repräsentiert die Darstellungsebene und ist eine mit Javascript und CSS angereicherte HTML-Seite, die in der aktuellen Ausprägung auch HTML5-Erweiterungen unterstützt. Der Controller, für den es bei ASP.NET WebForms kein direktes Pendant gibt, steuert die Darstellung der Daten auf der Basis von Commands, die einfach als Namen an die Anwendungs-URL angehängt werden. Der Entwickler lenkt damit die Anwendung über die URL. Beispiel: Ein http://localhost/products ruft den Products-Controller auf, der die Daten der gleichnamigen Tabelle abruft und in einer View anzeigt, in der zum Beispiel das Editieren einzelner Datensätze möglich ist. Details zu einem einzelnen Produkt werden über den URL http://localhost/products/Details/1 abgerufen.

ASP.NET MVC bringt gegenüber dem klassischen WebForms-Modell zahlreiche Vorteile. Sie reichen von einem klarer strukturierten Anwendungsmodell über die durch die Trennung der Zuständigkeiten gegebene Testbarkeit der Anwendung bis zu Suchmaschinen-freundlichen URLs. Durch die Open-Source-Implementierung des .NET-Frameworks Mono wird ASP.NET MVC 2 in der aktuellen Version 2.8 unterstützt. Die offizielle Unterstützung für MVC 3 dürfte mit einem der nächsten Releases kommen, denn der Sourcecode für ASP.NET MVC 3 steht unter http://aspnet.codeplex.com allen inter-essierten Entwicklern zur Verfügung.

Leichter Weg für PHP-Entwickler

Der Hauptvorteil von ASP.NET MVC dürfte jedoch darin bestehen, dass es auf einem Modell basiert, das auch in der Open-Source-Welt akzeptiert wird und entsprechend populär ist. Entwickler, die bereits Erfahrung mit Rails oder einem PHP-MVC-Framework gesammelt haben, werden sich in ASP.NET MVC leicht einarbeiten können.