NuGet 2.9 RC リリース ノート | NuGet 3.0 ベータリリース ノート
NuGet 3.0 Preview は、Visual Studio 2015 Preview リリースの一部として 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 Preview について最初に気づくのは、まったく新しい UI です。 モーダル ダイアログではなくなりました。これで、完全な Visual Studio ドキュメント ウィンドウになりました。 これにより、複数のプロジェクト (またはソリューション) の UI を一度に開いたり、ウィンドウを別のモニターに引き離したり、必要に合わせてドッキングしたりできます。
モーダル ダイアログの破棄による使いやすさの違い以外にも、新しい UI には多くの新機能があります。
バージョンの選択
おそらく、最も要求されている UI 機能は、パッケージのインストールと更新のバージョンの選択を許可することです。これは現在使用できます。
パッケージをインストールまたは更新する場合でも、バージョンドロップダウンを使用すると、パッケージで使用できるすべてのバージョンを表示できます。一部の注目すべきバージョンは一覧の一番上に昇格され、簡単に選択できます。 PowerShell コンソールを使用して、最新ではない特定のバージョンを取得する必要がなくなりました。
組み合わされたインストール済み/オンライン/更新ワークフロー
以前の UI には、インストール済み、オンライン、更新プログラムの 3 つのタブがありました。 一覧表示されたパッケージは、これらのワークフローに固有であり、使用可能なアクションもワークフローに固有でした。 それは論理的に思えましたが、多くの皆さんがこの分離によってしばしば混乱することを耳にしました。
パッケージを選択した方法に関係なく、パッケージをインストール、更新、またはアンインストールできる統合されたエクスペリエンスが提供されました。 特定のワークフローを支援するために、表示されているパッケージをフィルター処理できる [フィルター] ドロップダウンが表示されるようになりましたが、パッケージで使用できるアクションは一貫しています。
"インストール済み" フィルターを使用すると、インストールされているパッケージを簡単に確認できます。更新プログラムが利用可能なパッケージを確認できます。その後、バージョンの選択を変更してパッケージをアンインストールまたは更新して、使用可能なアクションを変更できます。
バージョン統合
ソリューション内の複数のプロジェクトに同じパッケージをインストールするのが一般的です。 場合によっては、各プロジェクトにインストールされているバージョンが離れ、使用中のバージョンを統合する必要があります。 NuGet 3.0 Preview では、このシナリオ専用の新機能が導入されています。
ソリューション レベルのパッケージ管理ウィンドウにアクセスするには、ソリューションを右クリックし、[ソリューションの NuGet パッケージの管理] を選択します。 そこから、複数のプロジェクトにインストールされているが、使用されているバージョンが異なるパッケージを選択すると、新しい "統合" アクションが使用可能になります。 次のスクリーンショットでは、バージョン6.0.4のNewtonsoft.JsonがSamplesClassLibraryにインストールされ、バージョン5.0.4のNewtonsoft.JsonがSamplesConsoleAppにインストールされています。
1 つのバージョンに統合するためのワークフローを次に示します。
- 一覧で
Newtonsoft.Jsonパッケージを選択します - [
Consolidate] ドロップダウンから [Action] を選択する -
Versionドロップダウンを使用して、統合するバージョンを選択します。 - そのバージョンに統合する必要があるプロジェクトのチェック ボックスをオンにします (選択したバージョンのプロジェクトはグレー表示されます)。
- [
Consolidate] ボタンをクリックして統合を実行します
操作のプレビュー
実行している操作 (--install/update/uninstall) に関係なく、新しい UI では、プロジェクトに対して行われる変更をプレビューする方法が提供されるようになりました。 このプレビューでは、インストールされる新しいパッケージ、更新されるパッケージ、アンインストールされるパッケージ、および操作中に変更されないパッケージが表示されます。
次の例では、Microsoft.AspNet.SignalR をインストールすると、プロジェクトにかなりの変更が加わることがわかります。
インストール オプション
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 Preview ビットでは、パッケージ ソースドロップダウンに "preview.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 でのパッケージ管理以外のさまざまなドメインでクライアントコンポーネントとサーバー コンポーネントを再利用できるように、NuGet コードベースのリファクタリングに取り組んでいます。
- "プライベート依存関係" の概念を調査しています。パッケージは、実装の詳細についてのみ他のパッケージへの依存関係を持っていることを示すことができます。また、それらの依存関係を最上位の依存関係として表示しないようにする必要があります。
ご期待ください
NuGet 3.0 の進行状況とお知らせについては、 ブログ を参照してください。