Goodbye Web Forms

Written on February 23, 2005

Nein, ich verabschiede mich nicht von ASP.NET ;-)

Wer sich aber verabschiedet, ist Mike Roberts - und zwar von .aspx-Seiten. Dies bedeuted allerdings nicht gleichzeitig, dass er nicht mehr mit ASP.NET arbeitet. Vielmehr verfolgt er den Ansatz, .aspx-Seiten durch eine IHttpHandler-Implementierung zu ersetzen, um so seine ASP.NET-Applikationen einfacher und testbarer zu machen, da er somit die Logik nicht mehr an zwei Stellen (deklarativ in .aspx und im CodeBehind) verwalten bzw. debuggen muß.

Der Schritt geht zugegebenermaßen sehr weit und dürfte wohl auch einigen Aufwand bedeuten, allerdings kündigt Mike Roberts ein Open Source Framework, welches diesen Ansatz verfolgt, an.

Ich finde den Ansatz insbesondere deshalb sehr interessant, da ich mir bereits häufiger die Frage gestellt habe, ob es wirklich vorteilhaft ist, Eigenschaften u.ä. von WebControls in der .aspx-Seite zu deklarieren.

Insbesondere der Ansatz bei ASP.NET 2.0, wo man via VS Designer und ohne eine einzige Zeile "echten" C# oder VB.NET-Code komplette Seiten mit Datenbindung, Menü's etc. erstellen kann, will mir nicht so recht gefallen. Zugegeben: Bis auf einige Demos habe ich mit ASP.NET 2.0 noch nichts gemacht (ok, Schande über mich ;-) ), aber ich fände den Ansatz - ähnlich wie bei Winforms bisher, die Deklaration von Objekten und deren Eigenschaften im CodeBehind über den Designer zu erledigen, angenehmer.

Imho findet durch o.g. Ansatz bei ASP.NET 2.0 eher wieder eine Vermischung von Logik und Layout statt - ein Chaos, welches dank ASP.NET endlich - zumindest bei konsequenter Anwendung von CodeBehind - beseitigt schien.

Natürlich kann man auch bei ASP.NET 2.0 noch mit CodeBehind arbeiten, aber werden nicht gerade Ein- und Umsteiger hier wieder zu "unsauberem" Arbeiten verleidet bzw. wird der Entwickler, der lieber mit CodeBehind arbeitet, nicht extrem benachteiligt (Tipp mal schön Deinen Code, Junge ;-) ) - oder gibt es in VS 2005 eine Option, die es mir erlaubt zwischen Generierung von .aspx-Code auf die Generierung von CodeBehind-Code, also C# bzw VB.NET, umzuschalten? (die Frage ist einigermaßen ernst gemeint).

Das Thema brande mir schon länger unter den Nägeln, dank Mike's Posting habe ich es nun endlich auch einmal zu Blog gebracht.

Wie seht Ihr das? Die Diskussion ist eröffnet ;-)