Programmiersprache – C#

Die Programmiersprache C# (gesprochen: C Sharp) ist eine seit 2001 von Microsoft veröffentlichte Programmiersprache, welche sich seitdem auf Erfolgskurs zu einer der meist angewendeten Programmiersprachen entwickelt. C# ist international anerkannt und genormt. Neben C++ und Java gehört C# zu den mächtigsten und heute verbreitesten Hochsprachen. Während C++ eine hybride Sprache ist, sind Java und C# weitgehend objektorientierte Programmiersprachen.

Die Programmiersprache C# findet in Wissenschaft und vor allem in Wirtschaftsunternehmen verbreitete Anwendung und wird teilweise auch von Microsoft selbst für systemeigene Programme des Betriebssystems eingesetzt. In der Industrie, im Handel sowie in Dienstleistungsbranchen (wie z. B. der Versicherungsbranche) lassen sich mit C# entwickelte .Net-Anwendungen finden.

Mit C# lassen sich vielfältige Anwendungen realisieren, vom Dienstprogramm im Hintergrund über verteilte Anwendungen, Desktop- und Webanwendungen bis hin zur Smartphone-Applikation (App). C# Anwendungen laufen im Microsoft .Net Framework, welches so nur für Betriebssysteme von Microsoft existiert. C#-Quellcode wird anders als C++-Quellcode und ähnlich wie Java-Quellcode nicht einmalig direkt in hardware-spezifischen Maschinencode übersetzt, sondern zur Laufzeit durch einen sogenannten JIT-Compiler (Just-In-Time-Compiler). Über Betriebssysteme von Microsoft hinweg besteht eine sogenannte Plattformunabhängigkeit durch die Common Language Runtime (CLR) des .Net Frameworks. C#-Quellcode werden in eine Zwischensprache (Intermediate Language Code) übersetzt, was in ausführbare .exe-Dateien resultiert. Das Starten der .exe-Dateien führt dazu, dass der Just-In-Time-Compiler der CLR den Zwischencode in Maschinencode übersetzt. Ohne .Net-Framework sind diese .exe-Dateien nicht ausführbar.

Während C++ Programme für unterschiedliche Hardware und Betriebssysteme (Software) speziell kompiliert (das heißt: in Maschinencode übersetzt) und ggf. vorher angepasst werden müssen, laufen C#-Anwendungen unabhängig von Hardware und Betriebssystem, vorausgesetzt, das .Net Framework ist vorhanden und funktionstüchtig. Das .Net Framework lässt sich in der aktuellsten Version auf jedem Windows-PC (ab Windows xp) nachinstallieren. Die aktuelle Version ist das .Net Framework 4.0  und auf Windows 7 Rechnern standardmäßig installiert. Ein abgespecktes Framework steht zudem für Windows Phone 7 und entsprechend lizensierte Endgeräte zur Verfügung.

Leider gilt die Plattformunabhängigkeit nicht für andere Systeme z. B. für unix-basierte Betriebssysteme, wie beispielsweise Linux oder Apple Mac OS. Das Open-Source-Projekt Mono versucht als eine gegenüber dem .Net Framework kompatiblen Entwicklungs- und Laufzeitumgebung der praktischen Plattformunabhängigkeit nachzuhelfen und erweitert so die Lauffähigkeit von .Net-Anwendungen auf unix-basierten Systemen, hinkt jedoch mit der Entwicklung hinterher und stellt daher keine zuverlässige Alternative zum Microsoft .Net Framework dar.

Informationstechnische und wirtschaftlichte Vorteile von C#:

  • C# liegt im Trend und gehört neben Java und C++ zu den am weitverbreitesten höheren Programmiersprachen.
  • C# wird am Arbeitsmarkt sehr stark nachgefragt, eine Kehrtwende des Trends ist für die nächsten Jahre nicht zu erwarten.
  • C# ist standardmäßig Managed-Code und damit sehr sicher gegen Speicher-Falschbehandlung und Sicherheitslücken. Wenn Unmanaged Code (unsicherer Code) erwünscht ist, kann dieser ebenfalls ausgeführt werden.
  • Große Anwendungsvielfalt: Konsolen-, Desktop-, Server-, Webanwendung sowie Anwendungen für mobile Endgeräte.
  • Mächtige Einbindung in Microsoft Betriebssysteme.
  • Umfangreiche und mächtige Klassen-Bibliotheken aus dem .Net Framework, so müssen alltägliche Programmierlösungen (z. B. Zufallszahlengenerierung) nicht neu erfunden werden.
  • Sprachneutralität gegenüber anderen .Net-Sprachen. So ist es möglich, Teile einer Anwendung in C# zu entwickeln und andere Teile in Visual Basic .NET. Dieser Vorteile hilft Entwickler-Teams mit unterschiedlichen Programmiersprachkenntnissen und -gewohnheiten.
  • Plattformunabhängigkeit zumindest auf Microsoft Betriebssystemen.

Informationstechnische und wirtschaftliche Nachteile von C#:

  • Ausführungsgeschwindigkeit von C#-Anwendungen gilt unter den just-in-time kompilierten Sprachen als sehr schnell. An die hohe Ausführungsgeschwindigkeit von in C/C++ plattformabhängig geschriebenen Anwendungen kommt jedoch keine C#-Anwendung heran.
  • Echtzeitanwendungen sind in C# nicht oder nur eingeschränkt möglich.
  • Eingebettete Systeme (Embedded Software Developing bzw. hardwarenahe Software-Entwicklung wie z. B. Mikrocontroller-Programmierung) lässt sich mit C# grundsätzlich nicht oder nur mit vielen technischen Hürden realisieren. Die hardwarenahe Entwicklung bleibt weiterhin von C/C++ beherrscht.
  • Plattformunabhängigkeit ist mit Microsoft Betriebssystemen (.Net-Framework) und dem stetig hinterher hinkendem Mono nur sehr eingeschränkt vorhanden. Bei breiter Plattformunabhängig bleibt Java als Hochsprache vorherrschend.
  • Professionelle Anwendungen zu gewerblichen Zwecken bedingen meistens die Entwicklungsumgebung von Microsoft Visual Studio und entsprechenden Lizenzen, was .Net-Entwicklung in der Regel teurer macht als z. B. Java-Entwicklung.
  • Der Quellcode ausführbarer Dateien ist auf Grund der Intermediate Language grundsätzlich in C# rückführbar und somit auch einsehbar. Dieses Problem lässt sich jedoch auch mit verschiedenen Tricks umgehen oder zumindest abmildern.

Entwicklungsumgebung für C#-Programmierung

Für C#-Anwendungsentwicklung gibt es eine große Vielzahl von Open-Source-Entwicklungsumgebungen sowie die kostenlose Entwicklungsumgebung Visual C# 2010 Express direkt von Microsoft. Die professionellste und mit Abstand leistungsfähigste, jedoch kostenpflichtige Entwicklungsumgebung ist Microsoft Visual Studio .Net.

Für Schüler und Studenten gibt es jedoch die Möglichkeit des kostenlosen Erwerbs einer Lizenz für Microsoft Visual Studio .Net über MSDN Academic Aliance (MSDN AA), welche jedoch nur zu Ausbildungszwecken und nicht gewerblich genutzt werden darf. Wer Schüler einer höheren Schule mit Informatik-Bezug oder Student einer Hochschule ist und hierüber nichts weiß, sollte sich bei der (Hoch-)Schulleitung erkundigen – Es könnte sich lohnen.

1 Gedanke zu “Programmiersprache – C#

Kommentare sind geschlossen.