Notes de publication de NuGet 3.0 Preview
Notes de publication de NuGet 2.9 RC | Notes de publication de NuGet 3.0
NuGet 3.0 Preview a été publié le 12 novembre2014 dans le cadre de la version Visual Studio 2015 Preview. Nous avons publié NuGet 3.0 Preview Il s’agit d’une grande version pour nous (bien qu’une version préliminaire) et nous sommes heureux de commencer à obtenir des commentaires sur nos modifications.
Visual Studio 2012+
Cette version préliminaire de nuGet 3.0 est incluse dans Visual Studio 2015 Preview. Nous travaillons à obtenir un aperçu des suppressions pour Visual Studio 2012 et Visual Studio 2013 très bientôt. Nous avons précédemment partagé notre intention d’interrompre les mises à jour de Visual Studio 2010, et nous avons pris cette décision difficile.
Nouvelle interface utilisateur
La première chose que vous remarquez sur NuGet 3.0 Preview est notre toute nouvelle interface utilisateur. Il ne s’agit plus d’une boîte de dialogue modale ; il s’agit maintenant d’une fenêtre de document Visual Studio complète. Cela vous permet d’ouvrir l’interface utilisateur pour plusieurs projets (et/ou la solution) à la fois, de déplacer la fenêtre vers un autre moniteur, de l’ancrer comme vous le souhaitez, etc.
Au-delà des différences d’utilisation en raison de l’abandon de la boîte de dialogue modale, nous disposons également de nombreuses nouveautés en matière de fonctionnalités dans la nouvelle interface utilisateur.
Sélection de la version
La fonctionnalité d’interface utilisateur la plus demandée consiste peut-être à autoriser la sélection de versions pour l’installation du package et la mise à jour, ce qui est désormais disponible.
Que vous installiez ou mettez à jour un package, la liste déroulante des versions vous permet de voir toutes les versions disponibles pour le package, avec certaines versions notables promues en haut de la liste pour faciliter la sélection. Vous n’avez plus besoin d’utiliser la console PowerShell pour obtenir des versions spécifiques qui ne sont pas les plus récentes.
Flux de travail combinés Installé/En ligne/Mises à jour
Notre interface utilisateur précédente comportait 3 onglets pour Installé, En ligne et Mises à jour. Les packages répertoriés étaient spécifiques à ces flux de travail et les actions disponibles étaient également spécifiques aux flux de travail. Bien que cela semblait logique, nous avons entendu que beaucoup d’entre vous étaient souvent déroutés par cette séparation.
Nous avons maintenant une expérience combinée, où vous pouvez installer, mettre à jour ou désinstaller un package, quelle que soit la façon dont vous avez sélectionné le package. Pour faciliter l’utilisation des flux de travail spécifiques, nous disposons désormais d’une liste déroulante filtre qui vous permet de filtrer les packages visibles, mais les actions disponibles pour le package sont cohérentes.
En utilisant le filtre « Installé », vous pouvez voir facilement vos packages installés, ceux qui ont des mises à jour disponibles, puis vous pouvez désinstaller ou mettre à jour le package en modifiant la sélection de versions pour voir la modification de l’action disponible.
Consolidation des versions
Il est courant que le même package soit installé dans plusieurs projets au sein de votre solution. Parfois, les versions installées dans chaque projet peuvent diverger et il est nécessaire de consolider les versions en cours d’utilisation. NuGet 3.0 Preview introduit une nouvelle fonctionnalité pour ce scénario.
La fenêtre de gestion des packages au niveau de la solution est accessible en cliquant avec le bouton droit sur la solution et en choisissant Gérer les packages NuGet pour la solution. À partir de là, si vous sélectionnez un package installé dans plusieurs projets, mais avec différentes versions en cours d’utilisation, une nouvelle action « Consolider » devient disponible. Dans la capture d’écran ci-dessous, Newtonsoft.Json
a été installée dans la SamplesClassLibrary
avec la version 6.0.4
et installée dans la SamplesConsoleApp
avec la version 5.0.4
.
Voici le flux de travail pour la consolidation sur une version unique.
- Dans la liste, sélectionnez le package
Newtonsoft.Json
. - Choisissez
Consolidate
dans la liste déroulanteAction
- Utilisez la liste déroulante
Version
pour sélectionner la version sur laquelle la consolidation doit être effectuée - Cochez les cases des projets qui doivent être consolidés sur cette version (notez que les projets qui sont déjà sur la version sélectionnée seront grisés)
- Cliquez sur le bouton
Consolidate
pour effectuer la consolidation
Aperçus des opérations
Quelle que soit l’opération que vous effectuez (installation, mise à jour, désinstallation), la nouvelle interface utilisateur offre désormais un moyen d’afficher un aperçu des modifications apportées à votre projet. Cet aperçu affiche les nouveaux packages qui seront installés, les packages qui seront mis à jour et les packages qui seront désinstallés, ainsi que les packages qui resteront intacts pendant l’opération.
Dans l’exemple ci-dessous, nous pouvons voir que l’installation de Microsoft.AspNet.SignalR entraîne quelques modifications dans le projet.
Options d’installation
À l’aide de la console PowerShell, vous avez contrôlé quelques options d’installation notables. Nous avons maintenant apporté ces fonctionnalités dans l’interface utilisateur. Vous pouvez maintenant contrôler le comportement de résolution des dépendances en ce qui concerne la façon dont les versions des dépendances sont sélectionnées.
Vous pouvez également spécifier l’action à entreprendre lorsque les fichiers de contenu des packages sont en conflit avec les fichiers déjà présents dans votre projet.
Défilement infini
Nous recevions souvent des commentaires sur notre interface utilisateur qui présentait à la fois le paradigme du défilement et celui de la pagination lors de l’établissement de la liste des packages. Il était assez courant d’avoir à faire défiler vers le bas de la liste courte, cliquer sur le numéro de page suivant, puis faire défiler à nouveau. Avec la nouvelle interface utilisateur, nous avons implémenté un défilement infini dans la liste des packages de sorte que vous n’avez qu’à faire défiler la page, sans plus de pagination.
Fonctionnelle, rapide, esthétique
Nous sommes impatients de vous faire essayer cette nouvelle interface utilisateur. Au cours de cette étape de version préliminaire, nous avons suivi le vieil adage « Make it work, make it fast, make it pretty » (Fonctionnelle, rapide, esthétique). Dans cette version préliminaire, nous avons atteint la majeure partie du premier objectif : elle fonctionne. Nous savons que ce n’est pas encore assez rapide, et nous savons que ce n’est pas encore très esthétique. Ne doutez pas que nous travaillerons sur ces objectifs d’ici à la publication de la RC. En attendant, nous aimerions entendre vos commentaires sur la facilité d’utilisation des nouveaux flux de travail, des nouvelles opérations et des ressentis en utilisant la nouvelle interface utilisateur.
Il existe quelques fonctions que nous avons supprimées par rapport à l’ancienne interface utilisateur. L’une d’elles était intentionnelle, et l’autre n’a pas été fait dans le temps.
Recherche de sources de package « All »» (Toutes)
L’ancienne interface utilisateur vous permettait d’effectuer une recherche de package sur toutes vos sources de package. Nous avons supprimé cette fonctionnalité dans l’interface utilisateur et nous ne la récupérerons pas. Cette fonctionnalité permet d’effectuer des opérations de recherche sur toutes vos sources de package, d’enregistrer les résultats ensemble et de tenter de classer les résultats en fonction de votre sélection de tri.
Nous avons constaté que la pertinence de la recherche est vraiment difficile à définir. Imaginez-vous effectuer une recherche sur Google et Bing et fusionner les résultats ? En outre, cette fonctionnalité était lente, facile à utiliser par inadvertance et nous pensons qu’elle était rarement utile. En raison des problèmes introduits par la fonctionnalité, nous avons reçu un certain nombre de rapports de bogues sur celui-ci qui n’auraient jamais pu être résolus.
Tout mettre à jour
Nous avons utilisé un bouton « Update All » (Tout mettre à jour) dans l’ancienne interface utilisateur qui ne figure pas encore dans la nouvelle interface utilisateur. Nous ressusciterons cette fonctionnalité pour la version RC.
Nouvelle API client/serveur
En plus de toutes les nouvelles fonctionnalités de notre nouvelle interface utilisateur de gestion des packages, nous avons également travaillé sur certains détails d’implémentation pour le protocole client/serveur de NuGet. Nous avons créé « API v3 » pour NuGet, qui est conçu autour de la haute disponibilité pour des scénarios critiques tels que la restauration de packages et l’installation de packages. La nouvelle API est basée sur REST et Hypermedia et nous avons sélectionné JSON-LD comme format de ressource.
Dans les bits NuGet 3.0 Preview, vous voyez une nouvelle source de package appelée « preview.nuget.org » dans la liste déroulante source du package. Si vous sélectionnez cette source de package, nous utiliserons plutôt notre nouvelle API pour vous connecter à nuget.org. Nous avons rendu la source d’aperçu disponible dans l’interface utilisateur pendant que nous continuons à tester, réviser et améliorer la nouvelle API. Dans NuGet 3.0 RC, cette nouvelle source de package basée sur l’API v3 remplace la source de package « nuget.org » v2.
Malgré l’investissement dans l’API v3, toutes ces nouvelles fonctionnalités fonctionnent également avec notre protocole API v2 existant, ce qui signifie qu’elles fonctionnent également avec des sources de package existantes autres que nuget.org.
Nouvelles fonctionnalités à venir
Entre maintenant et la publication de la version 3.0 RTM, nous travaillons également sur certaines nouvelles fonctionnalités NuGet fondamentales, au-delà de ce que vous voyez dans l’interface utilisateur. Voici une brève liste des domaines d’investissement importants :
- Nous sommes en partenariat avec les équipes Visual Studio et MSBuild pour approfondir NuGet dans la plateforme.
- Nous travaillons à abandonner les conventions de package au moment de l’installation et à appliquer ces conventions au moment de l’empaquetage en introduisant un nouveau manifeste de package « faisant autorité ».
- Nous travaillons à refactoriser le codebase NuGet pour rendre les composants client et serveur réutilisables dans différents domaines au-delà de la gestion des packages dans Visual Studio.
- Nous examinons la notion de « dépendances privées » où un package peut indiquer qu’il a des dépendances sur d’autres packages uniquement pour les détails de l’implémentation, et ces dépendances ne doivent pas être exposées en tant que dépendances de niveau supérieur.
Restez connecté
Veuillez garder un œil sur notre blog pour suivre les progrès et les annonces concernant NuGet 3.0 !