Neues DotNet Core Projekt mit YEOMAN erstellen

Im Beitrag Neues DotNet Core Projekt auf der Komandozeile erzeugen habe ich gezeigt, wie man mit Hilfe der DotNet CLI ein neues Projekt erzeugen kann.      

Neben dem Tooling das einem Visual Studio bietet, gibt es als eine weitere plattformübergreifende Lösung den yeoman.io zu nutzen. Yeoman ist ein sehr beliebter und weit verbreiteter Generator - nicht nur für DotNet Core Projekte und beschreibt sich selbst wie folgt. "THE WEB'S SCAFFOLDING TOOL FOR MODERN WEBAPPS".

Installation

Für die Installation von YEOMAN wird folgende vorausgesetzt:

Um zu überprüfen ob Node.JS in der min. notwendigen Version zur Verfügung steht, kann man in einer Kommandozeile folgenden Befehl eingeben:

node --version

Wenn die Voraussetzungen erfüllt sind, kann man einfach mit folgendem Befehl YEOMAN installieren

npm install --global yo

Ob die Installation erfolgreich war kann man folgenden Befehl nutzen:

yo --version

Nun benötigt man nur noch den "Generator" (das sind Templates in der YEOMAN Sprache) "Yeoman generator for ASP.NET Core apps". Auch diese lassen sich einfach per Kommandozeilen installieren:

npm install -g generator-aspnet

Erstellen eines .NET CORE Projektes

Für die eigentliche Erstellung eines neuen Projektes muss man nun nichts weiter machen als 

yo aspnet

in der Kommandozeile eingeben. Die Ausgabe sieht dann wie folgt aus:

Wie im Screenshot zu sehen, kann man kann zwischen den folgenden Templates wählen:

  • Empty Web Application
  • Empty Web Application(F#)
  • Console Application
  • Console Application (F#)
  • Web Application
  • Web Application Basic [without Membership and Authorization]
  • Web Application Basic [without Membership and Authorization] (F#)
  • Class Library
  • Class Library (F#)
  • Unit Test project (xUnit.net)

Anschließend kann man den Namen für das Projekt definieren und bekommt ein fertiges Grundgerüst erzeugt

Das man auch für eine ConsoleApp yo aspnet eingeben muss, sieht und fühlt sich vielleicht seltsam an, der Grund dafür ist recht simple. .NET Core hatte von Anfang an einen sehr starken web-lastigen Focus. 

Diese Auswahlmöglichkeiten können auch übersprungen werden, indem man die Aufruf mit Parameter erweitert

yo aspnet [projecttype [applicationname] [uiframework]]

Eine genaue Beschreibung findet man in der Dokumentation.

Gut Gründe für Yeoman

Warum sollte man Yeoman den überhaupt nutzen? Es gibt einige Einsatzgebiete für Yeoman:

Wenn man nicht das Tooling von Visual Studio zur Verfügung hat - z.B. weil man unter Mac OS entwickelt

Die Anpassung bzw. die Erstellung von eigenen Generatoren / Templates ist sehr simple, was einem in der täglichen Arbeit unterstützen kann.

Mit Yeoman werden viele Sub-Generatoren mit ausgeliefert um z.B. ein Dockerfile zu erzeugen

yo aspnet:dockerfile

Eine vollständige Auflistung findet man hier.

 

Back again ....

Im Jahre 2005 starte ich mein erstes Weblog unter www.dotnetnukeblog.de, dass ich in den darauffolgenden Jahren aktiv mit Inhalten rund um das OpenSource CMS DotNetNuke© fühlte. Neben DotNetNuke-Themen wurden auch viele Beiträge zu .NET und SQL veröffentlicht.  

Nachdem sich im Jahre 2010 mein Fokus geändert hat und DotNetNuke© bei mir persönlich an Bedeutung verlor, wurden auch die Beiträge immer seltener. Nun nach rund 3 Jahren der "Ruhe" habe ich beschlossen, dass es Zeit wird meine Erkenntnisse und Ideen wieder zu publizieren. Obwohl der Name vom Blog - DotNetGeek - darauf schließen lässt, dass es sich hier wohl um .NET relevante Themen handelt, werde ich auch weitere Buzzwords behandeln:

All diese Themen waren in den letzten 2 Jahre Bestandteil meiner täglichen Arbeit. Ich habe genug Eindrücke und Ideen, um hier in den nächsten Monaten (und hoffentlich Jahren) hilfreiche Beiträge zu schreiben.

Da das .NET Framework selbst schon sehr umfangreich ist, werde und kann ich mich nicht mit allen Bereichen beschäftigen. Wer Inhalte zu WinForms oder WPF sucht, wird vermutlich enttäuscht werden. Mein Fokus liegt ganz klar auf Web-Technologien und daher wird ASP.NET (Core) ganz eindeutig im Vordergrund stehen. 

Warum habe ich mich für die Domain www.dotnetgeek.de entschieden? Ganz einfach: Meine - nicht "blinde" -  Liebe zu .NET und die Tatsache das ich auf vielen Plattformen den Username dotnetgeek registriert habe z.B. bei: