Fremde Welten

Ich fühle mich nicht wohl… Ich arbeite gerade an einem Projekt bei dem ich .NET 2.0 einsetze und darin eine verteilte Webapplikation schreibe. Architektonisch auf dem Papier recht hübsch und auch oberflächentechnisch mit viel Know-How der letzten Zeit versehen. (Da werde ich mal nen Post zu machen, wenn’s interessiert.)

Aber dahinter steckt viel Frustration über ein Framework das irgendwie mehr Work als Frame ist.

Die erste Sache über die ich mich immer wieder ärgere ist, daß es keine sinnvollen Dinge gibt um alte Collections in generische Collections umzuwandeln. Ich nutze NHibernate, über das ich hier ja auch schon mal berichtet habe. Ich bin damit auch sehr zufrieden, denn es nimmt mir viel übles rumgebastel in Richtung Datenbanken ab. Aber es nunmal auf .NET 1.1 gebaut und liefert und IList s zurück… Sauberer fände ich’s halt, wenn ich die in Generic Collections hätte… Gut, momentan mache ich damit nicht viel mehr, als sie in Arrays zu packen und per Webservice zu versenden. Aber schöner wär’s dennoch.

Dann eine Sache über die ich mich konstant aufrege ist ASP.NET. Wer es nicht kennt: ASP.NET ist Microsofts Entsprechung zu JSP. Also eine Sprache in der man HTML, Server-seitig interpretierte Spezial-Tags und Code mischen kann. PHP ist ebenfall ein gutes Beispiel für so eine Sprache. Nun… Microsofts Sprache birgt aber im Vergleich zu JSP gleich ein paar Fallstricke. Nutze ich zum Beispiel ein Tag für die Darstellung eines Links, dann sähe das zum Beispiel so aus:

<asp:LinkButton Text="Blubsi" runat="server" />

ASP.NET Attribut runat Das Attribut runat="server" hat KEINERLEI Sinn. Die Möglichkeit einer Differenzierung wie runat="client" oder ähnliches fehlt… Es muss da sein und es hat auch nur diesen Wert. Die AutoCompletion zeigt einem auch nichts anderes an. Wenn es nicht da ist wird es angemeckert… Syntaktischer Schwachsinn also…

Es gibt bei ASP.NET die Möglichkeit über <%= stuff %> an Stellen Variablenausgaben zu fordern… Nicht das man damit die Möglichkeit hätte damit den Wert eines Servercontrols (wie z.B. Id) zu setzen. Es gibt angeblich in 2.0 jetzt neuerdings so eine neue Expression Language ähnlich der bei JSP. Ich werde mich mal schlaumachen und dann hier bloggen.

Wie auch immer… Dies hat zur Folge, daß die Anzahl der Servercontrols zumindest innerhalb der ASP.NET Seite sehr konstant bleiben wird. Es gibt die Möglichkeit über Placeholder hinterher Dinge dynamisch einzufügen, aber das ist alles kramig und spätestens wenn man an den Punkt kommt, an dem man dynamisch Placeholder braucht geht wieder alles nicht.

Microsofts Lösung für alle diese Probleme besteht darin, daß man alles über sogenannte DataBound Controls regelt… Aber dann habe ich für eine einfache Aufgabe ein riesiges Trumm von Datenengine, die ich auch noch latent unbenutztbar finde… Aber davon ein ander mal.

Kurzum… Vorallem jeder Exkurs in ASP.NET nervt mich extrem an. Wie jemand darin ganze Webseiten geschweige denn Applikationen programmieren soll ist mir persönlich recht schleierhaft… Mein Brötchengeber hat mit seinem Ansatz, ASP.NET tunlichst zu vermeiden schon sehr recht.

Eine Reaktion zu “Fremde Welten”

  1. Conrad

    Zum letzten Teil: das sehe ich genauso. Ich war anfangs etwas im Zweifel, ob es so sinnvoll ist, komplett am intendierten Programmiermodell vorbeizuarbeiten – aber nach deinen Erfahrungen ist das ja jetzt wohl klar.

    Merkwürdig ist, dass sie es nicht geschafft haben, hier etwas vernünftiges vorzulegen, obwohl es mit JSP/JSTL doch ein sehr ordentliches Vorbild gibt? Okay, schon möglich, dass die JSTL erst nach asp.net kam… Aber dann könnte man die wenigstens nachbauen – das machen die doch sonst mit allem was Java ist!

Einen Kommentar schreiben