C# (C-Sharp)

Was ist C#?🤔

C# (ausgesprochen "C-Sharp") ist eine moderne, objektorientierte, typsichere und vielseitige Programmiersprache. Sie wurde um das Jahr 2000 von Microsoft unter der Leitung von Anders Hejlsberg als Teil der .NET-Initiative entwickelt. C# kombiniert die Leistungsfähigkeit von Sprachen wie C++ mit der Produktivität und Einfachheit von Sprachen wie Visual Basic oder Java, wobei die Syntax stark von C++ und Java beeinflusst ist. Ursprünglich primär für die Entwicklung auf der Windows-Plattform konzipiert, ist C# dank der Weiterentwicklung des .NET-Frameworks zu .NET Core und den nachfolgenden .NET-Versionen (.NET 5, 6, 7, 8 usw.) heute eine plattformunabhängige Sprache, die auf Windows, macOS und Linux läuft.

Als Kernsprache der .NET-Plattform profitiert C# von deren Laufzeitumgebung (Common Language Runtime - CLR) und der umfangreichen Basisklassenbibliothek (Base Class Library - BCL). Die CLR bietet Dienste wie automatische Speicherverwaltung (Garbage Collection), Sicherheit und Ausnahmebehandlung. C#-Code wird typischerweise in eine Zwischensprache (Common Intermediate Language - CIL) kompiliert, die dann zur Laufzeit von der CLR ausgeführt wird.

Wichtige Sprachmerkmale

C# zeichnet sich durch eine Reihe moderner Sprachmerkmale aus, die die Entwicklung robuster und wartbarer Software unterstützen:

  • Starke Typisierung und Typsicherheit: Fehler durch inkompatible Datentypen werden bereits zur Kompilierzeit erkannt, was die Stabilität von Anwendungen erhöht.
  • Objektorientierung: C# unterstützt alle grundlegenden OOP-Konzepte vollständig: Kapselung, Vererbung, Polymorphie und Abstraktion (durch Klassen, Interfaces, abstrakte Klassen).
  • Komponentenorientierung: Sprachmerkmale wie Eigenschaften (Properties), Ereignisse (Events) und Delegaten (type-safe Funktionszeiger) erleichtern die Erstellung wiederverwendbarer Softwarekomponenten.
  • Automatische Speicherbereinigung (Garbage Collection): Entwickler müssen sich in der Regel nicht um die manuelle Freigabe von Speicher kümmern; dies übernimmt die CLR.
  • Language-Integrated Query (LINQ): Bietet eine einheitliche und ausdrucksstarke Syntax zur Abfrage von Daten aus verschiedenen Quellen (z.B. Objektkollektionen, Datenbanken, XML) direkt in der Sprache.
  • Asynchrone Programmierung (async/await): Vereinfacht das Schreiben von Code, der nebenläufige Operationen (z.B. Netzwerkanfragen, Datei-I/O) ausführt, ohne die Anwendung zu blockieren, was besonders für reaktionsfähige Benutzeroberflächen und skalierbare Serveranwendungen wichtig ist.
  • Weitere Merkmale: Umfassende Ausnahmebehandlung, Generics zur Erstellung typsicherer und wiederverwendbarer Datenstrukturen und Algorithmen, Attribute zur Deklaration von Metadaten.

Typische Anwendungsbereiche

Dank seiner Vielseitigkeit und der Leistungsfähigkeit der .NET-Plattform wird C# in einer breiten Palette von Anwendungsbereichen eingesetzt:

  • Webentwicklung: Erstellung von modernen Webanwendungen, Web-APIs und Microservices mit ASP.NET Core, einem leistungsstarken und plattformübergreifenden Framework.
  • Desktop-Anwendungen: Entwicklung von grafischen Benutzeroberflächen für Windows mit Technologien wie Windows Presentation Foundation (WPF), Windows Forms oder der Universal Windows Platform (UWP). Mit .NET MAUI (Multi-platform App UI) können auch plattformübergreifende Desktop-Apps erstellt werden.
  • Spieleentwicklung: C# ist die primäre Skriptsprache für die populäre Spiel-Engine Unity, was sie zu einer der wichtigsten Sprachen in der Spieleindustrie macht.
  • Mobile Entwicklung: Erstellung nativer Apps für iOS und Android von einer gemeinsamen Codebasis aus mit .NET MAUI (Nachfolger von Xamarin.Forms).
  • Cloud Computing: Entwicklung und Bereitstellung skalierbarer Anwendungen und Dienste auf Cloud-Plattformen, insbesondere Microsoft Azure, das eine tiefe Integration mit .NET bietet.
  • Enterprise-Anwendungen: Bau großer, datenintensiver Geschäftsanwendungen für Unternehmen.

Das .NET Ökosystem und Plattformunabhängigkeit

C# ist untrennbar mit dem .NET-Ökosystem verbunden. Dieses umfasst die Laufzeitumgebung (CLR), die Basisklassenbibliothek (BCL) und eine Vielzahl von Frameworks und Werkzeugen. Die CLR ist verantwortlich für die Code-Ausführung, Speicherverwaltung, Sicherheit und andere Laufzeitdienste. Die BCL stellt eine riesige Sammlung von wiederverwendbaren Typen und Funktionen für alltägliche Programmieraufgaben bereit, von Dateizugriff und Netzwerkkommunikation bis hin zu Datenstrukturen und Kryptografie.

Ein entscheidender Schritt war die Entwicklung von .NET Core (ab 2016) als Open-Source- und plattformunabhängiger Nachfolger des ursprünglichen, Windows-gebundenen .NET Frameworks. Seit .NET 5 (veröffentlicht 2020) gibt es eine vereinheitlichte .NET-Plattform, die die Stärken von .NET Framework und .NET Core vereint und kontinuierlich weiterentwickelt wird (z.B. .NET 8 im November 2023). Dies bedeutet, dass mit C# entwickelte Anwendungen heute nativ auf Windows, macOS und verschiedenen Linux-Distributionen laufen können. Als primäre Entwicklungsumgebung dient Microsoft Visual Studio, eine sehr mächtige IDE, aber auch leichtgewichtige Editoren wie Visual Studio Code werden in der C#-Entwicklung häufig eingesetzt.

Zurück