.NET Core Tools : dotnet new et ses nouveaux modèles de projet
par
, 10/03/2017 à 06h05 (1674 Affichages)
Microsoft vient de publier la première version stable des outils pour .NET Core avec Visual Studio 2017. Je suis assez satisfait de la direction emprunter par la firme et la philosophie derrière le développement de .NET Core et les outils pour le framework.
À titre de rappel, .NET Core est développé en open source et est multiplateforme. La plateforme peut fonctionner sur Windows, Linux ou encore Mac. Elle a été développée pour être indépendante de tout EDI, notamment Visual Studio.
C’est pour cela que cette dernière offre le CLI (command-line interface) pour le développement d’applications .NET Core. Le CLI s’appuie sur shared SDK component. Il s’agit de la couche primaire sur laquelle peuvent se greffer d’autres outils de haut niveau comme les environnements de développement intégrés, les orchestrateurs de build, etc. Le shared SDK component offre la compilation, la publication, la génération des packages NuGet, etc.
En procédant ainsi, n’importe quel éditeur est en mesure d’implémenter assez facilement une prise en charge de .NET Core. De plus quelle que soit la plateforme, ces outils fonctionnent de la même manière.
Couplé avec Visual Studio Code, par exemple, vous avez le nécessaire pour créer des applications .NET Core sous Windows, Linux et Mac.
Pour créer et exécuter un hello word, il suffisait d’exécuter les commandes suivantes :
Les développeurs du CLI sont allés plus loin en intégrant de nombreux templates. En exécutant simplement les commandes suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 dotnet new dotnet restore dotnet run
J’obtiens une application .NET Core MVC prête à être utilisée. Pour obtenir la liste des templates disponibles, utilisez la commande :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Dotnet new mvc Dotnet restore Dotnet run
Dotnet new -all
Comme vous pouvez le remarquer, vous avez à votre disposition des templates pour créer des applications de type console, des applications Web MVC, des tests unitaires et bien plus. Vous avez le choix entre C# et F# comme langage de programmation. Par défaut, le langage C# est utilisé.
La commande dotnet new nécessite des arguments et des options :
Le seul argument actuel est <template> qui représente le nom du template que vous devez utiliser. Supposons que je veux créer un projet MVC et je ne connais pas les options. Je peux utiliser la commande suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dotnet new [arguments][options]
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dotnet new mvc -h
Les options les plus intéressantes sont :
- -lang pour le langage de programmation à utiliser;
- -n le nom du projet (nom du répertoire qui sera créé et du fichier .csproj);
- -f pour choisir la version du framework .NET Core à utiliser (entre la 1.0 et la 1.1)
Pour créer une application console F# dans le répertoire par défaut, je peux utiliser la commande suivante :
Pour créer le projet Blog.Web, avec le template MVC et le langage F#, la commande sera la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part dotnet new console -lang f#
Pour créer le projet de test unitaire Xunit Blog.Test en utilisant la version 1.0 de .NET Code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part dotnet new mvc -lang f# -n Blog.Web
Dotnet offre de nombreuses autres commandes très utiles pour le développement d’une application. Il s’agit notamment de :
Code : Sélectionner tout - Visualiser dans une fenêtre à part dotnet new xunit --f netcoreapp1.1 –n Blog.Test
- dotnet restore pour restaurer les packages NuGet dans une application ;
- dotnet run pour lancer le débogage d’une application ;
- dotnet test pour exécuter des tests unitaires.
Ça peut être révoltant pour certains d’avoir à utiliser la ligne de commande. Mais, pour moi, c’est la meilleure option pour rende la plateforme indépendante de tout outil de haut niveau. C’est ce qui est fait dans les langages récents comme Go ou encore Rust. Par ailleurs, avec un EDI comme Visual Studio, vous n’avez pas besoin d’utiliser l’invite de commandes.