Cross-Platform Entwicklung mit .NET Core

Was ist .NET Core

.NET Core ist der neuste Teil der .NET-Familie. Dabei ist es keine Erweiterung des bestehenden .NET Frameworks, es ist ein komplett Neues. Eine Framework, dass sich dem .NET Standard verschrieben hat. Es soll zwar im Laufe der Zeit möglichst viele Funktionen des bestehenden Frameworks integriert bekommen, aber es bringt auch eigene, komplett neue Features mit sich. Das ist auch notwendig, denn Microsoft ermöglicht uns nun Cross-Platform Entwicklung mit .NET Core. Sicher ein logischer Schritt, denn Microsoft öffnet sich immer mehr und weiter zu anderen Plattformen.

Weitere Beispiele sind der open-source und cross-platform Editor Visual Studio Code und auch die Preview von Visual Studio für Mac.

Endlich können Mac- und Linux-Nutzer auch (offiziell supported) gegen die .NET API programmieren. Bedarf an dieser Technologie gab es schon, bevor Microsoft diesen Schritt ging, denn mit Mono gab es bereits zuvor Ansätze, das .NET Framework cross-platform anzubieten. Das Mono-Projekt wurde übrigens so populär, dass Xamarin es für die hauseigene Cross-Platform Entwicklung von mobilen Apps erwarb. Als Microsoft nun Xamarin kaufte, gelangte also automatisch auch Mono in die Hände Microsofts. Mal so als kleiner fun fact am Rande. Ob Mono nun irgendwann ausgetauscht wird, bleibt abzuwarten. Aber ungefähr zur selben Zeit, als es erste Spekulationen zum Kauf Xamarins durch Microsoft gab, gab es auch die ersten Infos durch Microsoft, ein Cross-Platform-.NET ins Leben rufen zu wollen.

Die Roadmap

2016 war es dann so weit, die erste stabile Version von .NET Core erblickte das Licht der Welt und hier möchte ich nun mit euch – wahrscheinlich über mehrere Tutorial-Teile – einen kleinen Einstieg in das noch junge Framework vornehmen. Ich möchte mit euch

  • … .NET auf Mac und Linux installieren
  • … eine erste Konsolen-Anwendung bauen
  • … eine erste kleine „real-world“-Applikation erstellen
  • … die Applikationen für das jeweilige System zur Verfügung stellen
  • … und eine native GUI auf dem jeweiligen System anzeigen

Da das alles nicht unbedingt in einem Beitrag zu schaffen ist, werde ich dies aufteilen. Jetzt nehmen wir uns erst einmal vor, .NET zum Laufen zu kriegen und eine Konsolen-Anwendung zu bauen.

Cross-Platform Entwicklung mit .NET Core

.NET Core installieren

Microsoft hat die Installation von .NET Core für alle Plattformen sauber dokumentiert. Ich würde auch empfehlen, die dort beschriebenen Schritte durchzuführen, da Microsoft aktiv an der Entwicklung, und der damit verbundenen Vereinfachung der Installation, arbeitet. Auf dem Mac muss man aktuell noch OpenSSL installieren (dies geht am einfachsten über Homebrew). Die Schritte sind ebenfalls dort beschrieben. Danach kann der .NET Core-Installer heruntergeladen und ausgeführt werden. Unter Linux muss eine entsprechende Quelle zu apt-get hinzugefügt werden, danach kann .NET Core direkt via apt-get installiert werden. Die Anleitung ist wirklich klar strukturiert. Für das weitere Tutorial arbeite ich mit der momentan aktuellsten .NET Core Version für den Mac: v1.1.1.

Das erste Konsolenprogramm

Auch hier nimmt Microsoft uns das meiste der Arbeit bereits ab und zeigt genau, wie wir ein „Hello World“ erstellen können. Eventuell müsst ihr nach der Installation von .NET Core einmal das Terminal-Fenster neu starten, damit der folgende Befehl funktioniert. Navigiert in der Konsole via cd in den Ordner, in dem ihr einen Projekt-Ordner erstellen wollt, im Beispiel ist es es der Desktop und dann nutzt die .NET CLI, um euer Projekt zu erstellen:

cd ~/Desktop
dotnet new console -o hwapp

.NET Core legt euch nun einen Ordner namen hwapp auf dem Desktop an, in welchem sich zwei Dateien befinden. Die Projekt-Datei hwapp.csproj, sowie die Code-Datei Program.cs. In der Projekt-Datei findet ihr aktuell die Info, welche Framework-Version ihr nutzt, später kommen dort aber z.B. die weiteren Library-Referenzen mit hinzu, die wir im Laufe der Tutorial-Reihe nutzen wollen. Außerdem wird hier auch eingetragen, für welche Systeme wir später das Programm veröffentlichen möchten. In Program.cs findet ihr bereits ein simples „Hello World“, geschrieben in C#. Um das Programm nun ausführen zu können, müssen einmal die Dependencies aktualisiert werden, hierzu in der Konsole in den Projekt-Ordner navigieren und dotnet restore ausführen

cd ~/Desktop/hwapp # solltet ihr das Programm an einem anderen Ort gespeichert haben, dorthin navigieren
dotnet restore

Nun könnt ihr via dotnet run das Programm ausführen

dotnet run

Es sollte Hello World in eurer Konsole erscheinen!

Das war noch nicht viel mehr, als ein Beweis, dass sich .NET Core nun bereit zum Einsatz auf eurem System befindet und wir anfangen können, coole Applikationen zu schreiben.

Die nächsten Schritte

Damit geht’s auch im nächsten Part weiter. Die ersten zwei Punkte haben wir von der Liste gestrichen, somit soll es nun an eine richtige Applikation gehen.

  • … .NET auf Mac und Linux installieren
  • … eine erste Konsolen-Anwendung bauen
  • … eine erste kleine „real-world“-Applikation erstellen
  • … die Applikationen für das jeweilige System zur Verfügung stellen
  • … und eine native GUI auf dem jeweiligen System anzeigen

Bis dahin schaut gern in Microsofts .NET Core Blog vorbei oder inspiziert das .NET Core Projekt auf Github – Microsoft hat alles open-sourced! Viel Spaß bis dahin!

2 Antworten auf „Cross-Platform Entwicklung mit .NET Core“

  1. Hi Christian,
    super Thema. Ich freue mich schon auf die folgenden Artikel .
    Ich lerne gerade C# und finde die cross-plattform Entwicklung mit .NET Core sehr spannend.
    Es wäre interessant wenn die real-world App dann unter allen drei Plattformen läuft
    Gruß, Jarno

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.