概要
Visual Studioのパッケージ管理機能「NuGet」について、あまり知らない人が大まかにイメージできるように簡単にですがまとめてみました。
目次
どういったツールか
読み方は「ニューゲット」もしくは「ヌゲット」と読みます。
公式のNugetのリポジトリに公開されている外部ライブラリをVisual Studioの各プロジェクトにインストールしたり、追加したライブラリのアンインストールやアップデートが簡単にできるようになるツールです。プログラミングの素材の追加に特化したツールのイメージだと思います。
例えばWPFのソフトウェアアーキテクチャであるMVVMパターンで開発を行おうとする場合、「Prism.Core」や「ReactiveProperty」というパッケージがすごく役に立ちますので、NuGetを使用して追加する場合が多いと思います。
※このパッケージを使用しなくてもMVVMは開発できますが、パッケージにあるdllのメソッド等を使用すると、MVVMパターンでの実装が行いやすくなったり、開発が効率的に進むイメージです。
また使用したいライブラリに依存関係があって色々なdllをダウンロードしないと動かないといった場合も、「NuGet」を使用するとこのような依存関係があるライブラリも含めてダウンロードしてプロジェクトに取り込んでくれます。
※例えば上記の「ReactiveProperty」をNugetでインストールすると、依存関係にある「ReactiveExtensions」というものも自動でインストールしてくれます。
自前で作成したdllをパッケージとして公開することもできます。
※公開の方法はWebで調べると色々なサイトがヒットすると思います。
参考:クイック スタート: Visual Studio を使用したパッケージの作成と公開 (.NET Framework、Windows)
NuGetの歴史
元々2010年に「ASP.NET MVC31」と同時に公開されました。
「NuGet」は、かつては「NuPack」という名前でしたが、ソフトウェアパッケージにも「NUPACK」というものがあったため、混同しないように名前が変更された経緯があるらしいです。
初期のころは、「NuGet」は「ASP.NET MVC3」専用という感じだったらしいのですが、その後、「.NET」のパッケージ管理機能として成長していきました。
※もともと「NuGet」のリリースが「ASP.NET MVC3」のリリース時と同じタイミングだったので、初期の頃は両者の連携が強化されいったらしいです。
NuGetの使いかた
私が使用しているVisual Studio 2019では、
Visual Studioの上部の「ツール」 > NuGetパッケージマネージャー > ソリューションのNuGetパッケージの管理
を押すとパッケージを管理する画面が表示されましたので、ここからプロジェクトごとにライブラリの追加等を行うことができました。
拡張機能との違い
「NuGet」は上記の通り、.NETプロジェクトが対象で、プログラミングの素材の追加に特化しています。適用する対象もプロジェクト単位で選択できます。「拡張機能」はプロジェクト固有のものではなく、Visual Studio自体の機能の追加を行うことができる機能のイメージです。
-
Microsoftが開発した、Webアプリケーションを作成するためのフレームワークです。モデルビューコントローラー(MVC)パターンを採用していて、モデル(Model)、ビュー(View)、コントローラー(Controller)の3つの層でアプリケーションを構築します。2009年3月13日にASP.NET MVC1、2010年3月10日にASP.NET MVC2、2010年4月12日にASP.NET MVC3が公開されました。 ↩