Главная страница   /   14.1. Знакомство с NuGet (ASP.NET MVC 4 в действии

ASP.NET MVC 4 в действии

ASP.NET MVC 4 в действии

Джеффри Палермо

14.1. Знакомство с NuGet

NuGet устанавливается вместе с MVC и упрощает процесс разработки на MVC. NuGet – это расширение Visual Studio, которое позволяет вам с легкостью помещать в ваш Visual Studio проект библиотеки, компоненты и, что наиболее важно, их конфигурацию. Эти компоненты называются NuGet пакетами, и в них могут входить .NET комплекты, файлы JavaScript, HTML и Razor файлы, CSS файлы, изображения и даже файлы, которые способны добавлять конфигурацию в файл web.config вашего приложения.

Когда вы создаете новый MVC проект в Visual Studio, проект поставляется с некоторыми уже установленными NuGet пакетами: jQuery, jQuery UI, Modernizr и Entity Framework. Это большое дело, поскольку jQuery и Modernizr – это проекты с открытым исходным кодом, которые имеют частые релизы – намного более частые, нежели график релизов ASP.NET или MVC. Включение в проект по умолчанию таких библиотек, как NuGet пакеты, безумно облегчает процесс обновления на последнюю версию при помощи одного нажатия кнопки. Ранее обновление этих библиотек заключалось бы в ручном поиске каждого веб-сайта проекта и загрузке файлов.

Сверх того, NuGet понимает, как пакеты могут обладать зависимостями от других пакетов. Пакетные зависимости могут быть тривиальными или сложными, но NuGet понимает, как работать с ними и дает возможность создателям пакетов указывать правила работы с ними таким образом, чтобы вам не пришлось самим их выводить. Именно здесь и раскрывается настоящая сила NuGet. До NuGet эти правила управления зависимостями передавались при помощи заметок к выпуску (release notes), публикации блогов или иногда совсем не передавались – эти графы зависимостей утяжеляли процесс использования сторонних библиотек. NuGet превратил всю эту сложность в правила, которые реализуются создателями пакетов, а выходной результат – это элементарный опыт для разработчиков, которые всего лишь хотят использовать компоненты и библиотеки и продолжать писать код, а не отлаживать проблемы, связанные с конфигурациями и зависимостями.

Несмотря на то, что это изменение может показаться тривиальным, на самом деле это не так. Возможность быстро обновляться и перемещаться позволяет вам тратить время на написание кода, а не на догадки и тестирование библиотек. Что касается NuGet, если вы обновляете библиотеку и ваши тесты провалились, самое элементарное – это откатиться на предыдущую версию. NuGet имеет как GUI интерфейс, так и интерфейс командной строки. В этом разделе мы пройдемся по процессу обновления библиотеки из используемого по умолчанию шаблона проекта при помощи GUI интерфейса.

Обновление пакета

Давайте обновим пакет из используемого по умолчанию шаблона проекта с помощью NuGet. В окне Solution Explorer программы Visual Studio нажмите правой кнопкой мыши на записи проекта и в контекстном меню выберите пункт Manage NuGet Packages (как это продемонстрировано на рисунке 14-1). После выбора этого пункта отобразится диалоговое окно Manage NuGet Packages.

Рисунок 14-1: Открытие диалогового окна Manage NuGet Packages.

Диалоговое окно Manage NuGet Packages подразумевает демонстрацию пакетов, которые установлены в ваш проект и которые имеют доступные обновления на официальном источнике пакетов, как это показано на рисунке 14-2. Источник пакетов – это открытый хостинг-сервер в интернете, в котором размещены библиотеки и компоненты как с открытым исходным кодом, так и с закрытым.

Рисунок 14-2: Диалоговое окно Manage NuGet Packages.

Кнопка Update отображается для каждого пакета, что позволяет вам обновлять файлы в вашем проекте. Если вы нажмете кнопку Update для jQuery, то в вашем проекте будут иметь место следующие действия:

  1. Будет удалена старая версия jQuery.
  2. Будут удалены другие пакеты, которые полагаются на jQuery.
  3. jQuery и другие библиотеки будут обновлены.

Результаты этих действий отображаются в диалоговом окне обновлений, как это продемонстрировано на рисунке 14-3.

Рисунок 14-3: Диалоговое окно обновления NuGet

Понимание основных принципов NuGet

Несмотря на то, что кое-что из того, что делает NuGet, кажется магическим, процесс установки и обновления пакетов довольно прост. Но важно понимать некоторые основные принципы NuGet.

Самое важное, что нужно знать, – это то, что NuGet создаст папку под наванием Packages внутри вашего файла решения. Внутрь этой папки NuGet загрузит пакеты и извлечет некоторую часть их контента в именованные папки, как это продемонстрировано на рисунке 14-4. К этим папкам в дальнейшем будут обращаться ваши проекты при установке в проект пакета. Причина, почему это является важным, – это тот факт, что когда вы используете систему контроля версий, то вам необходимо добавлять все файлы папки Packages в вашу систему контроля версий. Без этих файлов решение не будет компилироваться в тех случаях, когда один из членов команды поместит исходный код в другое местоположение или на другую машину.

Рисунок 14-4: Папка Packages, созданная из шаблона MVC 3 проекта, используемого по умолчанию.

В вашем проекте NuGet добавит файлы в папку Packages, а также поместит файлы в проект. Рисунок 14-5 демонстрирует файлы в папке Scripts, которые были обновлены в рамках этого процесса. NuGet обладает способностью добавлять в ваш проект файлы любого вида.

Рисунок 14-5: Новые файлы, добавленные NuGet в Solution Explorer.

Теперь, когда вы приобрели базовое понимание того, что делает NuGet, мы начнем использовать его для помещения в проект сторонних компонентов. Мы рассмотрим более продвинутые сценарии NuGet, включая создание NuGet пакетов, в главе 19.