Erfahren Sie was das .NET Execution Environment (DNX) ist und wie sie ein erstes Projekt damit erstellen und ausführen können.

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.

Über den Autor

Norbert Eder

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