NuGet 3.0 プレビューリリース ノート
NuGet 2.9 RC リリース ノート | NuGet 3.0 ベータ リリース ノート
NuGet 3.0 プレビュー は、Visual Studio 2015 プレビュー リリースの一部として 2014 年 11 月 12 日にリリースされました。 NuGet 3.0 プレビューをリリースしました。 これは (プレビューですが) 大きなリリースであり、変更に関するフィードバックを得ることを楽しみにしています。
Visual Studio 2012+
この NuGet 3.0 プレビューは、Visual Studio 2015 プレビューに含まれています。 Visual Studio 2012 と Visual Studio 2013 のプレビューが間もなく削除される予定です。 以前は、Visual Studio 2010 の更新プログラムを中止するという意図を共有し、その困難な決定を行いました。
最新のUI
NuGet 3.0 プレビュー について最初に気づくのは、まったく新しい UI です。 モーダル ダイアログではなくなりました。これで、完全な Visual Studio ドキュメント ウィンドウになりました。 これにより、複数のプロジェクト (またはソリューション) の UI を一度に開いたり、ウィンドウを別のモニターに引き離したり、必要に合わせてドッキングしたりできます。
モーダル ダイアログの破棄で使いやすくなったのに加え、新しい UI には多くの新機能があります。
[バージョンの選択]
おそらく、最も要求されている UI 機能は、パッケージのインストールと更新のバージョンの選択を許可することです。これは現在使用できます。
パッケージをインストールまたは更新する場合でも、バージョンドロップダウンを使用すると、パッケージで使用できるすべてのバージョンを表示できます。一部の注目すべきバージョンはリストの一番上に昇格され、簡単に選択できます。 最新ではない特定のバージョンを取得することが不要になったのでPowerShell コンソールを使用することなくなりました。
まとめるインストール済み/オンライン/更新 ワークフロー
以前の UI には、インストール済み、オンライン、更新の 3 つのタブがありました。 リスト表示されたパッケージは、これらのワークフローに固有であり、使用可能なアクションもワークフローに固有でした。 それは論理的に思えましたが、多くの皆さんは、この分離によってしばしば取り込まれると聞きました。
パッケージを選択した方法に関係なく、パッケージをインストール、更新、またはアンインストールできる統合された環境が提供されました。 特定のワークフローを支援するために、表示されているパッケージをフィルター処理できる [フィルター] ドロップダウンが表示されるようになりましたが、パッケージで使用できるアクションは一貫しています。
[インストール済み]フィルターを使用すると、インストールされているパッケージを簡単に確認できます。更新プログラムが利用可能なパッケージを確認できます。その後、バージョンの選択を変更してパッケージをアンインストールまたは更新して、使用可能なアクションを変更できます。
バージョン統合
ソリューション内の複数のプロジェクトに同じパッケージをインストールするのが一般的です。 場合によっては、各プロジェクトにインストールされているバージョンが離れ、使用中のバージョンを統合する必要があります。 NuGet 3.0 プレビュー では、このシナリオ専用の新機能が導入されています。
ソリューション レベルのパッケージ管理ウィンドウにアクセスするには、ソリューションを右クリックし、[ソリューションの NuGet パッケージの管理] を選択します。 そこから、複数のプロジェクトにインストールされているが、使用されているバージョンが異なるパッケージを選択すると、新しい[統合]アクションが使用可能になります。 以下のスクリーンショットでは、Newtonsoft.Json
がバージョン6.0.4
のSamplesClassLibrary
にインストールされ、バージョン5.0.4
と共にSamplesConsoleApp
にインストールされました。
1 つのバージョンに統合するためのワークフローを次に示します。
- リストにある
Newtonsoft.Json
のパッケージを選択します。 Consolidate
ドロップダウンからAction
を選択する- ドロップダウンを
Version
使用して、統合するバージョンを選択します - そのバージョンに統合すべきプロジェクトのチェック ボックスをオンにします (選択したバージョンのプロジェクトはグレー表示されます)。
Consolidate
ボタンを クリックして統合。
操作のプレビュー
実行している操作 (--install/update/uninstall) に関係なく、新しい UI では、プロジェクトに対して行われる変更をプレビューする方法が提供されるようになりました。 このプレビューでは、インストールされる新しいパッケージ、更新されるパッケージ、アンインストールされるパッケージ、および操作中に変更されないパッケージが表示されます。
次の例では、Microsoft.AspNet.署名alR をインストールすると、プロジェクトにかなりの変更が加わることがわかります。
インストール オプション
PowerShell コンソールを使用すると、いくつかの注目すべきインストール オプションを制御できました。 これで、これらの機能も UI に取り込まれました。 依存関係のバージョンを選択する方法の依存関係解決動作を制御できるようになりました。
パッケージのコンテンツ ファイルがプロジェクト内のファイルと競合する場合に実行するアクションを指定することもできます。
無限スクロール
以前は、パッケージをリスト表示するときに、スクロールとページングの両方のパラダイムを持つ UI に関するフィードバックをかなり得ました。 短いリストの一番下までスクロールし、次のページ番号をクリックしてから、もう一度スクロールする必要があるのはかなり一般的でした。 新しい UI では、スクロールするだけで済むため、パッケージリストに無限スクロールを実装しました。これ以上ページングする必要はありません。
動作させる、速くする、美しくする
この新しい UI を試してみることを楽しみにしています。このプレビュー のマイルストーンでは、古き良き"Make it work, make it fast, make it pretty" という古き良き格言に従っています。このプレビューでは、その最初の目標の大部分を達成しました。これは機能します。 私たちはそれがまだかなり速くないことを知っています、そして、私たちはそれがまだかなりではないことを知っています。 今から RC リリースまでの間にこれらの目標に取り組んでいることを信頼してください。 一方、新しい UI の使いやすさ (ワークフロー、操作、新しい UI の使用方法など) に関するフィードバックをお寄せください。
旧 UI と比較して削除した関数がいくつかあります。 そのうちの 1 つは意図的なもので、もう 1 つは時間内に完了しませんでした。
"All" パッケージ ソースの検索
以前の UI を使用すると、すべてのパッケージ ソースに対してパッケージ検索を実行できます。 UI でその機能を削除したので、戻す予定はありません。 この機能は、すべてのパッケージ ソースに対して検索操作を実行し、結果を組み合わせて、並べ替えの選択に基づいて結果を並べ替えようとするために使用されます。
検索の関連性は、一緒に織り込むのが本当に難しいことがわかりました。 Google と Bing で検索を実行し、結果をまとめることが想像できますか。 さらに、この機能は遅く、誤って使用しやすく、実際には役に立たなかったと考えています。 この機能が導入された課題により、フィックスできなかったバグレポートが多数届きます。
すべて更新
以前は、新しい UI にない旧 UI に [すべて更新] ボタンが表示されています。 RC リリースでは、この機能を復活させて頂きます。
新しいクライアント/サーバー API
新しいパッケージ マネージャー UI のすべての新機能に加えて、NuGet のクライアント/サーバー プロトコルの実装の詳細についても取り組んでいます。 この作業は、パッケージの復元やパッケージのインストールなどの重要なシナリオの高可用性を中心に設計された NuGet 用の "API v3" を作成することです。 新しい API は REST と Hypermedia に基づいており、リソース形式として JSON-LD を選択しました。
NuGet 3.0 プレビュー ビットでは、パッケージ ソースドロップダウンに "プレビュー.nuget.org" という名前の新しいパッケージ ソースが表示されます。 そのパッケージ ソースを選択した場合は、新しい API を使用して nuget.org に接続します。新しい API のテスト、フィックス、改善を続けながら、UI でプレビュー ソースを使用できるようにしました。 NuGet 3.0 RC では、この新 API v3 ベースのパッケージ ソースによって、v2 ベースの[nuget.org]パッケージ ソースが置き換えられます。
API v3 に投資したが、これらの新機能はすべて既存の API v2 プロトコルでも動作するようにしました。つまり、nuget.org 以外の既存のパッケージ ソースでも機能します。
予定されている新機能
今から 3.0 RTM の間に、UI に表示される機能を超えて、いくつかの基本的な新しい NuGet 機能にも取り組んでいます。 重要な投資分野の簡単なリストを次に示します。
- NuGet をプラットフォームに深く取り込むには、Visual Studio および MSBuild チームと提携しています。
- インストール時のパッケージ規則を破棄し、代わりに新しい "権限のある" パッケージ マニフェストを導入して、パッケージ化時にこれらの規則を適用する作業を行っています。
- Visual Studio でのパッケージ管理以外のさまざまな doメイン でクライアントコンポーネントとサーバー コンポーネントを再利用できるように、NuGet コードベースのリファクタリングに取り組んでいます。
- "プライベート依存関係" の概念を調査しています。パッケージは、実装の詳細についてのみ他のパッケージへの依存関係を持っていることを示すことができます。また、それらの依存関係を最上位の依存関係として表示しないようにする必要があります。
今後も引き続きご注目ください。
NuGet 3.0 の進行状況とお知らせについては、ブログを参照してください。