UPDATE: Das DNX ist mittlerweile obsolet und wurde durch das .NET CLI ersetzt. Weitere aktuelle Beiträge finden sich hier am Blog in der Rubrik .NET Core.

Das .NET Execution Environment (DNX) ist ein Software Development Kit (SDK) und eine Laufzeitumgebung zum Ausführen von .NET-Anwendungen unter Windows, Linux und Mac. Es gibt keine Limitierung auf ASP.NET Core, auch andere Anwendungstypen (z.B. Konsolenanwendungen) können darüber ausgeführt werden.

Ein DNX-Projekt erstellen

Ein DNX-Projekt wird über die Datei project.json definiert. Alle möglichen Einstellungen sind in der Dokumentation zum project.json zu finden. Interessierte können auch einen Blick in das project.json Schema werfen.

Für diesen Beitrag ist die Konfiguration der Ziel-CLR(s) wichtig. Diese wird über das Setting frameworks vorgenommen:

{
    "frameworks": {
        "dnx452": {},
        "dnxcore50" :{
            "dependencies": {
                "System.Threading": "4.0.0.0",
                "System.Threading.Tasks": "4.0.0.0"
            }
        }
    }
}

Es ist schön zu sehen, dass gegen zwei CLRs gebuildet wird: dnx452 entspricht dem vollen .NET Framework in der Version 4.5.2, dnxcore50 der Core CLR. Für letztere sind noch zwei zusätzliche Abhängigkeiten konfiguriert. Einen Gesamtüberblick vermittelt die Liste der Target Frameworks.

Zur Verwaltung der DNX-Runtimes wird der .NET Version Manager (DNVM) benötigt.

DNX-Projekte ausführen

Nachfolgend ein kleines Beispiel zum Ausprobieren. Im ersten Schritt benötigen wir eine project.json:

{
  "version": "0.0.1-*",
  "description": "DNX Demo Project",
  "authors": [ "norberteder"],
  "compilationOptions": {
      "emitEntryPoint": true
  },
  "dependencies": {
  },
  "frameworks": {
    "dnx451": { },
    "dnxcore50": {
      "dependencies": {
        "Microsoft.CSharp": "4.0.1-beta-23516",
        "System.Collections": "4.0.11-beta-23516",
        "System.Console": "4.0.0-beta-23516",
        "System.Linq": "4.0.1-beta-23516",
        "System.Threading": "4.0.11-beta-23516"
      }
    }
  }
}

Wer für dieses Beispiel Visual Studio Code verwendet, wird beim Verändern der Abhängigkeiten gefragt, ob diese angepasst werden sollen. Dies ist zu bestätigen, oder mittels dnu restore manuell durchzuführen.

Im gleichen Verzeichnis benötigen wir nun noch ein C#-File mit einer statischen Main-Methode:

using System;

namespace NorbertEder
{
    class Program 
    {
        static void Main() 
        {
            Console.WriteLine("It works! Great.");
        }
    }
}

Die Konsolenanwendung kann nun mit dnx run ausgeführt werden. Hier wird das aktuelle Verzeichnis nach einer statischen Main-Methode durchsucht und diese ausgeführt.

Somit wäre er erste Einstieg geschafft.

Tipp: Hier im Blog gibt es auch zahlreiche Informationen und Tipps zu Visual Studio Code.

Veröffentlicht von Norbert Eder

Ich bin ein leidenschaftlicher Softwareentwickler. Mein Wissen und meine Gedanken teile ich nicht nur hier im Blog, sondern auch in Fachartikeln und Büchern.

Schreibe einen Kommentar

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

Cookie-Einstellungen
Auf dieser Website werden Cookie verwendet. Diese werden für den Betrieb der Website benötigt oder helfen uns dabei, die Website zu verbessern.
Alle Cookies zulassen
Auswahl speichern
Individuelle Einstellungen
Individuelle Einstellungen
Dies ist eine Übersicht aller Cookies, die auf der Website verwendet werden. Sie haben die Möglichkeit, individuelle Cookie-Einstellungen vorzunehmen. Geben Sie einzelnen Cookies oder ganzen Gruppen Ihre Einwilligung. Essentielle Cookies lassen sich nicht deaktivieren.
Speichern
Abbrechen
Essenziell (1)
Essenzielle Cookies werden für die grundlegende Funktionalität der Website benötigt.
Cookies anzeigen