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.