NuGet 3.0 Vorschau (Versionshinweise)
NuGet 2.9 RC Versionshinweise | NuGet 3.0 Beta Versionshinweise
NuGet 3.0 Preview wurde am 12. November 2014 als Teil der Visual Studio 2015 Vorschauversion veröffentlicht. Wir haben NuGet 3.0 Vorschau veröffentlicht. Dies ist eine große Freigabe für uns (wenn auch eine Vorschau), und wir freuen uns darauf, Feedback zu unseren Änderungen zu erhalten.
Visual Studio 2012+
Diese NuGet 3.0 Vorschau ist in Visual Studio 2015 Vorschau enthalten. Wir arbeiten daran, Vorschauen für Visual Studio 2012 und Visual Studio 2013 sehr bald zu erhalten. Wir haben bereits mitgeteilt, dass wir beabsichtigen, die Updates für Visual Studio 2010 einzustellen, und wir haben diese schwierige Entscheidung getroffen.
Brandneue Benutzeroberfläche
Das erste, was Sie an der NuGet 3.0 Vorschau bemerken, ist unsere brandneue Benutzeroberfläche. Es ist kein modales Dialogfeld mehr; Es ist jetzt ein vollständiges Visual Studio-Dokumentfenster. So können Sie die Benutzeroberfläche für mehrere Projekte (und/oder die Lösung) gleichzeitig öffnen, das Fenster auf einen anderen Monitor verschieben, es nach Belieben andocken usw.
Neben den Unterschieden der Benutzerfreundlichkeit aufgrund des Verlassens des modalen Dialogfelds haben wir auch viele neue Features in der neuen Benutzeroberfläche.
Versionsauswahl
Vielleicht ist das am meisten angeforderte Feature der Benutzeroberfläche das Zulassen der Versionsauswahl für die Paketinstallation und -aktualisierung – dies ist jetzt verfügbar.
Ganz gleich, ob Sie ein Paket installieren oder aktualisieren, mit der Versionsdropdownliste können Sie alle verfügbaren Versionen für das Paket anzeigen, mit einigen wichtigen Versionen, die oben in der Liste höher gestuft wurden, um eine einfache Auswahl zu ermöglichen. Sie müssen die PowerShell-Konsole nicht mehr verwenden, um bestimmte Versionen abzurufen, die nicht die neuesten Sind.
Kombinierte Installierte/Online-/Updates-Workflows
Unsere vorherige Benutzeroberfläche verfügte über drei Registerkarten für Installiert, Online und Updates. Die aufgeführten Pakete waren spezifisch für diese Workflows, und die verfügbaren Aktionen waren auch für die Workflows spezifisch. Das schien zwar logisch, aber wir haben gehört, dass viele von Ihnen durch diese Trennlinie oft gestört werden.
Wir haben jetzt eine kombinierte Oberfläche, in der Sie ein Paket installieren, aktualisieren oder deinstallieren können, unabhängig davon, wie Sie das Paket ausgewählt haben. Zur Unterstützung der spezifischen Workflows verfügen wir jetzt über eine Filterdropdownliste, mit der Sie die sichtbaren Pakete filtern können, aber dann sind die für das Paket verfügbaren Aktionen konsistent.
Mithilfe des Filters „Installiert“ können Sie dann ganz einfach Ihre installierten Pakete anzeigen, welche Updates verfügbar sind, und dann können Sie das Paket deinstallieren oder aktualisieren, indem Sie die Versionsauswahl ändern, um die verfügbare Aktion anzuzeigen.
Versionsspaltung
Es ist üblich, dass dasselbe Paket in mehreren Projekten in Ihrer Lösung installiert ist. Manchmal können die in den einzelnen Projekten installierten Versionen auseinanderdriften und es ist notwendig, die verwendeten Versionen zu konsolidieren. NuGet 3.0 Vorschau führt nur für dieses Szenario ein neues Feature ein.
Auf das Verwaltungsfenster auf Lösungsebene kann zugegriffen werden, indem Sie mit der rechten Maustaste auf die Lösung klicken und NuGet-Pakete für Lösung verwalten auswählen. Wenn Sie von dort aus ein Paket auswählen, das in mehreren Projekten installiert ist, aber unterschiedliche Versionen verwendet werden, wird eine neue Aktion „Konsolidieren“ verfügbar. In dem unten stehenden Screenshot wurde Newtonsoft.Json
in die SamplesClassLibrary
mit Version 6.0.4
installiert und in die SamplesConsoleApp
mit Version 5.0.4
installiert.
Hier ist der Workflow zum Konsolidieren auf eine einzelne Version.
- Wählen Sie das
Newtonsoft.Json
Paket in der Liste aus. Consolidate
aus derAction
Dropdownliste auswählen- Verwenden Sie das
Version
Dropdown, um die Version auszuwählen, auf der sie konsolidiert werden soll. - Aktivieren Sie die Kästchen für die Projekte, die in dieser Version konsolidiert werden sollen (beachten Sie, dass Projekte, die bereits in der ausgewählten Version enthalten sind, ausgegraut werden).
- Klicken Sie auf die
Consolidate
Schaltfläche, um die Konsolidierung auszuführen.
Operationsvorschau
Unabhängig davon, welchen Vorgang Sie ausführen: – install/update/uninstall – die neue Benutzeroberfläche bietet jetzt eine Möglichkeit, eine Vorschau der Änderungen anzuzeigen, die an Ihrem Projekt vorgenommen werden. In dieser Vorschau werden alle neuen Pakete angezeigt, die installiert werden, Pakete, die aktualisiert werden, und Pakete, die deinstalliert werden, sowie Pakete, die während der Operation unverändert bleiben.
Im folgenden Beispiel sehen wir, dass die Installation von Microsoft.AspNet.SignalR zu einigen Änderungen am Projekt führt.
Installationsoptionen
Mithilfe der PowerShell-Konsole haben Sie die Kontrolle über einige wichtige Installationsoptionen. Wir haben diese Features nun auch in die Benutzeroberfläche gebracht. Sie können jetzt das Verhalten bei der Auflösung von Abhängigkeiten steuern, wie die Versionen der Abhängigkeiten ausgewählt werden.
Sie können auch angeben, welche Aktion ausgeführt werden soll, wenn Inhaltsdateien aus Paketen bereits in Ihrem Projekt mit Dateien in Konflikt geraten.
Unendlicher Scrollbereich
Wir haben bei der Auflistung von Paketen ein gewisses Maß an Feedback zu unserer Benutzeroberfläche mit den Paradigmen zum Scrollen und Auslagern erhalten. Es war ziemlich üblich, zum Ende der kurzen Liste zu scrollen, auf die nächste Seitenzahl zu klicken und dann erneut zu scrollen. Mit der neuen Benutzeroberfläche haben wir den unendlichen Bildlauf in der Paketliste implementiert, sodass Sie nur noch scrollen müssen – kein Auslagern mehr.
Mach es möglich, mach es schnell, mach es hübsch
Wir freuen uns, Ihnen diese neue Benutzeroberfläche zum Ausprobieren zur Verfügung stellen zu können. Während dieses Preview-Meilensteins haben wir uns an das gute alte Sprichwort gehalten: „Mach es möglich, mach es schnell, mach es hübsch.“ In dieser Vorschau haben wir den größten Teil des ersten Ziels erreicht – sie funktioniert. Wir wissen, dass sie noch nicht ganz schnell ist, und wir wissen, dass sie noch nicht sehr hübsch ist. Vertrauen Sie, dass wir an diesen Zielen zwischen jetzt und der RC-Version arbeiten werden. In der Zwischenzeit würden wir uns freuen, Ihr Feedback zur Benutzerfreundlichkeit der neuen Benutzeroberfläche zu hören – die Workflows, Vorgänge und wie es sich anfühlt, die neue Benutzeroberfläche zu nutzen.
Es gibt eine Reihe von Funktionen, die wir im Vergleich zur alten Benutzeroberfläche entfernt haben. Eines davon war absichtlich, und das andere wurde einfach nicht rechtzeitig erledigt.
Durchsuchen von Allen Paketquellen
Mit der alten Benutzeroberfläche konnten Sie eine Paketsuche für alle Paketquellen ausführen. Wir haben dieses Feature in der Benutzeroberfläche entfernt, und wir werden es nicht wieder einführen. Mit dieser Funktion konnten Sie Suchvorgänge für alle Ihre Paketquellen durchführen, die Ergebnisse miteinander verknüpfen und versuchen, die Ergebnisse entsprechend Ihrer Sortierauswahl zu ordnen.
Wir haben festgestellt, dass die Relevanz von Suchanfragen wirklich schwer zu erfassen ist. Können Sie sich vorstellen, eine Suche mit Google und Bing durchzuführen und die Ergebnisse miteinander zu verknüpfen? Außerdem war diese Funktion langsam, konnte leicht versehentlich verwendet werden und war unserer Meinung nach nur selten wirklich nützlich. Aufgrund der Probleme, die das Feature mit sich brachte, erhielten wir eine Reihe von Fehlerberichten darüber, die nie behoben werden konnten.
Update All
In der alten Benutzeroberfläche gab es eine Schaltfläche „Alle aktualisieren“, die in der neuen Benutzeroberfläche noch nicht vorhanden ist. Wir werden dieses Feature für unsere RC-Version wieder aufleben lassen.
Neue Client-/Server-API
Zusätzlich zu allen neuen Features in unserer neuen Paketverwaltungsbenutzeroberfläche haben wir auch an einigen Implementierungsdetails für das Client-/Serverprotokoll von NuGet gearbeitet. Wir haben eine „API v3“ für NuGet entwickelt, die auf hohe Verfügbarkeit für kritische Szenarien wie die Wiederherstellung von Paketen und die Installation von Paketen ausgerichtet ist. Die neue API basiert auf REST und Hypermedia, und wir haben JSON-LD als Ressourcenformat ausgewählt.
In den NuGet 3.0 Vorschau-Bits wird eine neue Paketquelle namens preview.nuget.org im Paketquelldropdown angezeigt. Wenn Sie diese Paketquelle auswählen, verwenden wir stattdessen unsere neue API, um eine Verbindung mit nuget.org herzustellen. Wir haben die Vorschauquelle auf der Benutzeroberfläche verfügbar gemacht, während wir die neue API weiterhin testen, überarbeiten und verbessern. In NuGet 3.0 RC ersetzt diese neue v3-basierte API-Paketquelle die v2-basierte Paketquelle nuget.org.
Trotz der Investition in API v3 haben wir alle diese neuen Features auch mit unserem vorhandenen API v2-Protokoll verwendet, was bedeutet, dass sie auch mit vorhandenen Paketquellen als nuget.org funktionieren.
Neue Features in Vorbereitung
Zwischen jetzt und 3.0 RTM arbeiten wir auch an einigen grundlegenden neuen NuGet-Features, die über das hinausgehen, was Sie auf der Benutzeroberfläche sehen. Hier ist eine kurze Liste der wichtigsten Investitionsbereiche:
- Wir arbeiten mit den Visual Studio- und MSBuild-Teams zusammen, um NuGet tiefer in die Plattform zu bringen.
- Wir arbeiten daran, die Konventionen für die Installation von Paketen aufzugeben und stattdessen diese Konventionen zum Zeitpunkt der Paketierung anzuwenden, indem wir ein neues „maßgebliches“ Paketmanifest einführen.
- Wir arbeiten an der Umstrukturierung der NuGet-Codebasis, um die Client- und Serverkomponenten über die Paketverwaltung in Visual Studio hinaus in verschiedenen Bereichen wiederverwendbar zu machen.
- Wir untersuchen das Konzept der „privaten Abhängigkeiten“, bei dem ein Paket angeben kann, dass es Abhängigkeiten von anderen Paketen hat, die nur Implementierungsdetails betreffen, und diese Abhängigkeiten sollten nicht als Top-Level-Abhängigkeiten angezeigt werden.
Bleiben Sie auf dem Laufenden!
Bitte achten Sie auf unseren Blog für weitere Fortschritte und Ankündigungen für NuGet 3.0!