Was ist C#?

,
matrix 1799653 640

Bei C# (auch CSharp) handelt es sich um eine typsichere, objektorientierte Programmiersprache mit der sich eine Vielzahl unterschiedlicher Anwendungen entwickeln lässt. Der Chefentwickler der Programmiersprache ist Anders Hejlsberg, der in den letzten Jahren Aufmerksamkeit mit seiner neuen Programmiersprache Typescript gewann.

Entwicklungsgeschichte der Programmiersprache

CSharp wurde im Auftrag von Microsoft grundsätzlich plattformunabhängig entwickelt, ist jedoch in erster Linie für den Einsatz in der .NET-Umgebung vorgesehen und für die Verwendung in diesem Kontext optimiert. Historisch gesehen wurde mit C# fast ausschließlich für die Windows-Plattform entwickelt. Durch den Einsatz der Xamarin-Plattform ist es heutzutage jedoch auch möglich, Anwendungen in CSharp für macOS, Android und iOS zu entwickeln. Darüber hinaus gibt es mittlerweile durch .NET Core auch eine offizielle Unterstützung für macOS und Linux-Distributionen. Des Weiteren können Entwickler mit .Net Native und CoreRT plattformunabhängigen Code für alle Plattformen erzeugen, die mit der Programmiersprache C++ kompatibel sind.

CSharp war bis zu der Version 2 bei der ECMA (European Computer Manufacturers Association) und der ISO (Internationale Organisation für Normung) als Standard eingetragen. Demzufolge erschienen in regelmäßigen Abständen umfangreiche Erweiterungen für die Programmiersprache, die ausschließlich durch Microsoft konzipiert wurden. Seit 2014 sind dank der Entwicklung des Referenz-Compilers auch Beiträge aus der Entwickler-Community möglich.

laptop 3174729 1920Wodurch zeichnet sich C# aus?

C# greift Konzepte der Programmiersprachen C++, Java, C sowie Delphi und Haskell auf. Einige Konzepte von C++, die als problematisch und unsicher gelten wie zum Beispiel Zeiger (Pointer), sind in CSharp nur im sogenannten „unsicheren Code“ zugelassen. Dieser kann ausschließlich in Zonen mit beschränkten Rechten ausgeführt werden. Wird C# in der .NET-Umgebung eingesetzt, verfügt die Sprache über Unterstützung für Delegate und Attribute. Attribute bieten beispielsweise die Möglichkeit, Informationen über eine bestimmte Klasse, Methode oder ein Objekt zu speichern, die sich dann zur Laufzeit auswerten lassen. Mit einem Delegat kann man auf einzelne Methoden einer Klasse verweisen. Dieses Konzept beruht auf der Funktionsweise von Funktionszeigern, wie sie beispielsweise in der Programmiersprache C zum Einsatz kommen. Ab der Version 2.0 von CSharp, die zusammen mit dem .NET-Framework ausgeliefert wurde, unterstützt die Programmiersprache von Microsoft neben anonymen Methoden und generischen Typen auch Generatoren und partielle Klassen.

Welche Anwendungen lassen sich mit C# entwickeln?

Mit C# lässt sich eine Vielzahl unterschiedlicher Anwendungen erstellen, wie beispielsweise:
– Traditionelle Anwendungen auf Windows-Forms-Basis mit grafischer Benutzeroberfläche und ereignisorientierter Programmierung.
– Performante Datenbankenanwendungen, die mit einer Vielzahl unterschiedlicher Datenbankensystemen genutzt werden können, wie beispielsweise SQL Server, MySQL oder PostgreSQL.
– Dynamische Webanwendungen, bei denen die Webseite als interaktive Benutzeroberfläche dient und die ein erstklassiges Nutzererlebnis bietet.

Mehr zum Thema:
Was ist Cache?

Integrierte Entwicklungsumgebungen (IDE) und Compiler

Neben der dominierenden integrierten Entwicklungsumgebung Microsoft Visual Studio, die von einer Vielzahl an C#-Entwicklern genutzt wird, gibt es mittlerweile auch andere Entwicklungsumgebungen für CSharp, wie zum Beispiel:
– JetBrains
Notepad++
– Xamarian Studio
– MonoDevelop
– Balite

code 1970468 1280Die Funktionsweise des C#-Compilers orientiert sich sehr stark an der Java-Virtual-Machine, die bei der Programmiersprache Java zum Einsatz kommt. Der Compiler übersetzt nicht unmittelbar in Maschinensprache, sondern in eine spezielle Zwischensprache mit der Bezeichnung „Common Intermediate Language“. Für CSharp sind vier unterschiedliche Compiler erhältlich, und zwar:
der hauseigene Compiler von Microsoft
– der Xamarian-Compiler
– der DotGNU-Compiler für GNU/Linux-Distributionen
– der CoreRT/.Net Native-Compiler