Visual Studio "15" : Microsoft donne plus de détails sur l'outillage .NET Core
Qui tourne principalement autour des fichiers csproj
Le 2016-10-20 17:08:31, par Stéphane le calme, Chroniqueur Actualités
Au début du mois, Microsoft a rendu disponible la cinquième préversion de Visual Studio “15”, sa suite de logiciels de développements. Nous avons déjà creusé les nombreux changements apportés comme la disponibilité du filtrage IntelliSense pour C#, VB et C++ afin d’améliorer la production, ou l’intégration du générateur de projet CMake, qui permet la réutilisation de code C ++ sur plusieurs EDI et systèmes. Cette fois-ci, nous allons nous intéresser à l’outillage .NET Core que propose l’EDI aux développeurs.
La suite apporte la commande dotnet new qui permet de créer de nouveaux templates en passant par les outils de ligne de commande .NET Core. Cette commande permet de générer des fichiers projet csproj et Program.cs. Concernant le premier fichier (csproj), par défaut, il aura le même nom que le répertoire.
Microsoft annonce avoir simplifié de manière significative le format csproj pour offrir aux développeurs une expérience plus conviviale de la ligne de commande : « si vous êtes habitué au project.json, vous pouvez voir qu'il contient des informations très similaires », a indiqué l’éditeur. Et de préciser que ce format supporte également la syntaxe générative pour vous éviter de citer les fichiers sources individuels dans le fichier projet. Cela permet d’avoir des dossiers de projets qui ne nécessitent pas l’ajout manuel de tous les fichiers, ce qui a pour conséquence d'améliorer considérablement la collaboration au sein des équipes étant donné que le fichier de projet n'a pas besoin d'être modifié chaque fois qu'un nouveau fichier est ajouté.
Une fois que vous avez lancé la commande dotnet new, voici le template csproj qui est créé par défaut. Notons qu’il vous donne accès à tous les ensembles qui viennent avec le runtime .NET Core comme System.Collections. Il donne également accès à tous les outils et cibles qui accompagnent le SDK Core .NET.
Les références paquets Nuget sont désormais intégrés et font partie du format csproj et non plus d’un fichier spécial utilisant son propre format. Ces références sont sous la forme <PackageReference Include="[Package-Name]" Version="[Package-Version]" />.
Par exemple, si vous voulez ajouter une référence à WindowsAzure.Storage, il vous suffit simplement d’ajouter aux deux références précédentes la ligne avec le nom du paquet ainsi que celui de la version.
Si dans plusieurs cas vous n’aurez besoin que de cibler une seule instance .NET Core, .NET Framework ou .NET Standard avec votre bibliothèque, il peut arriver que vous ayez besoin de plus de flexibilité. MSBuild supporte le multi ciblage comme scénario principal. La syntaxe est relativement simple puisqu’il suffit de spécifier l’ensemble des cibles séparées par un point virgule comme ceci :
Cette commande va automatiquement établir le droit #defines que vous pourrez paramétrer dans votre code pour activer ou désactiver des blocs de code spécifiques en fonction des framework visés.
Vous aurez aussi la possibilité d’effectuer une migration de projets project.json existant vers csproj facilement en vous servant de la commande dotnet migrate. Après avoir lancé la commande dotnet migrate, ce project.json génère le même fichier csproj qui a été indiqué plus haut :
Source : blog Microsoft
La suite apporte la commande dotnet new qui permet de créer de nouveaux templates en passant par les outils de ligne de commande .NET Core. Cette commande permet de générer des fichiers projet csproj et Program.cs. Concernant le premier fichier (csproj), par défaut, il aura le même nom que le répertoire.
Microsoft annonce avoir simplifié de manière significative le format csproj pour offrir aux développeurs une expérience plus conviviale de la ligne de commande : « si vous êtes habitué au project.json, vous pouvez voir qu'il contient des informations très similaires », a indiqué l’éditeur. Et de préciser que ce format supporte également la syntaxe générative pour vous éviter de citer les fichiers sources individuels dans le fichier projet. Cela permet d’avoir des dossiers de projets qui ne nécessitent pas l’ajout manuel de tous les fichiers, ce qui a pour conséquence d'améliorer considérablement la collaboration au sein des équipes étant donné que le fichier de projet n'a pas besoin d'être modifié chaque fois qu'un nouveau fichier est ajouté.
Une fois que vous avez lancé la commande dotnet new, voici le template csproj qui est créé par défaut. Notons qu’il vous donne accès à tous les ensembles qui viennent avec le runtime .NET Core comme System.Collections. Il donne également accès à tous les outils et cibles qui accompagnent le SDK Core .NET.
Code : |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <Project> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" /> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp1.0</TargetFramework> </PropertyGroup> <ItemGroup> <Compile Include="**\*.cs" /> </ItemGroup> <ItemGroup> <PackageReference Include="Microsoft.NETCore.App" Version="1.0.0" /> <PackageReference Include="Microsoft.NET.SDK" Version="1.0.0" /> </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> </Project> |
Par exemple, si vous voulez ajouter une référence à WindowsAzure.Storage, il vous suffit simplement d’ajouter aux deux références précédentes la ligne avec le nom du paquet ainsi que celui de la version.
Code : |
1 2 3 4 5 | <ItemGroup> <PackageReference Include="Microsoft.NETCore.App" Version="1.0.0" /> <PackageReference Include="Microsoft.NET.SDK" Version="1.0.0" /> <PackageReference Include="WindowsAzure.Storage" Version="7.2.1" /> </ItemGroup> |
Code : |
1 2 3 | <PropertyGroup> <TargetFrameworks>netstandard16;net452</TargetFrameworks> </PropertyGroup> |
Vous aurez aussi la possibilité d’effectuer une migration de projets project.json existant vers csproj facilement en vous servant de la commande dotnet migrate. Après avoir lancé la commande dotnet migrate, ce project.json génère le même fichier csproj qui a été indiqué plus haut :
Code : |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | { "version": "1.0.0-*", "buildOptions": { "debugType": "portable", "emitEntryPoint": true }, "dependencies": {}, "frameworks": { "netcoreapp1.0": { "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.1" } }, "imports": "dnxcore50" } } } |
Source : blog Microsoft
-
beekeepRédacteur/ModérateurDu coup il fait du WinDevle 13/10/2017 à 19:32
-
ZenZiToneMembre expertD'un autre côté c'est un outils à destination des développeurs. Qui généralement sont suffisamment familiarisés avec l'anglais pour comprendre les concepts. Pour ma part, je me considère comme une bille en anglais et pourtant je comprend la majeur partie de la doc...le 11/10/2017 à 13:32
-
sebbodMembre averti"avec les lenteurs des langages interprétés" : Pour ta gouvernante (<- blague de la tour Montparnasse infernal - Eric et Ramzy - oui je site les auteurs car la culture c'est important
) presque tous (sauf si tu écris directement en langage processeur) les langages sont interprétés, même l'assembleur oui oui lui aussi convertit ces mnémoniques en langage machine).
Long et semé d’embûche est le chemin de la connaissance jeune padawane . Tiens un peu de lecture ça peux pas faire de mal : http://www.developpez.net/forums/d59...ions-debutant/
(pendant que tu liras tu écriras pas)
"Inttellisense" : J'en ai tester plusieurs (Eclipse, NetBeans, Toad, etc...) aucune n'est aussi bien que celle de visual studio donc si tu as des arguments pour expliquer pourquoi elle evolue peu je suis lecteur car au lieu de rabaisser tu ferais mieux de construire
merci au plaisir de te lire dans un élan de constructionle 17/11/2016 à 15:47 -
François DORINExpert éminent séniorVisual Studio est en environnement qui s'est tellement enrichie en fonctionnalités ces dernières années que le media d'installation complet nécessiterait 40Go. Difficile de toute faire tenir sur un ou deux DVD !
Par contre, on utilise rarement toutes les fonctionnalités. C'est pourquoi Microsoft a beaucoup travaillé sur l'aspect modularité de l'installation avec Visual Studio 2017. Donc, maintenant, au lieu d'avoir une pléthore d'images ISO pour chaque configuration (ce qui est difficilement faisable en plus), Microsoft fourni un installeur qui s'occupe d'afficher la liste des modules disponibles et les installer.
Ce que peut savent par contre, c'est qu'il est possible d'utiliser cet installeur afin de récupérer les fichiers pour une installation hors-ligne (par exemple, pour installer Visual Studio sur plusieurs poste sans avoir à tout retélécharger à chaque fois ou lorsque la qualité du réseau n'est pas terrible).Code : 1
2
3
4
5
6# Téléchargement des fonctionnalités pour le développement d'application de bureau .NET et web .NET vs_community.exe --layout c:\vs2017layout --add Microsoft.VisualStudio.Workload.ManagedDesktop --add Microsoft.VisualStudio.Workload.NetWeb --add Component.GitHub.VisualStudio --includeOptional --lang fr-FR # Installation c:\vs2017layout\vs_community.exe --add Microsoft.VisualStudio.Workload.ManagedDesktop --add Microsoft.VisualStudio.Workload.NetWeb --add Component.GitHub.VisualStudio --includeOptional
Enfin, l'installation hors-ligne fonctionne sur le principe d'un cache hors-ligne. C'est-à-dire que si une fonctionnalité n'est pas dans le cache, elle sera automatiquement téléchargée si nécessaire.le 18/08/2017 à 8:12 -
AiekickMembre extrêmement actifle 11/10/2017 à 16:35
-
ArnardMembre émériteY'a une différence entre concevoir en utilisant UML et générer un schéma de sortie de son application en UML une fois le code faitle 10/11/2016 à 10:53
-
François DORINExpert éminent séniorJustement, il n'est pas nécessaire de tout télécharger. Juste ce dont on a besoinle 18/08/2017 à 19:37
-
LeBressaudMembre confirméSi c'est pour avoir des candidats pas capables de lire une doc en anglais c'est pas grave...le 11/10/2017 à 15:53
-
François DORINExpert éminent séniorQuel amalgame. Anglais = américain...
.
Donc pour ton information, l'anglais n'est pas utilisé qu'aux Etats-Unis. Le Royaume-Unis, l'Irlande, le Canada, l'Australie ne sont que des exemples ayant pour langue officielle... l'anglais ! Et chacun de ces pays à une culture propre et très différente les unes des autres.
Merci également de faire attention aux propos utilisés. "ricain(e)" est un terme péjoratif, voire injurieux et qui n'a donc pas sa place sur nos forums.le 14/10/2017 à 10:02 -
micka132Expert confirméTu préferes un treeview à 3 niveaux sur 10 km de haut?
Franchement on est tous sur des écrans 16/9 voire 16/10, je trouve ce système bien mieux en utilisant l'espace inutile avec un seul treeview.le 25/11/2016 à 17:06