Zum Inhalt

Programmieren in C#

Wie schon erwähnt, wurden einige Teile in EPLAN in der .NET-Plattform programmiert. Das lässt vermuten, dass dies auch die verwendete Programmiersprache sei. Das ist aber nicht richtig, da der Kern der EPLAN-Applikationen in der Sprache C++ entwickelt wurde.

Die Verwendung unterschiedlicher Programmiersprachen in einer Software könnte man mit der deutschen Sprache vergleichen. In Deutschland und Österreich wird die gleiche Sprache gesprochen, dennoch werden in den beiden Ländern teilweise unterschiedliche Worte für den gleichen Begriff verwendet.

  • Sprache:

    • Deutschland → Pfannkuchen
    • Österreich → Palatschinken
  • Programmcode:

    • C# → System.Console.WriteLine("Pfannkuchen");
    • C++ → std::cout << "Pfannkuchen" << std::endl;

Beide Sprachen sind in der Software-Plattform Microsoft.NET enthalten. Wenn diese Codezeilen nun übersetzt (d. h. in Maschinencode umgewandelt) werden, führt der Computer das Gleiche aus. Es wird in beiden Fällen das Wort Pfannkuchen ausgegeben.

Was ist .NET?

Um den Rahmen des Buches nicht zu sprengen und die Komplexität gering zu halten, werden nur die Grundlagen, die für die Programmierung von Scripten relevant sind, erklärt. Mit .NET hat Microsoft eine Software-Plattform ins Leben gerufen, die Entwicklern das Programmieren erleichtert. Zu den wichtigsten Merkmalen und Vorteilen von .NET gehören folgende:

  • Laufzeitumgebung: Wenn wir bei unserem Beispiel mit der deutschen Sprache bleiben, dann bezeichnet die Laufzeitumgebung alle Länder, in denen deutsch gesprochen wird.

  • Klassenbibliotheken: Diese enthalten fertige Funktionen, die man nicht selbst programmieren muss.

  • Dienstprogramme: Damit sind Programme gemeint, mit denen man „sprechen" kann.

  • Objektorientiertes Programmieren

  • Unterstützung mehrerer Programmiersprachen:

    • C#
    • VB.NET
    • C++
    • F#

Allgemeines zu C#

Da in den Beispielen C# Verwendung findet, wird auf diese Sprache näher eingegangen und ihre Entstehung ein wenig erläutert. Fangen wir beim Namen an: C# spricht man „c sharp" siːˈʃɑːp aus. Sharp wird vom Kreuz in der Musik abgeleitet (ein Kreuz ♯ steht für eine um einen Halbton erhöhte Note). Da das Doppelkreuz auf dem Standardtastatur-Layout zu finden ist, wird dieses beim Schreiben des Namens verwendet. C# wurde 2001 von Microsoft veröffentlicht bzw. freigegeben. Somit ist es eine noch nicht so alte Sprache (im Vergleich: C wurde 1972 ins Leben gerufen). Microsoft hat sich bei C# vieles von anderen Sprachen abgeschaut bzw. das Beste herausgesucht.

Es gibt Parallelen zu folgenden Programmiersprachen:

  • C

  • C++

  • Delphi

  • Java

  • Visual Basic

C# zählt zu den objektorientierten Programmiersprachen und wurde 2003 auch genormt (ISO/IEC 23270). C# ist ab Version 5 plattformunabhängig, das heißt, ein Programm kann z. B. auch unter Linux und macOS ausgeführt werden.

Was ist eine Entwicklungsumgebung?

Da man beim Programmieren auf vieles, wie z. B. Syntax, Programmfluss etc., achten muss, gibt es Entwicklungsumgebungen, welche Programmierer:innen beim Schreiben des Codes unterstützen.

Info

Die Syntax ist die Schreibweise des Codes. Jede Programmiersprache hat hier einen eigenen Sprachgebrauch/eine eigene Gliederung. Die Syntax entspricht dem Vokabular und der Grammatik einer gesprochenen Sprache. Ein Compiler ist ein Programm, welches den Programmcode der jeweiligen Sprache in Maschinencode umwandelt. Das Umwandeln nennt man „Kompilieren“. Der Bytecode ist ein Zwischencode von Betriebssystem zu Prozessor.

Um ein Programm auszuführen, muss der Programmcode erst „aufbereitet" werden. Die Entwicklungsumgebung Visual Studio stellt dafür einen sogenannten Compiler bereit. Dieser besteht in der .NET-Umgebung aus zwei Teilen. Zuerst wandelt der Compiler den Programmcode in eine Universalsprache um. Alle Sprachen von .NET werden in die gleiche Sprache übersetzt. Danach wandelt der Compiler den Code in Bytecode um. Diesen kann das Betriebssystem dem Prozessor bereitstellen, um das Programm auszuführen.

flowchart TD

.NET-Programmiersprache --> Compiler-1 --> Universalsprache --> Compiler-2 --> Maschinencode --> Prozessor

Eine Entwicklungsumgebung kann Programmierer:innen auch dabei unterstützen, grafische Oberflächen zu erzeugen. In der Anfangszeit von grafischen Betriebssystemen musste man diese im Programmcode hinterlegen, was sehr schwierig war, da man alle Koordinaten berechnen musste. Etwas so Triviales wie das Maximieren oder das Verändern der Größe eines Fensters bedeutete einen enormen Aufwand in der Programmierung. Diese Menge an Code wird in einer Entwicklungsumgebung automatisch generiert, wenn man ein Formular mit nur einem Textfeld erstellt.

Formular mit Textbox

this.textBox1 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(12, 115);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(260, 20);
this.textBox1.TabIndex = 0;
this.textBox1.Text = "Textbox";
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(284, 262);
this.Controls.Add(this.textBox1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
this.PerformLayout();