Die Wahl für das Web - ASP.NET, Ajax oder Silverlight?

Werkzeuge  –  Kommentare

Microsoft-affine Entwickler haben für Webanwendungen inzwischen eine Handvoll Optionen: ASP.NET, Ajax, Silverlight, WPF WBA (Web Browser Application) und sogar noch das "alte" ActiveX spielen eine Rolle.

10 wichtige Fragen zu .NET

In dieser zehnteiligen Serie liefert .NET-Experte Holger Schwichtenberg Antworten auf die am häufigsten gestellten Fragen, die .NET-Entwickler beschäftigen.

  1. .NET 2.0 oder .NET 3.5?
  2. VB oder C#?
  3. Express oder Professional?
  4. Windows Forms oder WPF?
  5. LINQ-to-SQL oder ADO.NET Entity Framework?
  6. Visual Studio auf Deutsch oder auf Englisch?
  7. ASP.NET, Ajax oder Silverlight?

ASP.NET gibt es seit dem .NET Framework 1.0 und es wurde seitdem immer wieder erweitert. "ASP" steht für Active Server Pages und drückt aus, dass es sich (primär) um ein serverseitiges Framework für Webanwendungen handelt. Allerdings war ASP.NET von Anfang an nicht rein serverseitig, denn einige Funktionen (etwa Eingabeprüfungen und Hyperlinks, die sich verhalten wie Schaltflächen) erforderten die Ausführung von JavaScript im Browser. Entscheidend ist, dass das .NET Framework nur auf dem Server installiert sein muss. Als Client benötigt man allein einen Browser, der HTML, CSS und JavaScript versteht. Bei deaktiviertem JavaScript funktionieren einige ASP.NET-Funktionen nicht korrekt, aber im Kern kann man ASP.NET ohne JavaScript verwenden. Hinsichtlich der Browser-Kompatibilität hat sich ASP.NET in den letzten Jahren gebessert: Die meisten Funktionen sind inzwischen kompatibel zu anderen Browsern, auch wenn man manchmal etwas nachhelfen muss wie beim Menü-Steuerelement im Chrome-Browser.

ASP.NET zeichnet sich durch eine hohe Entwicklerproduktivität aus, wenngleich Desktop-Anwendungen mit Windows Forms weiterhin schneller zu entwickeln sind als Webapplikationen. Webdesigner kritisieren zudem, dass die von ASP.NET erzeugten HTML-Tags nicht genau zu kontrollieren sind. Dabei gibt es in ASP.NET durchaus die Option, die HTML-Ausgabe über sogenannte Control Adapter zu steuern. Für viele Webentwickler steht aber sowieso eher die Produktivität im Vordergrund, und die genaue Kontrolle über die HTML-Ausgabe ist sekundär. Für "Kontrollfetischisten" bietet Microsoft mit dem "ASP.NET MVC"-Framework eine Alternative. Bei ihm ist aber die Produktivität viel geringer als in dem klassischen, ASP.NET Web Forms genannten Modell.

Ajax und die Folgen

Im Zuge des Ajax-Hypes hat Microsoft 2007 ASP.NET Ajax und das Ajax Control Toolkit veröffentlicht und bietet mit ihnen mehr JavaScript-Funktionen. Ersteres besteht zum einen aus einer clientseitigen JavaScript-Bibliothek, die die Nutzung des XmlHttpRequest-Objekts vereinfacht, von den browserspezifischen Implementierungen abstrahiert und den JavaScript-Funktionsumfang erweitert. Zum anderen ist ASP.NET eine serverseitige Erweiterung für ASP.NET, die die Reaktion auf XmlHttpRequests in Web Forms und Webservices kapselt. Das Ajax Control Toolkit ist eine Bibliothek mit Steuerelementen, die das Aussehen und die Bedienung von Web- in Richtung von Desktop-Anwendungen rücken (zum Beispiel maskierte Eingabe, Drag&Drop-Funktionen und Animationen).

Die Eigenarten der Browser bleiben eine Herausforderung trotz der Berücksichtigung unterschiedlicher Browser durch Microsoft. Auch innerhalb des Internet Explorer funktioniert nicht immer alles reibungslos, wie die folgende Abbildung zeigt – gerade wenn zahlreiche Ajax-Steuerelemente in einer Seite zu kombinieren sind. Viele Entwickler mussten bemerken, dass es zeitaufwendig sein kann, solche Schwierigkeiten in JavaScript und CSS zu lösen, zumal es weiterhin – im Vergleich zur Unterstützung für .NET-Sprachen – nur unbefriedigende Werkzeuge für JavaScript in Visual Studio gibt.

Fehler im AJAX Control Toolkit treten insbesondere auf, wenn man mehrere Ajax-Steuerelemente auf einer Seite verwendet.