C# Programmieren Lernen: Grundlagen und Werkzeuge
Zu Teil 2: Erste Schritte in C#
Zu Teil 3: Ablaufsteuerung in C#
Zu Teil 4: In C# integrierte Datentypen
C# (gesprochen: C-Sharp) ist eine relativ junge Programmiersprache. Sie wurde erstmals im Jahr 2001 von Microsoft speziell für deren .NET-Plattform veröffentlicht. C# hat ein breites Anwendungsgebiet: es kann zum Beispiel für das serverseitige Erstellen von Webseiten verwendet werden (ASP.NET) sowie für das Programmieren von Web-Apps (Silverlight). In diesem Tutorial wollen wir uns aber auf die Erstellung von gewöhnlichen Desktop-Anwendungen konzentrieren.
Microsofts Implementierung Visual C# (welche am weitesten verbreitet ist) ist nur zu Microsoft Windows kompatibel. Es gibt alternative Implementierungen, mit denen C#-Programme auch auf anderen Plattformen verfügbar gemacht werden können (z.B. für Linux mit dem Mono-Projekt). Wir beschränken uns allerdings in diesem Tutorial für Einsteiger auf das Programmieren von reinen Windows- Anwendungen für das .NET-Framework.
Was ist überhaupt eine Programmiersprache?
Programmiersprachen stellen ein Bindeglied dar zwischen der natürlichen menschlichen Sprache und dem nur sehr schwer zu verstehenden Maschinencode, den Computer letztendlich verstehen. Wenn ein Entwickler ein Programm erstellen möchte, muss er sich zunächst überlegen, was das Programm überhaupt können soll, welche Eingaben es verarbeiten soll und wie aus den Eingaben Ergebnisse erzeugt werden sollen. (Zum Beispiel: Lese zwei Zahlen ein und berechne als Ergebnis die Summe dieser beiden Zahlen.)
Der erste Schritt bei der Erstellung eines Programms ist also zunächst einmal das Anfertigen einer genauen Spezifikation, die angibt, was das Programm können soll. Ideal wäre es, wenn der Computer diese Spezifikation (in normaler deutscher oder englischer Sprache) bereits verstehen könnte und daraus automatisch ein Programm erzeugen könnte. Wenn dem so wäre, könnte jeder, der der deutschen (oder englischen) Sprache mächtig ist sehr einfach seine eigenen Programme erstellen.
Tatsächlich ist es nicht undenkbar, dass dies irgendwann einmal der Fall sein wird – in absehbarer Zukunft ist jedoch nicht damit zu rechnen. Daher muss nun die Spezifikation in eine „geordnetere“ Form gebracht werden, die von einem Computer automatisiert verstanden werden kann. Hier kommen die Programmiersprachen ins Spiel: diese sind gewissermaßen einfachere, primitivere Sprachen, die im Vergleich zu natürlichen Sprachen wie Deutsch oder Englisch einen sehr viel kleineren Wortschatz und eine sehr viel einfachere Grammatik besitzen.
Die Kunst des Programmierens besteht also darin, die Vorgaben einer Spezifikation eines Programms in eine einfachere, primitivere (aber grundsätzlich noch verständliche) Form zu „übersetzen“, die vom Computer automatisch verstanden werden kann.
Zu Beginn des Abschnittes wurde gesagt, dass die Programmiersprachen ein Bindeglied seien zwischen der menschlichen Sprache und dem Maschinencode. Code in einer Programmiersprache ist also noch nicht das Ende der Fahnenstange, sondern nur ein Zwischenschritt zum Maschinencode, der letztendlich vom Computer ausgeführt wird. Der Maschinencode ist nämlich noch einmal sehr viel primitiver als der Code in der Programmiersprache und damit für einen Menschen nur sehr schwer zu verstehen.
Daher wird zum Erstellen einer Anwendung neben dem Code in der Programmiersprache noch ein sogenannter Compiler (deutsch: Übersetzer) benötigt, der den Code in der Programmiersprache in den Maschinencode übersetzt. Der Compiler ist selbst ein Programm, das z.B. vom Entwickler der Programmiersprache bereit gestellt wird.
Unser C#-Tutorial
Lesen Sie hier die ersten 4 Kapitel kostenlos!
Der komplette Ablauf beim Erstellen eines Programms ist also der folgende:
- Es wird eine Spezifikation in natürlicher Sprache verfasst, die genau angibt, was ein Programm können soll.
- Der Programmierer wandelt diese Spezifikation in eine formalisierte, einfachere Form um, den Programmcode.
- Der Compiler übersetzt den Programmcode in den Maschinencode, der vom Computer verstanden werden kann.
- Der Maschinencode kann nun auf dem Computer ausgeführt werden.
Die Programmiersprache C#
C# ist eine imperative und objektorientierte Programmiersprache. Imperative Programmierung bedeutet dabei, dass ein Programm als eine Abfolge von Anweisungen angesehen wird, die angeben, was in welcher Reihenfolge vom Computer getan werden soll. Objektorientierte Programmierung bedeutet, dass man ein Programm mit Hilfe von Objekten modelliert, die miteinander interagieren.
Wir wollen das kurz etwas näher erläutern. Bei der imperativen Programmierung übergeben wir dem Computer eine Reihe von Anweisungen, die der Computer dann der Reihe nach abarbeitet. Die Anweisungen könnten z.B. lauten, „Lese zunächst eine Datei aus“, „Zähle die Anzahl der Wörter in der Datei“ und „Schreibe die ausgelesene Anzahl dann in eine andere Datei“. Der Computer wird diese drei Anweisungen dann der Reihe nach abarbeiten.
Programmieren mit C# - Einige unserer Empfehlungen
Der Hintergedanke bei der objektorientierten Programmierung ist dagegen der folgende: Computerprogramme werden heute immer umfangreicher, leistungsstärker und auch komplizierter. Für Programmierer wird es damit immer schwieriger, diese Programme zu erstellen. Um ein Programm besser überblicken zu können teilt man es daher in verschiedene Teile auf. Ein großes Gesamtproblem wird also in mehrere kleinere Teilprobleme zerlegt, die Teilprobleme können wiederum in noch kleinere Teile zerlegt werden, und so weiter. Nun kann man sich entweder nacheinander den einzelnen Teilproblemen widmen oder aber diese von unterschiedlichen Entwicklern gleichzeitig bearbeiten lassen.
In der Praxis bedient man sich dabei der Objekte. Man versucht also ein Programm zu modellieren als eine Reihe von Objekten, die miteinander interagieren (so wie es auch in der realen Welt der Fall ist). Gemäß dem bekannten Leitsatz „Teile und Herrsche“ reduziert man auf diese Weise die Komplexität eines Programms, indem man sich nun mit den verschiedenen Teilen einzeln befassen kann und diese dann später nur noch zu einem Gesamtprogramm zusammen setzen muss.
C# kombiniert also die beiden genannten Paradigmen Imperative Programmierung und Objektorientierung und kann damit für die Erstellung von sehr komplexen Programmen verwendet werden. Selbiges ist übrigens der Fall bei den ebenfalls sehr populären Programmiersprachen C++ und Java. Gerade syntaktisch sind sich diese drei Sprachen relativ ähnlich, sodass Sie in C# sehr viele bekannte Konzepte wiederfinden werden, sofern Sie bereits Vorkenntnisse entweder in Java oder C++ haben.
Compiler und Entwicklungsumgebung
Die am weitesten verbreitete Entwicklungsumgebung für das Erstellen von Programmen mit C# ist das Visual Studio von Microsoft. Microsoft veröffentlicht im Rhythmus von 1 – 3 Jahren komplett neue Versionen von Visual Studio. Die derzeit (Stand: Februar 2017) neueste Version ist Visual Studio 2017. Für jede (Jahres-) Version wird dabei nochmal unterschieden zwischen verschiedenen Editionen, von denen einige kostenlos sind, andere dagegen kostenpflichtig.
Nach dem derzeitigen Lizenzierungsmodell bietet Microsoft die Entwicklungsumgebung für Einzel-Entwickler komplett kostenlos an. Dies ist die sogenannte Community Edition. Diese Edition können Sie also als Programmieranfänger uneingeschränkt kostenlos verwenden. Sie können die Community Edition auf der Downloadseite von Microsoft herunter laden. Eine Übersicht über alle Download-Versionen ist über die folgende Seite zu erreichen.
Bei der Installation wird gefragt, welche Konfigurationen Sie installieren wollen. Wählen Sie hier mindestens die Option .NET-Desktopentwicklung aus. Es werden nun automatisch alle benötigten Komponenten installiert, so z.B. das .NET-Framework sowie der Compiler, mit dem Ihr Programmcode später in Maschinencode übersetzt wird.
Nachdem die Installation abgeschlossen ist, werden Sie gegebenenfalls dazu aufgefordert, ein Konto bei Microsoft zu erstellen. Sie können dafür entweder eine vorhandene E-Mail-Adresse nutzen oder eine E-Mail-Adresse von Microsoft erstellen lassen. Es wird empfohlen, dies gleich zu tun. Wenn Sie kein Konto bei Microsoft eröffnen, können Sie Visual Studio nach einiger Zeit nicht mehr nutzen (natürlich können Sie dann immer noch ein Konto eröffnen, um Visual Studio weiter zu benutzen).
Über diesen Kurs
Dieses Tutorial richtet sich an Einsteiger, die C# programmieren lernen wollen. Die ersten 4 Kapitel des Tutorials, in denen die Grundlagen erklärt werden, können Sie bereits auf der Webseite lesen.
Die Einführung für Anfänger umfasst unverzichtbare Elemente der Programmiersprache wie Bedingungen und Schleifen, Variablen und Datentypen.
Die komplette Version des Tutorials kann in Buchform erworben werden. Sie steht sowohl als gedrucktes Buch als auch als eBook zur Verfügung. In diesem erweiterten C#-Tutorial für Einsteiger, die Programmieren lernen wollen, werden viele weitere Themen wie Operatoren, Ausdrücke, Klassen und Vererbung anfängergerecht präsentiert. Zudem werden auch fortgeschrittene Themen wie die Erstellung von grafischen Benutzeroberflächen mit der Windows Presentation Foundation (WPF) und Netzwerkprogrammierung angeschnitten. Des weiteren enthält enthält das Komplett-Tutorial umfangreiche Begleitmaterialien wie eine Download-Möglichkeit des Beispielcodes, Übungen und Lösungsvorschläge für die Übungen.
Ab 6 Euro
Zufriedenheitsgarantie: Sie können sich den Kaufpreis über Amazon erstatten lassen, wenn Sie mit dem Tutorial nicht zufrieden sind.
Zu Amazon
Zu Teil 2: Erste Schritte in C#
Zu Teil 3: Ablaufsteuerung in C#
Zu Teil 4: In C# integrierte Datentypen
Eine ausführliche Liste unserer Buchempfehlungen für C# finden Sie hier.
Unsere Buchempfehlungen
Oder sehen Sie sich die vollständige Liste der Empfehlungen für C# an.Wir haben auch eine Empfehlung für einen C#-Fernkurs parat.