Hier kommt der erste Beitrag aus der neuen Serie Einstieg in die Programmierung mit C# (ausgesprochen C-Sharp). Einmal pro Woche bringe ich euch bestimmte Bereiche der Software-Entwicklung mit C# näher.
Warum C#?
C# ist eine Vergleichsweise Junge Sprache (Trotz der fast 20 Jahre, die sie auf dem Buckel hat). Sie ist einfach zu lernen und dennoch sehr mächtig. C# ist grundsätzlich Plattform-Unabhängig, auch wenn diese im Rahmen der .NET-Strategie entwickelt wurde und primär für das .NET-Framework optimiert wurde. Das gilt aber nur für die Umsetzung. Die Theorie lässt sich auf allen Plattformen umsetzen. So gab es seiner Zeit das Mono-Projekt, welches als Gegenstück zum .NET Framework zum Beispiel auch für Linux verfügbar war. So half es, .NET-Anwendungen unter Linux zum Laufen zu bringen und stellte auch Entwicklungswerkzeuge bereit.
Heute ist Mono in Xamarin aufgegangen und gehört damit zu Microsoft. Es passt also perfekt zu Microsofts aktueller Strategie, Dienste Cross-Platform anzubieten.
Natürlich bringt es niemanden etwas, dass die Sprache schön einfach ist, aber man mit dieser nichts erreicht. Deswegen – In kurz: Mit C# gibt es quasi keine Grenzen. In Lang: Mit C# lassen sich Anwendungen von einfachen Desktop und Konsolenanwendungen über Websites und API’s bis hinzu Apps entwickeln. Über die Implementierungen von .NET Core und .NET Standard ist man dabei auch nicht an Windows gebunden. Die Anwendungen können unter macOS und Linux genauso laufen wie unter Windows. Selbes gilt für Websites und API’s die unter .NET Core geschrieben wurden. Sämtliche Vorteile von C# bleiben dabei erhalten.
Bei mobile Apps gilt quasi dasselbe. Xamarin-Projekte lassen sich mittlerweile ebenso als .NET Standard-Projekt, wie auch als klassisches Shared Project erstellen.
Warum also C#? – Eine einfach zu lernende Programmiersprache, mit der man nahezu alles erreichen kann.
Der ein oder andere kommt vielleicht mit Sprachen wie Java, oder neuen Sprachen wie Go, etc. Aber keine lässt sich einfach in diesem Umfang nutzen.
Ein wenig Geschichte
C# wurde Ende der 90er im Auftrag von Microsoft unter anderem von Anders Hejlsberg entwickelt. Dieser ist seit 1996 bei Microsoft als Chef der Software-Architektur beschäftigt. Mitte 2000 reichte Microsoft zusammen mit Hewlett-Packard und Intel die erste Version von C# zur Standardisierung bei der Ecma International ein. Bei Ecma International handelt es sich um eine internationale, in Genf beheimatete Organisation zur Normung von IT-Systemen im Allgemeinen. Die erste Version war bei weitem nicht so umfangreich wie die heute aktuelle Version 7.0. Viele Funktionen der Sprache wurden erst im Laufe der Zeit implementiert. Stellenweise musste sich erst mal das Betriebssystem entwickeln, damit bestimmte Anforderungen gestellt wurden.
Bestes Beispiel sind an dieser Stelle die Keywords async und await. Mit Windows 8 und der neuen Touch-Bedienung stellte Microsoft die Anforderung, dass die Elemente der Oberfläche immer genau beim Finger sein müssen. Jetzt gibt es aber auch ab und zu Aufgaben, für die das System etwas länger zur Verarbeitung benötigt. Dennoch soll die Oberfläche weiterhin flüßig reagieren. Bis dato konnte man das auch über weitere Threads auslagern. Das war aber bei weitem nicht so einfach wie wenn der Programmierer „mal eben“ async und await einbaut. Worum es sich genau bei async und await handelt werden wir im Laufe dieser Serie behandeln 😉.
Im Laufe der Jahre brachte Microsoft immer neuere Versionen von C# auf den Markt und fügte jedes mal eine ganze Reihe neuer Features hinzu. Da stellt sich die Frage, was passiert mit einem Projekt, an dem man eventuell bereits Jahre arbeitet und plötzlich erscheint eine neue Version der Programmiersprache. Grundsätzlich kann man es so sagen, dass die Version der Sprache an die Version des Frameworks gebunden ist. Stellenweise können bestimmte Features der Sprache aber auch über Packages zu Anwendungen für ältere Framework-Versionen hinzugefügt werden. Doch auch dazu kommen wir in einem späteren Teil.
Die Entwicklungsumgebung – Visual Studio
Die Entwicklungsumgebung ist DAS Werkzeug eines Software-Entwicklers. Es gibt viele verschiedene Entwicklungsumgebungen. Es handelt sich dabei um ein Programm, welches bei der Entwicklung mit Projektvorlagen, Code-Vorschlägen, der Kompilierung und Bereitstellung unterstützt. Grundsätzlich reicht auch schon der Standard-Editor von Windows. Der Programmcode wird als ganz normaler Text niedergeschrieben. Erst die Compiler wandeln diesen Text (sofern dieser korrekt ist) in den Maschinencode um. Diese Compiler lassen sich dann über eine Kommanodzeile aufrufen. Eine richtige Entwicklungsumgebung ist da aber deutlich einfacher zu bedienen.
Ich persönlich empfehle Visual Studio. Die Entwicklungsumgebung, meiner Meinung nach die mit Abstand beste – und das nicht nur für C# und .NET, aus dem Hause Microsoft bietet nicht nur die Unterstützung für C#, sondern gleich für alles was aus Redmond kommt. Darunter auch andere Sprachen wie C++, VisualBasic und F#. Auch andere Projekttypen wie SQL (Datenbankabfragen) und Web-Design mit HTML und JavaScript lassen sich bewältigen.
Die aktuelle Version hört auf den Namen Visual Studio 2017 und kann in der Community-Edition kostenlos heruntergeladen werden: https://visualstudio.microsoft.com/de/. Diese Variante ist für Einsteiger und für diese Serie völlig ausreichend. Für die macOS-Benutzer unter euch, keine Sorge – Visual Studio gibt es auch für euch. Die macOS-Variante könnt ihr ebenfalls über den obrigen Link herunterladen. Neben Visual Studio gibt es allerdings auch weitere Programme, z.B. MonoDevelop.
Die gesamte Serie habe ich möglichst Plattform-Neutral ausgelegt. Sämtliche Beispiele basieren deshalb auf .NET Core und lassen sich z.B. auch unter macOS ausführen.
Was erwartet mich in der Serie?
Zuerst bringe ich euch natürlich die Grundlagen näher. Im weiteren Verlauf schreiben wir dann kleine Anwendungen für verschiedene Plattformen (Website, API, App, etc.), sodass am Ende ein komplettes kleines Ökosystem herauskommt. Ich versuche jeden Freitag eine neue Ausgabe zu veröffentlichen, kann das aber aufgrund von Job, etc. nicht immer garantieren 😉.
Wenn ihr spezielle Wünsche oder Anregungen habt, dann schreibt es mir in die Kommentare.
Coole Sache
Klingt wirklich interessant. Bin dabei.
Eine gute Sache. Zudem lernt man C# heutzutage in vielen IT-Ausbildungsberufen
Echt? Zu meiner Zeit war es Java auf den Universitäten und C/C++ in den Berufsschulen 😌
hmm, also Java ist denke ich mal noch die Hauptsprache die noch gelehrt wird. An Unis neben C/C++ eigentlich DIE Sprache.
coole sache weiter so, gibt es die Möglichkeit diese Serie irgendwie zu abonnieren, damit man nichts verpasst. Videos fände ich Klasse bzw. Live Sitzung oder eine Art Frage Antwort Forum
Serien (oder bestimmte Kategorien) zu abonnieren ist eine nice Idee 😉
Das werde ich mal in die app mit einfließen lassen.
Von mir ein Daumen hoch für die Serie.
Bin auf weitere Artikel gespannt.
Vielen Dank für die Mühe, sehr interessant… 👍
Vielen Dank für die Mühe, bin auf weitere Artikel gespannt. Vielleicht kann ja auch ein direkter Bezug zu Raspberry Pi o.ä. gebracht werden.
Bin auch gespannt, was die weiteren Artikel bringen. Ich lerne seit August 2018 C# in meiner Ausbildung. 🙂
Sehr guter Blogstart! Ich persönlich würde mir den Fokus auf den App-Bereich wünschen und da auf XAML eingehen. Dann hat man schon mal eine „tote“ Hülle ;-). Ansonsten könntest du mMn ruhig immer wieder Links zu Literatur einbauen. Ich nutze persönlich lieber Bücher, auch wenn ich weiß, dass man im Prinzip alles auch im Internet 4 free bekommt.
App und XAML wird es geben 😉
tolle Sache…ich bin gerade dabei auf meine alten Tage das coding mit C# zu lernen. Die Serie wird mir bestimmt helfen. VG Jürgen