Partager via


Notes de publication de NuGet 3.0 Preview

Notes de publication de NuGet 2.9 Version candidate | Notes de publication de NuGet 3.0 bêta

NuGet 3.0 Preview a été publié le 12 novembre 2014 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 préversion) et nous sommes heureux de commencer à obtenir des commentaires sur nos modifications.

Visual Studio 2012+

Cette préversion nuGet 3.0 est incluse dans Visual Studio 2015 Preview. Nous travaillons à publier des versions préliminaires 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 écran, de l’ancrer à votre convenance, etc.

Nouvelle interface utilisateur NuGet

Au-delà des différences d’utilisation en raison de l’abandon de la boîte de dialogue modale, nous disposons également de nombreuses nouvelles fonctionnalités dans la nouvelle interface utilisateur.

Sélection de version

Peut-être que la fonctionnalité d’interface utilisateur la plus demandée est d'autoriser la sélection de version pour l’installation et la mise à jour du paquet : cela est désormais disponible.

Sélection de la version du package

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 installés/en ligne/mises à jour combinés

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 dire que beaucoup d'entre vous se retrouvaient souvent confus 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.

Désinstaller un package

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 version pour voir modifier l’action disponible.

Mettre à jour un package

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 dériver 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 SamplesClassLibrary avec la version 6.0.4 et dans SamplesConsoleApp avec la version 5.0.4.

Consolider les versions

Voici le flux de travail pour la consolidation sur une version unique.

  1. Sélectionnez le Newtonsoft.Json package dans la liste
  2. Choisir Consolidate dans la Action liste déroulante
  3. Utilisez la Version liste déroulante pour sélectionner la version à consolider sur
  4. Cochez les cases des projets qui doivent être consolidés sur cette version (notez que les projets déjà sur la version sélectionnée seront grisés)
  5. Cliquez sur le Consolidate bouton pour effectuer la consolidation

Aperçus des opérations

Quelle que soit l’opération que vous effectuez---install/update/uninstall--, la nouvelle interface utilisateur offre désormais un moyen d’afficher un aperçu des modifications apportées à votre projet. Cette préversion 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 seront inchangés 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.

Installation de SignalR en aperçu

Options d’installation

À l’aide de la console PowerShell, vous avez eu le contrôle sur 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 pour la façon dont les versions des dépendances sont sélectionnées.

Comportement des dépendances

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.

Action de conflit de fichiers

Défilement infini

Nous recevions souvent beaucoup de commentaires sur notre interface utilisateur qui intègre à la fois les paradigmes de défilement et de pagination lors de la présentation des paquets. 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 afin que vous n’ayez besoin que de faire défiler la page, sans plus de pagination.

Défilement infini

Faites-le fonctionner, faites-le vite, faites-le joli

Nous sommes enthousiastes de vous présenter cette nouvelle interface utilisateur à essayer. Au cours de cette préversion, nous avons suivi le bon vieux adage de « Faire fonctionner, le rendre rapide, le rendre joli ». Dans cette préversion, nous avons principalement atteint notre premier objectif: ça fonctionne. Nous savons que ce n’est pas encore assez rapide, et nous savons que ce n’est pas encore assez joli. Faites confiance à ce que nous allons travailler sur ces objectifs entre maintenant et la version RC. En attendant, nous aimerions entendre vos commentaires sur la facilité d’utilisation des nouveaux flux de travail, opérations et comment il se sent pour utiliser la nouvelle interface utilisateur.

Il existe quelques fonctions que nous avons supprimées par rapport à l’ancienne interface utilisateur. L’un d’eux était intentionnel, et l’autre n’a pas été fait dans le temps.

Recherche parmi toutes les sources de packages

L’ancienne interface utilisateur vous a permis d’effectuer une recherche de package sur toutes vos sources de package. Nous avons supprimé cette fonctionnalité dans l’interface utilisateur et nous ne le ramenons 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é qu'il est vraiment difficile d'intégrer la pertinence de la recherche. Imaginez-vous effectuer une recherche sur Google et Bing et entrelacer les résultats ? En outre, cette fonctionnalité était lente, facile à utiliser accidentellement , 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.

Mettre à jour tout

Nous avons utilisé un bouton « Mettre à jour tout » dans l’ancienne interface utilisateur qui n’y figure pas encore dans la nouvelle interface utilisateur. Nous ressuscirons cette fonctionnalité pour notre 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. Le travail que nous avons effectué consiste à créer « 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 la version préliminaire de NuGet 3.0, vous voyez une nouvelle source de package appelée « preview.nuget.org » dans la liste déroulante des sources de package. Si vous sélectionnez cette source de package, nous allons utiliser notre nouvelle API plutôt 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 que nous mettons 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 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 courte liste des domaines d’investissement importants :

  1. Nous sommes en partenariat avec les équipes Visual Studio et MSBuild pour approfondir NuGet dans la plateforme.
  2. 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é ».
  3. Nous travaillons à refactoriser la base de code NuGet pour rendre les composants client et serveur réutilisables dans différents domaines au-delà de la gestion des packages dans Visual Studio.
  4. 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 à l’écoute

Veuillez garder un œil sur notre blog pour plus de progrès et d’annonces pour NuGet 3.0 !