.NET ist ganz nüchtern betrachtet ein Oberbegriff für verschiedene Programmier-Plattformen, die mal ursprünglich von Microsoft Ende der 1990er entwickelt wurden – allerdings nicht der Grund für die vielen Weltuntergangstheorien waren. Bevor Sie mir jetzt aber einschlafen, weil Sie denken „OK. Also so ein technisches Entwickler-Ding.“, sollten Sie noch ein paar Dinge bedenken: .NET ist eine der wichtigsten Basis-Technologien, wenn es um individuelle Software-Lösungen oder Softwareentwicklung geht und kann damit auch einen erheblichen – aus unserer Sicht positiven – technischen, aber auch organisatorischen und betriebswirtschaftlichen Einfluss auf Ihr nächstes Softwareentwicklungsprojekt haben. Vielleicht hat schon mal ein Softwareentwickler etwas von .NET gemurmelt. Vielleicht stehen Sie auch kurz vor dem Start eines Softwareentwicklungsprojektes und alle warten mit leuchtenden Kinderaugen auf Ihre Entscheidung mit welcher Technologie nun entwickelt werden soll, oder Sie fragen sich einfach „.NET – Was ist das überhaupt?“. Für diese Fälle haben wir eine kleine Übersicht erstellt:
.NET ist im engeren Sinne ganz einfach gesagt ein Programm, ohne das bestimmte andere Programme nicht funktionieren. Das sind vornehmlich Windows-Programme, z.B. Excel-Plugins oder interne Software-Lösungen, die speziell für Ihr Unternehmen entwickelt wurden. Fragen Sie zum Spaß einfach mal Ihren Admin, der kann Ihnen das genau sagen. Aber auch große Webseiten, wie Stackoverflow oder das Azure Portal werden damit betrieben. Dieses Programm können Sie einfach als sogenanntes Windows-Feature aktivieren oder Sie downloaden und installieren es einfach. Und warum gibt es diese Abhängigkeit überhaupt? Ganz einfach: Softwareentwickler sind faul und nutzen gerne Dinge, die schon fertig sind. Wollen Sie ein Programm für Windows, Mac oder Linux entwickeln, geht das mit .NET, da hier schon jede Menge nützliche Funktionen drin sind, die man so braucht:
Deshalb wird .NET auch als Software- bzw. Programmier-Plattform bezeichnet. Es gibt also gute Gründe für einen Entwickler, so eine Softwareplattform zu nutzen. Aber auch als IT-Verantwortlicher oder Manager kommen Sie auf Ihre Kosten.
Mit ein paar Bibliotheken alleine und einer Laufzeitumgebung können Sie zwar schon einige Programme zum Laufen bringen, so richtig Spaß macht die Softwareentwicklung damit aber noch nicht. Deshalb kann man im weiteren Sinne auch noch folgende Komponenten zu .NET zählen:
Ganz schön groß dieses .NET, oder? Der riesige Funktionsumfang ist zum Glück nicht für die Katz. Am Ende können für alle erdenklichen Betriebssysteme alle erdenklichen Programme erstellt werden. Und das passiert (fast) unabhängig davon, was Sie entwickeln, wie folgt:
So! Und hier fängt es auch an, spannend zu werden. Aber alles der Reihe nach. Erstens werden einige jetzt enttäuscht sein, dass aus C# streng genommen gar kein richtiges Programm, sondern nur halbgares Byte-Kauderwelsch (IL-Code) wird. Die meiste Arbeit scheint eigentlich dieser Just-In-Time-Compiler (Jitter) aus der Laufzeitumgebung zu machen – ein richtiges Arbeitstier! Heißt aber auch: Wenn ich diesen IL-Code irgendwo anders hin verfrachte, brauche ich nur den Jitter. Der wird dann einfach vor den Karren gespannt und der Wagen rollt los. Heißt auch: Ich bezahle meinen Softwareentwickler einmal und der Code – äh der IL-Code – läuft dann im Kern auf allen Betriebssystemen (Windows, Linux, OS X, Android, iOS). Bekomme fünf zum Preis von einem. OK. Zugegeben: Im Detail stimmt das streng genommen nur für etwa 80% Prozent des Codes. Aber immerhin! Klingt auf jeden Fall nach einem guten Deal. Das Konzept hat aber noch weitere Vorteile:
Auch Ihnen wurde sicherlich als Kind das ein oder andere Märchen erzählt: Vom unerschöpflichen Gries-Töpfchen, vom Gold-Esel, vom Tischlein-Deck-Dich. Ja. Ja. Wenig machen und viel bekommen! Das kennen wir und in der Softwareentwicklung erzählt man sich das Märchen von der Plattformunabhängigkeit durch Java und .NET. Schreibe einmal Code und erhalte ein Programm für unendlich viele Betriebssysteme. Ganz so weit ist man aber noch nicht! Damit aber die wichtigsten Kernfunktionen von .NET überall mit hingenommen werden können und man zumindest den Schein vom Softwareentwicklungs-Bullerbü wahrt, hat man dafür gesorgt, dass es für die meisten Betriebssysteme eine .NET-Laufzeitumgebung gibt, in der fröhlich IL-Code haust. Die wichtigsten Vertreterinnen in dieser Runde sind:
Früher war die Welt noch in Ordnung: Es gab nur Server und PCs, Windows war das führende Betriebssystem, Microsoft-Produkte nur für Microsoft und Steve Balmer machte in hemdsärmeligen Reden die Open Source-Gemeinschaft madig. Aus dieser Zeit stammt das .NET Framework. Mit ihnen wurde der Desktop-Bildschirm Dank zusammengeklickter Windows-Forms-Anwendung mit Fenstern zutapeziert. Nicht ohne Grund: Heute wie damals lassen sich langlebige Anwendungen entwickeln, in denen ohne Zusatz-Programme alles drin ist, was Software so braucht. Außerdem laufen diese auf allen Windows-Betriebssystemen – und das sind ja bekanntlich einige:
und die endlose Geschichte ist noch lange nicht zu Ende. Und da die Herren von Microsoft ihrer Konkurrenz von Apple und Linux in nichts nachstehen wollten, kreucht und fleucht bis heute alles im .NET Framework herum, was auch auf Windows läuft:
Mono steht für das spanische Wort Affe. Na toll! Was soll man denn mit so einer Plattform entwickeln? Bananen-Software? Die Idee hinter Mono ist aber alles andere als affig: Sie erinnern sich? .NET basiert auf dem internationalen Standard der Common Language Infrastructure – unter der Nummer ISO/IEC 23271, falls Sie es genau wissen wollen. Jeder kann also prinzipiell seine eigene .NET-Laufzeitumgebung entwickelt und darauf IL-Code auszuführen – hoffentlich werden Sie auch als Entwickler wiedergeboren, um Ihr Werk zu beenden. Das Team vom sogenannten Mono-Projekt hat sich unter Leitung von Miguel de Icaza doch tatsächlich dieser Herausforderung gewidmet. Dabei sind jede Menge Mono-Implementierungen für alle möglichen Betriebssysteme entstanden:
Bei so vielen Betriebssystemen bleibt es nicht aus, dass man sich durch die eine oder andere Verrücktheit durchhacken muss – insbesondere bei Apple, da ist nicht nur das OS ein Exzentriker:
Weil man mit dem Verschenken von Software (Open Source) nicht so richtig reich wird, hat man sich vielleicht irgendwann gedacht: Irgendwie muss doch Kohle damit zu machen sein? Jedenfalls wurde Xamarin gegründet und eine gleichnamige Softwareentwicklungs-Plattform für mobile Anwendungen erschaffen, denn sowas gab es noch nicht in der Windows-Welt – über den eher bedauerlichen Versuch, Windows Phone an den Markt zu bringen, wollen wir als Microsoft-Partner lieber schweigen. Android und iOS waren und sind die unangefochtenen Plattformen: Das hat auch Microsoft erkannt. Wie also den Markt erobern? Richtig! Nachdem die harte Arbeit erledigt war, hat man sich das Unternehmen einfach einverleibt. Gut für Softwareentwickler, die mit .NET und C# in Form der Xamarin-Plattform nun auch mobile Anwendungen entwickeln können.
Das Zentrum im Microsoft Universum war lange Zeit Windows, was vor etwa zehn Jahren durchaus in Ordnung war. Mit Mobile- und Cloud-Computing war dann aber Schluss mit lustig. Schließlich kam 2016 mit .NET Core die erste offizielle .NET-Version von Microsoft heraus, die es wagte sich ins Linux- und macOS-Niemandsland zu begeben. .NET Core, .NET Framework, Mono, .NET Whatever? In dem Saustall findet sich doch keiner mehr zurecht. Deshalb hat Microsoft 2020 auch dem Spuk wieder ein Ende gesetzt und mit .NET 5 bzw. .NET 6 seine Entwicklungspfade weitestgehend vereinigt. Übrig geblieben sind zwei .NET-Versionen:
Das vereinheitlichte .NET beinhaltet einen Großteil der Bibliotheken vom .NET Framework, ist allerdings etwas störrisch, wenn es um die Bereitstellung von Windows-Anwendungen via alt hergebrachten Technologien, wie beispielsweise dem Windows-Installer geht. Viele Zeitgenossen der Softwareentwicklung können damit aber ganz gut leben. Als Entschädigung ist das Spektrum potentieller Software-Lösungen gigantisch:
Wir könnten noch stundenlang über die .NET-Softwareentwicklungs-Plattform weitererzählen – in Rücksichtnahme auf die körperliche und seelische Unversehrtheit unserer Mitmenschen lassen wir das aber. Sie müssen sich nicht alles merken, jedenfalls nicht, wenn Sie kein Softwareentwickler in unserem Berliner .NET-Team werden wollen. Ein paar Dinge, die Ihnen helfen können, die richtige Technologie für das nächste Softwareentwicklungsprojekt zu finden, sollten Sie sich aber merken:
Sollten Sie jetzt noch Zweifel hegen oder weiteren Gesprächsbedarf zu .NET und wie sich damit so Software entwickeln lässt, haben, rufen Sie uns gerne an. Wir haben bei uns in Berlin ein paar nette Plätzchen, um bei einer Tasse Kaffee einen netten Plausch über Ihr nächstes Softwareentwicklungs-Projekt zu führen – gerne auch mit ein paar leckeren Schnittchen.