.NET 2020

Microsoft Entwickler Veteranen sind wie Opa. Immer und immer wieder die gleichen Geschichten von früher. Die Zeit und die Erinnerung verklären dabei einiges.

Damals vor 2000, da hat man als Clipper Programmierer verächtlich auf die Dbase Jungs herunter geschaut. Gestandene Entwickler haben sich mit C++ Wahlweise von Borland oder Microsoft rumgeschlagen. Die Dokumentation war gedruckt und praktisch einen Meter lang. Kein Internet, kein Source Code Copy Paste. GUI hießen nicht so und wurde per MFC oder wer cooler war OWL geschrieben. Dann kam da noch VB 6 dazu als echtes RAD (Rapid Application Development ) Tool dazu. Fast die Performance von native Code, aber in einem Zehntel der Zeit fertig. Visual Basic 6 als Entwicklungsumgebung und Runtime funktionieren heute noch. Wer die Lade und Compilezeiten von Visual Studio satt hat, soll sich mal VB 6 installieren. Da ist die Anwendung kompiliert und gestartet bevor man die F5 Taste loslassen konnte.

Dann kam Sun Microsystems, ein Serverhersteller, mit Java und plötzlich fanden das viele gut. Kurz bevor uns allen beim Platzen der Dotcomblase alles um die Ohren geflogen ist und der Millennium Bug uns doch nicht in den Untergang gerissen hat. Der gestandene Softwarenentwickler hatte gerade mal 6 Wochen Berufspraxis und war vorher Koch oder Holzfäller. Ein Zustand der sich praktisch bis heute gehalten haben muss, wenn man die Zyklen von Software aus der Jetztzeit so ansieht.

Damals ging es um alles oder nichts. Man hat gekämpft. Die überlebenden des ersten Browser Wars, erzählen sich heute noch bei Falcon Patrol auf C64 davon. COM gegen Corba, Java gegen, ja gegen was eigentlich.

Ab 2002 schicken die Redmonder .NET 1 als Kanonenfutter in die Schlacht. Visual Basic .NET, C# und hunderte Sprachen. Sogar den Feind holte man als Kollaborateur mit an Board. Visual J++. Wann hat diese Anbiederung eigentlich jemals funktioniert. J++ wurde erlegt, zerlegt und erledigt. Die Server waren plötzlich Windows .NET Server. Obwohl die Microsoft Divisionen Windows und Developer ja praktisch verfeindet waren. Die einen C++ die anderen .NET. Man kann ja auch intern Grabenkämpfe austragen.

Genug von der Vergangenheit. Mit  Steve Balmer ging der Kampfgeist über Board. Man kuschelt mit allem und jedem. Hauptsache es dient Azure. Wer früher für einen angebissenen Apfel gefeuert wurde, zeigt heute live on Stage seine überteuertes Konkurrenz Produkt mit Chrome Browser. Veganer die ein Lämmchen erwürgen und grillen oder so. Der neue Boss Satya Nadella hat auch den Killerinstinkt. Er tötet aber im eigenen Lager. Silverlight, Windows Phone, Small Business Server um nur einige Prominente zu nennen. Die Opferliste ist lang und grausam. Dafür gibts den Source nun open, ohne 10 Jahre Support.

Wobei, den Todesstoß hat Balmer von unerwarteter Seite erhalten. Ray Ozzie und sein Windows 8! Es war einen Wette auf JavaScript. Eigentlich innovativ und weitsichtig, aber gleichzeitig voll auf die Fanbase geschissen. Nach anfänglicher Begeisterung - Entgeisterung. Appstore im Enterprise Umfeld? Eine Windows API (Windows Runtime) die für JavaScript designed ist. Das Ui mit HMTL , echt jetzt? Die Frage ob .NET überhaupt weiterentwickelt wird!

Man eiert rum, hat teilweise geniales entwickelt mit dem Universal Platform Konzept und UWP. Allerdings das ein oder andere faule Ei drin. Microsoft wirkt unsicher, wie ein fallender Goliath. Das Vertrauen der Großkunden schwindet. Sind die Redmonder noch der Partner für den man sie seit NT 3.51 Zeiten hält?

SharePoint ist dabei ein gutes Beispiel. Basiert auf hauseigener ASP.NET Technologie, verkauft sich wie geschnitten Brot. Und trotzdem verkündet Microsoft eine Abkündigung nach der anderen. Wirds nur noch in Cloud geben, Yammer und so. Wenn neue Features dann weniger und später und generell, Dich lieber Kunde, dich hassen wir. Außer du schließt einen dieser wunderbaren Mietverträge ab.

So war das damals im Krieg.

Nun hat sich die Welt in der Tat weiter gedreht. Wie die 90er die Zeit des Desktops waren, waren die erste Dekade Client Server und späte muliti Tier. Das dicke .NET Framework hat einfach andere Anforderungen. Für Smart Devices ist es zu dick und für agile Anforderungen zu statisch.

Vor mehr als 5 Jahren haben sich einige unverzagte Developer in Redmond aufgemacht und das .NET Rad neu erfunden. Es war eine kleine Gruppe und sie waren voller Zweifel. .NET Version 4.6 und .NET core damals als Version 5. Im Jahre 2020 hat sich das .NET Framework lediglich um 2 Stellen hinter dem Komma geändert. Die glasklare Ansage, 4.8 und das wars. Kein WCF, kein Webforms mehr.

Dafür .NET core demnächst wieder n der 5er Version. Ein kompletter rewrite. Mit der Version 3 lassen sich UWP, Winforms und WPF Anwendungen stand alone kompilieren. Microsoft hat nach Fünf Jahren nun endgültig den .NET Stecker gezogen, aber Gott sei es gedankt, eine astreine Zukunftsstrategie hingelegt. Das neue .NET ist binär kompiliert, nicht abwärtskompatibel und mit extrem kurzen Support Zyklen versehen.

LEUTE- das DOTNET FRAMEWORK ist TOT!

Jeder muss sich Gedanken machen über fast 20 Jahre C# und VB.NET Entwicklung. Es gibt keinen sanften Migrationspfad. Wenn ihr gut dabei wart, dann läuft vieles an Backend Code aus der Klassik Welt weiter. Aber es gibt keine Garantie.

Es kommt noch schlimmer. Der Rest der hypen Welt, vor allem alles, was mit JavaScript zu tun hat, kümmert sich einen Dreck um eure Code Basis. Die ändern die API’s so schnell und grundlegend das einem schwindlig wird dabei. Das führt unter anderem dazu, das heute noch Angular 1 Projekte gepflegt werden müssen, weil es keinen Upgrade Weg gibt. Viele der Riten und Opferbräuche aus der Religionsgemeinschaft der Node Anhänger hat Einzug in unseren Kulturkreis gefunden.  Man öffnet seine Code auf Github und hinterlässt eine Schar von Menschen mit Stockholsyndrom. OSS Bibliotheken werden gestartet und beendet. Alles so Zeugs was dem Enterprise Entwickler eigentlich die Tränen in die Augen treiben müsste. Wir sind nicht dazu da Spaß zu haben. Wir werden bezahlt, weil unsere Geschäftssoftware die nächsten 20 Jahre Prozesse abarbeiten soll. Nach der Arbeit gehen wir nach Haus und züchten Hanf im Garten.

Eines hatte ich bisher noch nicht erwähnt. Die Dekade des Servers folgte auf den Desktop. Wir sind im Zeitalter der Cloud. Architekturale Vehikel der Serverless Zeit, unter anderem Azure Functions und gaaanz wichtig, Docker. Der Docker Container als Cashcow eines jeden Cloud Dienstleisters aus der Provinz. .NET Core ist das Framework für Docker. Self hosted und konfigurationsfrei. Einfach mit irgendeinem Shell oder Batch Script deployen. Ich will ehrlich zu euch sein, Seit Jahren versuche ich einen nachvollziehbaren Anwendungsfall für eine Docker basierte Microservices Architektur zu finden. Ich suche noch.

Früher hat uns Microsoft 10 Jahr Support versprochen und 20 Jahre gegeben. Erst mit .NET core 3.1 gibt es wieder einen Long Time Support (LTS) von sagenhaften 3 Jahren. Alles andere in .net Core ist schon wieder veraltet. Für .net core 2.1 gibts eine Gnadenfrist bis August 21. .NET core 3 EOF Life ist bereits 6 Monate nach Release!

Also nochmal zum mitschreiben: .NET Framework ist tot. Jede Zeile Code die heute in Webforms geschrieben wird ist für den Müll. Nun ja nicht ganz, wenn man ein wenig clever ist und weis wie core aufgebaut ist und auf Modelbinding setzt und und…

Es braucht eine Code Strategie, jetzt 2020, weil ich kann es nicht oft genug sagen, euer geliebtes .NET Framework ist nicht mehr.

Kommentare sind geschlossen