Visual Studio "15" : Microsoft donne plus de détails sur l'outillage .NET Core
Qui tourne principalement autour des fichiers csproj

Le , 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.

Code : Sélectionner tout
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>
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.

Code : Sélectionner tout
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>
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 :

Code : Sélectionner tout
1
2
3
<PropertyGroup>
   <TargetFrameworks>netstandard16;net452</TargetFrameworks>
</PropertyGroup>
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 :

Code : Sélectionner tout
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


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de tomlev tomlev - Rédacteur/Modérateur https://www.developpez.com
le 20/10/2016 à 22:39
Cette nouvelle approche semble régler l'essentiel des problèmes qu'il y avait jusqu'ici avec .NET Core. Ils ont gardé les features essentielles du project.json en les adaptant à la sauce MSBuild. Je pense que c'est tout ce qu'il manquait pour pouvoir se mettre sérieusement à .NET Core, parce que jusqu'ici c'était une galère sans nom...
Avatar de Excellion Excellion - Membre averti https://www.developpez.com
le 30/10/2016 à 10:35
Ah, l'UML... des heures de cours, d'apprentissage, de TD, d'exams... toutes basées sur la très fameuse Etude de cas.
Et dès qu'on arrive en entreprise... l'Etude de cas est un post-it rempli à coup de "non, mais je vous demande un truc simple", "non, mais c'est facile", "attendez, on va rajouter un petit truc, pas compliqué"...
Et bien sur chaque "petit truc" remet tout à plat, et c'est autant de diagrammes à revoir.

Et allez expliquer à un employeur d'une PME, que vous allez passer 1 semaine à écrire des hiéroglyphes pour fabriquer LA calculatrice... qu'il n'avait pas imaginé comme ça, et pour qui "ben c'est simple, on clique sur une touche et ça affiche un nombre...".

A cela il faut ajouter des langages comme l'ASP.net qui fait un peut ce qu'il veut en terme de classes, le multithreading après coup, qui vous flingue la conception...

Bref, autant Merise est adaptable aux PME pour les base de données, autant l'UML (d'ailleurs, certains développeurs écrivent tout dans une classe, voir la procédure main, sans se soucier d'optimisation ou des modifications futures) ...

C'est dommage, car l'idée d'origine est louable, mais inapplicable sur des petits projets conçus pour une ou deux fonctionnalités...
Avatar de TiranusKBX TiranusKBX - Expert confirmé https://www.developpez.com
le 30/10/2016 à 12:06
les seuls cas ou j'utilise encore l'UML c'est quand je doit me mettre d'accord avec d'autres sur l'implémentation d'une fonction de grande complexité, pour un système global ça devient une perte de temps vus les changement réguliers des cahiers des charges
Avatar de Andarus Andarus - Membre averti https://www.developpez.com
le 10/11/2016 à 8:43
Citation Envoyé par TiranusKBX Voir le message
les seuls cas ou j'utilise encore l'UML c'est quand je doit me mettre d'accord avec d'autres sur l'implémentation d'une fonction de grande complexité, pour un système global ça devient une perte de temps vus les changement réguliers des cahiers des charges
Que mon outil de doc(doxygen) génère de l'uml pour naviguer entre les classe j trouve ça cool
Avatar de Arnard Arnard - Membre émérite https://www.developpez.com
le 10/11/2016 à 10:53
Y'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 fait
Avatar de Michael Guilloux Michael Guilloux - Chroniqueur Actualités https://www.developpez.com
le 15/11/2016 à 13:30
Visual Studio 2017 RC sera disponible cette semaine
le point des améliorations de productivité introduites dans la prochaine version majeure de l’EDI

Du 16 au 18 novembre, Microsoft va rassembler les développeurs à New York, dans le cadre de son évènement Connect(). Toutefois, avant le début de l’évènement, on sait déjà quelques-unes des annonces que fera la firme de Redmond. Grâce à une mise en ligne apparemment accidentelle, on sait par exemple que Microsoft profitera pour présenter une version de Visual Studio pour les utilisateurs de Mac. Mais, ce n’est pas tout. Visual Studio "15", qui a très souvent été confondu avec Visual Studio 2015, va porter le nom de « Visual Studio 2017 » et livrer sa release candidate (RC). Visual Studio 2017 RC sera dévoilé lors de l’évènement Connect(), mais la fuite nous permet déjà de faire le point des améliorations dans cette version. Dans le billet de blog de Microsoft qui a été aussitôt retiré du Web, mais enregistré sur Web Archive, la firme de Redmond met en avant des améliorations pour la productivité des développeurs.

La productivité nécessitant d’économiser plus de temps ou plus d'efforts sur les tâches que vous effectuez tous les jours, Visual Studio 2017 RC met l’accent sur l’automation de ces tâches, l’amélioration de la navigation et l’introduction de feedbacks immédiats sur la qualité et l'état de votre code alors que vous l’écrivez. Visual Studio 2017 RC met à profit l'investissement de Visual Studio 2015 dans le projet Roslyn pour lancer de nouvelles fonctionnalités intéressantes et apporter des améliorations, notamment dans le refactoring, la génération de code, l'analyse de code, la navigation, les tests et le débogage pour les développeurs .NET.

Navigation dans le code, écriture et lecture de code

Les développeurs passent énormément de temps à naviguer dans leur code, mais également dans l’écriture et la lecture du code. Au niveau de la navigation dans le code, Visual Studio 2017 RC offre une expérience considérablement améliorée, avec Find All References, GoTo et Indent Guides. Visual Studio 2017 RC se concentre également sur la facilitation de l'écriture de code correct, ainsi que le maintien de la lisibilité des bases de code des développeurs. En s'appuyant sur les fonctionnalités de Visual Studio 2015, cette version fournit une expérience IntelliSense plus améliorée avec la présélection intelligente, le filtrage et la prise en charge de XAML.

Au niveau de l'analyse de code, Visual Studio 2015 avait déjà introduit la fonctionnalité d'analyse de code en direct (live code analysis), qui permet d'avoir un feedback sur votre code au fur et à mesure que vous l'écrivez. Cela vous permet de connaître les problèmes dès le début et éviter d'accumuler un ensemble de problèmes que vous pourriez ne jamais corriger après. Visual Studio 2017 RC pousse un peu plus loin l'analyse en direct et la correction de code en introduisant par exemple des analyseurs de style de code qui identifient les problèmes de style dans le code dès qu'il est tapé.

Test et débogage de code

Comme l’explique Microsoft, la prise en charge des tests unitaires crée un dilemme entre la sélection d’un nombre suffisant de tests pour s'assurer que le code est correct et la nécessité d'exécuter le moins de tests possible de sorte que vous n'ayez pas à trop attendre pour obtenir les résultats des tests. Ce compromis entre la justesse du code et le temps d’exécution des tests peut souvent être source d’improductivité ou de frustration selon le côté vers lequel on penche. Visual Studio 2017 RC introduit donc une fonctionnalité baptisée Live Unit Testing pour C # et Visual Basic. Live Unit Testing exécute uniquement les tests impactés après une modification du code et fournit, pour chaque ligne de code exécutable, un feedback immédiat sur le statut des tests dans l'éditeur.

Si pour une ligne de code exécutable donnée, au moins un test échoue, alors l'éditeur l'indique au moyen d'une croix (x) rouge au début de la ligne. Si pour une ligne de code exécutable donnée, tous les tests sont exécutés avec succès, l'éditeur l'indique également au moyen d'une coche verte. Et si pour une ligne de code exécutable, aucun test n'est exécuté, cela est indiqué par un trait bleu, comme vous pouvez le voir dans la figure suivante.


Au niveau du débogage, Visual Studio 2017 RC vous permet de gagner du temps en réduisant le nombre d'actions requises pour parcourir un programme et pour extraire des informations d'exception, grâce à une fonctionnalité Run To Clik (Exécuter jusqu’au clic) introduite dans la Preview 5.

Vous n’avez plus besoin de définir des points d’arrêt temporaires ou procéder en plusieurs étapes pour exécuter votre code et arrêter l’exécution sur la ligne de votre choix. Maintenant, lorsque vous êtes à l’état d’arrêt dans le débogueur, l’icône Run To Click apparaît en regard de la ligne de code sur laquelle le curseur de votre souris est placé. Déplacez votre souris sur l’icône et cliquez sur le bouton pour lancer l’exécution jusqu’à cette ligne.


Alors qu’on se rapproche désormais de la version finale de Visual Studio 2017, on retient que pour la prochaine version de son EDI, Microsoft s’est concentré sur la facilitation de l'installation de ses outils de développement, l'amélioration des performances et l'amélioration de la productivité des développeurs. Au niveau des extensions, dans un billet de blog, Microsoft fait également un point des changements introduits dans cette version. Il s’agit entre autres de :

  • l’ajout d’un système de suivi des performances pour les extensions, de sorte que les utilisateurs de Visual Studio verront une barre de notification lorsqu'une extension ralentit le temps de chargement ou la vitesse de frappe ;
  • des améliorations visant à faciliter l'installation ou la mise à jour de plusieurs extensions ;
  • les extensions peuvent maintenant détecter et installer des composants dépendants ;
  • la mise à jour le Visual Studio Marketplace pour faciliter la recherche et l'installation des extensions ;


Source : Web Archive, Microsoft

Et vous ?

Qu’en pensez-vous ?

Voir aussi :

Microsoft va dévoiler une version macOS de Visual Studio, pour fournir aux développeurs un environnement similaire à celui de Windows
Visual Studio Code 1.7 est disponible, cette version de l'éditeur de code multiplateforme met l'accent sur l'amélioration de l'expérience utilisateur
Avatar de CS FS CS FS - Membre régulier https://www.developpez.com
le 15/11/2016 à 14:54
Encore un petit effort et on va pouvoir s'économiser une licence Resharper ^^
Avatar de Iradrille Iradrille - Expert confirmé https://www.developpez.com
le 15/11/2016 à 19:52
Citation Envoyé par Michael Guilloux Voir le message
Find All References [...] Run To Clik


Déjà présent dans VS 2015
Avatar de Michael Guilloux Michael Guilloux - Chroniqueur Actualités https://www.developpez.com
le 15/11/2016 à 22:00
Citation Envoyé par Iradrille Voir le message


Déjà présent dans VS 2015
Oui, Find All References (ou Rechercher toutes les références) n'est pas nouveau, mais ça été amélioré. Je ne me suis peut-être pas bien exprimé, surtout que je n'ai pas donné de détails. Disons ça donc autrement : l'expérience avec Find All References s'est considérablement améliorée.

Citation Envoyé par Microsoft
This release delivers a greatly improved navigation experience—with Find All References, GoTo and Indent Guides—to get you from A to B with greater confidence and fewer distractions (even in large code bases).

Previously, Find All References would discover all usages of a symbol and then output the results as a simple, flat list in the Results Window. Now, as Figure 1 shows, the references are colorized and arranged in a hierarchical display with custom grouping, sorting, filtering and searching to help you rapidly home in on the particular reference you desire—even when there are many references in the list.
A propos de Run To Click (Exécuter jusqu'au clic), il me semble que c'est différent de Run To Cursor (Exécuter jusqu'au curseur). Run To Click a été introduit dans la Preview 5 de Visual Studio "15". Je ne suis pas un utilisateur de VS, donc merci de me le signaler si je me trompe quelque part.
Avatar de Oscar.STEFANINI Oscar.STEFANINI - Membre régulier https://www.developpez.com
le 16/11/2016 à 15:14
merci, bon article. hâte d'en savoir +. J'aimerais bien que Crosoft Communique aussi sur Studio Code, histoire de remettre un petit coup sur les différences avec le monstre Studio ^^.
Contacter le responsable de la rubrique Accueil