Warum wir in der Entwicklung .NET einsetzen

Digitalisierungsprojekte und Softwareentwicklung hat viel mit dem Einsatz der geeigneten Tools für den richtigen Zweck zu tun.

Heute sehen wir uns an, warum wir .NET für viele Softwareprojekte einsetzen, warum es auch für Kunden (ein wenig) relevant ist und in welchen Fällen wir auf andere Plattformen und Sprachen zurückgreifen.

Unabhängig davon, ob du an Technik interessiert sind oder nicht: als Entscheidungsgrundlage kann es oft interessant sein, warum deine Lieferanten bestimmte Werkzeuge oder Materialien einsetzen.

In der Softwareentwicklung ist das oft noch wichtiger als in anderen Bereichen, da es nicht nur um die Qualität eines Basisproduktes geht: sondern auch darum, ob du als Kunde oder ein anderer Dienstleister ein fertiges Produkt übernehmen oder weiterentwickeln kann, solltest du es mal nicht mehr bei deinem aktuellen Dienstleister betreuen lassen wollen.

Was ist .NET?

.NET ist eine von Microsoft entwickelte Plattform für die Entwicklung und Ausführung von Anwendungen. Ursprünglich im Jahr 2001 veröffentlicht, hat sich .NET seitdem kontinuierlich weiterentwickelt und bietet heute eine umfassende Reihe von Tools und Bibliotheken zur Erstellung robuster, leistungsstarker und skalierbarer Anwendungen.

2016 hat Microsoft die Plattform vollkommen überholt. Vergangen sind die Zeiten in denen .NET direkt in Windows integriert war. Neu war dass die Plattform jetzt auch plattformunabhängig ist. Applikationen können unter Linux ausgeführt werden. IIS ist nur noch eine Möglichkeit, Applikationen auszuführen. Kestrel ist der neue, in die Plattform integrierte HTTP-Server.

Mittlerweile ist seit dem 14.11.2023 die 11. Version dieser neuen Generation .NET 8 erschienen.

Warum ist .NET immer noch relevant?

  1. Vielseitigkeit: Eine der größten Stärken von .NET ist seine Fähigkeit in verschiedenen Anwendungsszenarien eingesetzt zu werden. Seine Stärken hat .NET im Bereich der Webapplikationen und Windows-Client-Applikationen. Zusätzlich gibt es die Möglichkeit, native AI-Integrationen, native CLI-Apps, Browser-Apps mit Blazor oder Mobile Apps mit .NET MAUI zu entwickeln.

  2. Umfangreiche Bibliotheken: .NET bietet Zugriff auf eine riesige Sammlung von Bibliotheken und APIs. Viele der Basis-Frameworks werden von Microsoft entwickelt, haben mittlerweile hohe Qualität und sind daher oft in Projekten gesetzt. Ein wesentlicher Vorteil daraus ist, dass sich Entwickler:innen schneller in neue Projekte einarbeiten können.

  3. Gute Weiterentwicklungsstrategie: Als .NET Core 2016 gestartet ist war .NET oft in der Technologieentwicklung hinterher, gerade die enge Bindung an den Release-Zyklus von Windows hat die Technologie in der Weiterentwicklung eingeschränkt. Seitdem hat Microsoft mutigere Entscheidungen getroffen und die Plattform wieder zu einem Innovator gemacht. Vor allem die neue Fähigkeit von .NET Core, mehrere unterschiedliche Versionen nebeneinander zu installieren gibt Operationsteams die Möglichkeit gefahrlos unterschiedliche Applikationen auf unterschiedlichen Versionen am selben Server zu betreiben. Damit war es möglich, Entwicklungen durchzuführen, die bestehende Applikationen vielleicht brechen würden. Die Vorteile daraus:

  • Unterstützung aktueller Standards (zB GRPC, HTTP/3)
  • Verbesserte Performance in der Plattform
  • Anpassungen an neue Betriebsformen wie Container
  • Vereinfachung der Erstellung neuer Appikationen
  1. Starke Community: Trotz seiner Ursprünge in Microsoft-Produkten hat sich .NET zu einer weit verbreiteten Technologie entwickelt, die von vielen Entwickler:innen weltweit verwendet wird. Nach Developerumfrage von Stackoverflow 2023 verwenden 27% der befragten Entwickler:innen C#, die wichtigste Programmiersprache für .NET. Microsoft entwickelt die wesentlichsten Teile der Plattform als Opensource und ermöglicht es so allen Entwickler:innen Fehler einfacher zu identifizieren, Vorschläge für Verbesserungen einzubringen und selbst Verbesserungen zu implementieren, wenn nötig.

Vergleich mit anderen Programmierumgebungen

Wie sieht es im Vergleich zu anderen Programmiersprachen und -plattformen aus? Wie setzen wir andere Plattformen ein?

  1. Java: Wird immer als Hauptkonkurrent für .NET gesehen. Java hat den Vorteil der größeren Community, vor allem im Enterprise Software Bereich. Das hat den Vorteil, dass es für ein Problem oft viele verschiedene Frameworks gibt, die das Problem leicht unterschiedlich lösen. Wir verwenden Java nicht in der Entwicklung, verwenden aber gerne Applikationen die in Java erstellt wurden.
  2. Go: Go ist im Vergleich zu anderen Sprachen in dieser Liste eine relativ neue Sprache. Sie ist sehr gut für Webanwendungen und CLI-Anwendungen geeignet die initial wenig Hardwareressourcen brauchen. Deswegen wird sie gern auch für Infrastruktursoftware für Cloudnative-Anwendungen verwendet. Kubernetes und Terraform sind wichtige Tools die in Go implementiert sind. Wir verwenden derzeit Go nicht in der Entwicklung, verwenden aber viele Tools die in Go implementiert wurden.
  3. Javascript: Javascript ist die meist-verwendete Programmiersprache. Sie ist hochflexibel, hat sehr gutes Tooling und eine breite Anwendungsbasis. Durch Browser, Node.js und andere Frameworks läuft es auf fast jedem Gerät der Welt. Wir verwenden Javascript und Typescript gerne für die Optimierung von clientseitigen UIs.
  4. Python vs .NET: Python ist eine vielseitige Sprache, die in verschiedenen Bereichen eingesetzt wird, von der Webentwicklung bis zur Datenanalyse. Vor allem in der Datenanalyse, aber auch für kleine Integrationen und CLI-Applikationen verwenden wir Python sehr gerne.

Fazit

Die Entwicklung eines neuen Softwareproduktes in .NET ist heute immer noch eine nachhaltige Investition.

Die Plattform wird aktiv weiterentwickelt, es gibt viele erfahrene aber auch neue Entwickler:innen für die Plattform und die Frameworks werden an neue Anwendungsfälle angepasst.

Weiterführende Links

Quelle: Stackoverflow Developer Survey 2023 | Programmiersprachen: https://survey.stackoverflow.co/2023/#most-popular-technologies-language