Skip to content

1. Einleitung

Das PDF dieses Dokuments ist auf Englisch verfügbar |HIER|.

Die Beispiele in diesem Dokument sind unter |HIER| verfügbar.

C# ist eine relativ neue Sprache. Sie war seit 2000 in aufeinanderfolgenden Beta-Versionen verfügbar, bevor sie im Februar 2002 offiziell veröffentlicht wurde, zeitgleich mit der .NET 1.0-Plattform von Microsoft, mit der sie verbunden ist. C# kann nur in dieser Ausführungsumgebung ausgeführt werden. Sie stellt den darin laufenden Programmen eine Vielzahl von Klassen zur Verfügung. Als erste Annäherung lässt sich sagen, dass die .NET-Plattform eine Ausführungsumgebung ist, die einer Java-Virtual-Machine entspricht. Es gibt jedoch zwei Unterschiede:

  • Java läuft seit seiner Einführung auf verschiedenen Betriebssystemen (Windows, Unix, Macintosh). Im Jahr 2002 lief die .NET-Plattform nur auf Windows-Rechnern. In den letzten Jahren hat das Mono-Projekt [http://www.mono-project.com] es ermöglicht, die .NET-Plattform auf Betriebssystemen wie Unix und Linux auszuführen. Die aktuelle Version von Mono (Februar 2008) unterstützt .NET 1.1 und Elemente von .NET 2.0.
  • Die .NET-Plattform kann Programme ausführen, die in verschiedenen Sprachen geschrieben sind. Dazu muss der Compiler lediglich IL-Code (Intermediate Language) erzeugen können, der dann von der virtuellen .NET-Maschine ausgeführt wird. Alle .NET-Klassen stehen kompatiblen .NET-Sprachen zur Verfügung, was die Unterschiede zwischen den Sprachen tendenziell aufhebt, da Programme diese Klassen intensiv nutzen. Die Wahl einer .NET-Sprache ist somit eher eine Frage des Geschmacks als der Leistung.

Im Jahr 2002 nutzte C# die .NET 1.0-Plattform. Damals war C# weitgehend eine „Kopie“ von Java und .NET eine Klassenbibliothek, die der der Java-Entwicklungsplattform sehr ähnlich war. Beim Erlernen der Sprache konnte man von einer C#-Umgebung in eine Java-Umgebung wechseln, ohne sich fehl am Platz zu fühlen. Es gab sogar Tools zur Konvertierung von Quell -Code von einer Sprache in die andere. Seitdem haben sich die Dinge weiterentwickelt. Jede Sprache und jede Entwicklungsplattform hat nun ihre eigenen Besonderheiten. Es ist nicht mehr so einfach, Kenntnisse von einem Bereich in einen anderen zu übertragen.

C# 3.0 und das .NET 3.5-Framework bringen viele neue Funktionen mit sich. Die wohl wichtigste ist LINQ (Language INtegrated Query), die es ermöglicht, Objektsequenzen auf einheitliche Weise abzufragen – ähnlich wie in der SQL-Sprache – aus In-Memory-Strukturen wie Arrays und Listen, Datenbanken (derzeit nur SQL Server – Stand Februar 2008) oder XML-Dateien.

Dieses Dokument ist kein umfassender Kurs. So wird beispielsweise LINQ nicht behandelt. Es richtet sich an Personen, die bereits über Programmierkenntnisse verfügen und die Grundlagen von C# kennenlernen möchten. Es handelt sich um eine Überarbeitung des ursprünglichen Dokuments, das 2002 veröffentlicht wurde.

Mehrere Bücher haben mir beim Verfassen dieses Kurses geholfen:

Für die Version von 2002:

  • Professional C# Programming, Editions Wrox
  • C# und .NET, Gérard Leblanc, Editions Eyrolles

Damals fand ich beide Bücher ausgezeichnet. Gérard Leblanc hat seitdem aktualisierte Ausgaben veröffentlicht, darunter die folgenden:

  • C# und .NET 2005, Gérard Leblanc, Eyrolles Verlag

Für die Überarbeitung von 2008 habe ich folgende Quellen verwendet:

  • das Originaldokument von 2002. Dieses Dokument, eine Kopie meines Java-Kurses, enthielt sowohl Tippfehler als auch schwerwiegendere Fehler, wie beispielsweise die Behauptung, dass primitive Typen wie System.Int32 Klassen seien, obwohl es sich dabei um Strukturen handelt. Mea culpa...
  • die MSDN-Dokumentation zu Visual Studio Express 2008
  • das Buch „C# 3.0 in a Nutshell“ von Joseph und Ben Albahari, erschienen bei O'Reilly, eines der besten Programmierbücher, die ich je gelesen habe.

Die Quellcodes für die Beispiele in diesem Dokument sind unter [http://tahe.developpez.com/dotnet/csharp/] verfügbar.

Serge Tahé, Mai 2008

Seit Mai 2008 hat sich C# natürlich weiterentwickelt. Dieses Dokument ist jedoch nach wie vor relevant für das Erlernen dieser Sprache. Ergänzend zu diesem Kurs finden Sie eine Vorstellung des ORM (Object Relational Mapper) Entity Framework im Artikel „Einführung in ORM Entity Framework 5 Code First“ unter der URL [https://stahe.github.io/en-ef5cf-oct-2012/].

Serge Tahé, Oktober 2013