Thomas Bandt

Über mich | Kontakt | Archiv

ASP.NET – quo vadis?

In den letzten Wochen hatte ich die Gelegenheit, nach mehr als 13 Jahren Webentwicklung mit Microsoft-Technologien einmal wieder innezuhalten und über den Tellerrand zu schauen.

Nach meinen ersten eher kläglichen Gehversuchen mit PHP ab Ende der Neunziger des vergangenen Jahrhunderts [sic!] war es 2001 schließlich ASP, was bei mir für den großen Aha-Effekt und für dauerhafte Begeisterung sorgte. Nicht weil VBScript so schön gewesen wäre – aber es war einfach zu verstehen, unglaublich schnell und die Lernkurve war flach.

Das konnte man schon von ASP.NET und den neuen WebForms nicht mehr behaupten. Es dauerte bis Anfang 2004, als ich hier schließlich den Einstieg in die damalige Version 1.1 fand und letztendlich dann doch alles darauf umstellte, was irgendwie in meiner Verantwortung lag.

Wer WebForms nur von Erzählungen her kennt, der wird kaum verstehen wie man sich (und dem Web) das antun konnte, aber ganz ehrlich: es funktionierte. Und wenn man ein bisschen darauf aufpasste, was man wo tat – also z.B. für öffentliche Websites auf Postbacks und damit kiloweise ViewState verzichtete – konnte man gute, flexible und sehr performante Sachen damit bauen (z.B. dieses Blog und dutzende weiterer Seiten von mir aus dieser Zeit).

Das mag dann auch der Grund dafür gewesen sein, weshalb ich vor 7 Jahren zunächst recht skeptisch war, als die ersten Previews von ASP.NET MVC auftauchten.

Mein Fazit von damals hatte nicht lange Bestand – es dauerte nicht mehr lang und alles, was ich irgendwo auf der grünen Wiese bauen konnte, baute ich – natürlich – mit ASP.NET MVC.

Das war allerdings auch die Zeit, als es noch legitim war, Formular-Validierungen beispielsweise ausschließlich serverseitig durchzuführen. Ich glaube JavaScript habe ich damals in Form von jQuery höchstens benutzt, um hier und da ein DIV zu toggglen ;-).

Heute sind wir wieder ein gewaltiges Stück weiter: gerade bei Webanwendungen ist sehr viel Logik ins Frontend gewandert, was sich am – die serverseitigen Technologien übergreifenden – Erfolg von AngularJS & Co. zeigt.

ASP.NET MVC ist heute bestenfalls noch dafür da, das Ganze zu orchestrieren und Styles, diverse Libraries und die HTML-Views zusammenzustecken.

Die serverseitige Logik steckt normalerweise in einem eigenen Projekt, das mit ASP.NET Web API läuft und das nichts als JSON entgegennimmt und wieder ausspuckt.

Visual Studio ist dabei über all die Jahre eine gute Entwicklungsumgebung geblieben, und heute mit den Add-ons ReSharper, Web Essentials und Web Workbench in meinen Augen noch immer ein Werkzeug von hoher Qualität.

Doch trotz des .NET Frameworks unter der Haube und der IDE von Microsoft ist doch nicht zu leugnen, dass sich der überwiegende Teil der Nummer nicht mehr um Technologien aus Redmond dreht: AngularJS als eigenes Frontend-Framework, Sass für eigene Stylesheets und Bootstrap für den Rahmen – all das kann man genauso gut auch am Mac oder unter Linux entwickeln.

Dazu kommt, dass ich in meinen letzten Projekten auch auf anderen Ebenen die Microsoft-Welt mal bewusst und mal unbewusst verlassen habe. So haben wir z.B. für Whatstays im Backend auf RavenDB, MongoDB und PostgreSQL gesetzt, aber nicht auf den SQL Server, obwohl ich den seit der 2000er Variante überall im Einsatz hatte.

Und nur um eine kleine Webanwendung zu betreiben, deren überwiegender Teil von der serverseitigen Plattform vollkommen unabhängig ist, fühlt es sich manchmal auch an, als würde man mit Kanonen auf Spatzen schießen.

Anlass genug, mich einmal mit Alternativen zu beschäftigen.

Ich habe das natürlich auch genutzt, um zu überlegen, was die Zukunft bringen mag – oder besser, was man in der Zukunft bringen muss, um noch vorne dabei sein zu können. Dass .NET gerade im Enterprise-Bereich weiter eine bedeutende Rolle spielen wird, ist unbestritten. Aber ebenso wenig kann man darüber diskutieren, dass das nächste Facebook oder Google eher auf Open Source-Technologien basieren wird, als auf .NET.

Das im Hinterkopf habe ich mir verschiedene Umgebungen angeschaut: die JVM (Java, Scala; Spring, Play etc.), Django (Python), Ruby on Rails (Ruby), PHP (nein, nicht wirklich) und Node.JS (JavaScript).

Die Java-Welt ist im Enterprise-Bereich ebenso stark vertreten wie .NET, dazu setzen auch einige größere Startups darauf. Sicherlich kein schlechter Stack, aber allein die Unzahl der verfügbaren Web Frameworks lässt einen Umstieg schon zum Lottospiel werden. Rein technologisch für mich keine Verbesserung, weshalb ich da die Finger von lasse, wenn ich nicht durch irgendeinen blöden Zufall da hineinrutsche (von C# zu Java ist es ja nur ein Katzensprung).

Django und Ruby on Rails profitieren von zwei schönen Sprachen, wobei das Python-Lager ja schon sehr gespalten scheint, weil der Sprung von Sprachversion 2 zu 3 so groß sein soll. Beide Kandidaten sind in der Startup-Bubble durchaus gern gesehen, im gesamten Markt spielen sie aber nach meiner Wahrnehmung eher eine marginale Rolle.

Node.js hingegen ist “the cool kid on the block”. Nicht mehr in den Kinderschuhen und von einigen großen Playern wie PayPal, Yahoo und LinkedIn inzwischen großflächig eingesetzt. Und mit einem nicht zu unterschätzenden Vorteil: Die Lernkurve ist (selbst erprobt) flach, das ganze Ding ist sehr schlank, auf jeder beliebigen Plattform lauffähig und die Sprache dahinter beherrschen alle guten Fullstack-Webentwickler: JavaScript.

Zwar verbindet mich mit JavaScript eine Art Hassliebe, aber schreiben muss ich es am Client sowieso. Bzw. kann ich auch auf TypeScript oder Coffeescript und demnächst AtScript setzen und mir diverse Painpoints durch Tooling lösen lassen, wie es bei CSS mit Less oder Sass inzwischen ja auch gemeinhin akzeptiert ist. Und mit Ecma Script 6 werden ja eh Milch und Honig fließen.

Fazit: Ich schätze ASP.NET sehr, aber die Zeit ist reif für ein paar Experimente. Mehr vielleicht in Kürze hier ;-).

Kommentare

  1. René schrieb am Mittwoch, 12. November 2014 10:00:00 Uhr:

    Ich habe mich selbst in Deinem Beitrag wieder gefunden. Ich bin auch seit der ersten Stunde (ASP :)) dabei und schaue auch immer wieder über den Tellerrand. Bei Datenbanken, etc. ist das ja recht einfach mal was neues zu probieren. Aber grade bei serverseitigem code überlege ich seit Wochen, was ich mir als alternative rauspicken soll. Derzeit tendiere auch ich zu node. Ich bin mal auf Deine weiteren Erfahrungen gespannt.
  2. Thomas schrieb am Mittwoch, 12. November 2014 22:20:00 Uhr:

    Und dann passierte heute das: http://blog.thomasbandt.de/39/2439/de/blog/net-wird-open-source-und-kommt-auf-mac-linux.html ;-)
  3. René schrieb am Mittwoch, 12. November 2014 22:27:00 Uhr:

    Ich war auch sehr beeindruckt von den Ankündigungen. Ich bin sehr gespannt :)


« Zurück  |  Weiter »