1. Einführung
Die PDF-Datei dieses Dokuments ist verfügbar |HIER|.
Die Beispiele in diesem Dokument sind unter |HIER| verfügbar.
C# ist eine relativ neue Programmiersprache. Sie war seit dem Jahr 2000 in aufeinanderfolgenden Beta-Versionen verfügbar, bevor sie im Februar 2002 offiziell zusammen mit der .NET 1.0-Plattform von Microsoft, an die sie gekoppelt ist, veröffentlicht wurde. C# kann nur mit dieser Laufzeitumgebung ausgeführt werden. Diese stellt den darin ausgeführten Programmen eine sehr umfangreiche Sammlung von Klassen zur Verfügung. Grob gesagt lässt sich die .NET-Plattform als eine Laufzeitumgebung beschreiben, die einer Java-Virtual-Machine ähnelt. Es sind jedoch zwei Unterschiede zu beachten:
- Java läuft seit seinen Anfängen auf verschiedenen Betriebssystemen (Windows, Unix, Macintosh). Im Jahr 2002 lief die .NET-Plattform nur auf Windows-Rechnern. Seit einigen Jahren ermöglicht das Mono-Projekt die Nutzung der .NET-Plattform auf Betriebssystemen wie Unix und Linux. Die aktuelle Version von Mono (Februar 2008) unterstützt .NET 1.1 und Elemente von .NET 2.0.
- Die .NET-Plattform ermöglicht die Ausführung von Programmen, die in verschiedenen Sprachen geschrieben sind. Es reicht aus, wenn der jeweilige Compiler IL-Code (Intermediate Language) erzeugen kann, der von der .NET-Virtual Machine ausgeführt wird. Alle Klassen von .NET stehen den mit .NET kompatiblen Sprachen zur Verfügung, was dazu beiträgt, die Unterschiede zwischen den Sprachen zu verwischen, da die Programme diese Klassen in großem Umfang nutzen. Die Wahl einer .NET-Sprache ist somit eher eine Frage des Geschmacks als der Leistung.
Im Jahr 2002 nutzte C# die .NET-Plattform 1.0. C# war damals weitgehend eine „Kopie“ von Java, und .NET war eine Klassenbibliothek, die der der Java-Entwicklungsplattform sehr ähnlich war. Beim Erlernen der Sprache wechselte man von einer C#-Umgebung zu einer Java-Umgebung, ohne sich wirklich fremd zu fühlen. Es gab sogar Tools zur Konvertierung von Quellcode von einer Sprache in die andere. Seitdem haben sich die Dinge weiterentwickelt. Jede Sprache und jede Entwicklungsplattform hat mittlerweile ihre Besonderheiten. Es ist nicht mehr so einfach, seine Kenntnisse von einem Bereich auf den anderen zu übertragen.
C# 3.0 und das .NET 3.5-Framework bringen viele Neuerungen mit sich. Die wichtigste ist wahrscheinlich LINQ (Language INtegrated Query), die es ermöglicht, auf einheitliche Weise – ähnlich wie in der Sprache SQL – Objektsequenzen abzufragen, die aus Speicherstrukturen wie Arrays und Listen, aus Datenbanken (derzeit – Stand Februar 2008 – nur SQL-Server) oder aus XML-Dateien stammen.
Dieses Dokument ist kein umfassender Kurs. So wird beispielsweise LINQ hier 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 aus dem Jahr 2002.
Mehrere Bücher haben mir beim Verfassen dieses Kurses geholfen:
Für die Version 2002:
- „Professional C# Programming“, Wrox-Verlag
- „C# und .NET“, Gérard Leblanc, Eyrolles Verlag
Damals fand ich diese beiden Werke hervorragend. Seitdem hat Gérard Leblanc aktualisierte Ausgaben veröffentlicht, darunter die folgende:
- „C# und .NET 2005“, Gérard Leblanc, Eyrolles Verlag
Für die Überarbeitung von 2008 habe ich folgende Quellen verwendet:
- das ursprüngliche Dokument aus dem Jahr 2002. Dieses Dokument, das durch Kopieren und Einfügen aus meinem Java-Kurs entstanden war, enthielt sowohl Tippfehler als auch schwerwiegendere Fehler, wie beispielsweise die Behauptung, dass primitive Typen wie System.Int32 Klassen seien, obwohl es sich um Strukturen handelt. Mea culpa...
- die 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.
Der Quellcode der Beispiele in diesem Dokument ist auf der Website [HIER] verfügbar.
Serge Tahé, Mai 2008
Seit Mai 2008 hat sich C# natürlich weiterentwickelt. Dieses Dokument ist jedoch nach wie vor aktuell für das Erlernen dieser Sprache. Ergänzend zu diesem Kurs findet sich eine Vorstellung des ORM (Object Relational Mapper) Entity Framework im Artikel „Einführung in das ORM Entity Framework 5 Code First“ unter URL [Einführung in Entity Framework 5 Code First anhand von Beispielen (2012)].
Serge Tahé, Oktober 2013