Вместо создания своих собственных библиотек и определения своего собственного функционала мы можем использовать уже ранее созданные другими разработчиками библиотеки и добавить их свой проект. Для управления внешними библиотеками в виде отдельных пакетов Microsoft предоставляет специальный менеджер пакетов под названием Nuget.
Физически NuGet-пакет представляет единый архивный файл с расширением .nupkg, который содержит скомпилированный код в виде библиотек dll и других файлов, используемых в коде. Также пакет включает некоторое описание в виде номера версии и вспомогательной информации.
Для упрощения работы с пакетами, их распространенния Microsoft организовал глобальный репозиторий пакетов в виде сервиса nuget.org. И если разработчик хочет поделиться своими наработками, он может загрузить свой код в виде Nuget-пакета в этот репозиторий, а другие разработчики могут скачать этот пакет и использовать его в свой программе. Посмотрим, как устанавливать Nuget-пакеты и использовать их в своем проекте. Прежде всего стоит отметить, что есть различные способы установки пакетов. В данном случае рассмотрим установку пакетов с помощью .NET CLI и в Visual Studio.
Установка nuget-пакетов с помощью .NET CLI
Если мы компилируем приложение непосредственно с помощью .NET CLI без каких-нибудь сред разработки типа Visual Studio, то мы можем воспользоваться встроенными инструментами, которые имеются в .NET SDK.
Для примера создадим с помощью .NET CLI новый проект консольного приложения:
dotnet new consoleДля примера возьмем такой популярный Nuget-пакет как Newtonsoft.Json, который предназначен для работы с кодом json. Для этого перейдем в терминале к расположению проекта и выполним команду:
dotnet add package Newtonsoft.JsonПосле команды dotnet add package указывается имя пакета:
если после этого мы откроем файл конфигурации проекта с расширением csproj, то встретим там элемент PackageReference, который представляет добавленный пакет
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
</ItemGroup>
Здесь мы видим атрибут Include, который указывает на название пакета для включения в проект, и атрибут Version - версию пакета.
Пакет добавили, теперь используем его. Для этого определим следующий код программы:
using Newtonsoft.Json; // подключаем пространство имен из пакета Newtonsoft.Json
Person tom = new Person("Tom", 38);
// сериализуем объект tom в код json
string json = JsonConvert.SerializeObject(tom);
Console.WriteLine(json);
class Person
{
public string Name {get;set;}
public int Age {get;set;}
public Person(string name, int age)
{
Name = name;
Age = age;
}
}
С помощью вызова статического метода JsonConvert.SerializeObject(tom) сериализуем объект tom в код json и потом этот код выводим на консоль.
Запустим проект командой dotnet run и посмотрим на результат программы:
{"Name":"Tom","Age":38}Таким образом, мы установили в проект Nuget-пакет и использовали его функциональность в своей программе. Если впоследствии пакет станет не нужен, то его можно удалить командой:
dotnet remove package Newtonsoft.JsonПосле команды dotnet remove package указывается название удаляемого пакета.
Установка пакета в Visual Studio
Visual Studio обладает богатым функционалом в плане работы с nuget-пакетами. Так, возьмем также простейший проект консольного приложения и добавим в него тот же пакет Newtonsoft.Json. Для этого нажмем правой кнопкой на название проекта и в контекстном меню выберем Manage NuGet Packages...:
Нам откроется встроенный менеджер пакетов Nuget:
Для упрощения поиска нужного пакета введем название пакета в поле поиска. После этого список пакетов обновится. И обычно первый пакет в этом списке тот, который нужен. При необходимости в правой части мы можем посмотреть информацию о пакете.
Итак, нажмем на кнопку Install для его установки. Далее может отобразиться дополнительное окно для просмотра пакетов, которые непосредственно будут установлены:
После установки в структуре проекта появится узел Packages с установленным пакетом, и соответствующая запись будет внесена в файл конфигурации проекта:
И теперь мы также сможем использовать функциональность пакета в программе.
В качестве альтернативы для добавления пакетов можно использовать Package Manager Console. Для этого в меню Visual Studio перейдем к пункту Tools -> NuGet Package Manager -> Package Manager Console. И в открывшемся внизу в Visual Studio окне Package Manager Console введем команду:
Install-Package Newtonsoft.JsonФормат: после команды Install-Package указывается название устанавливаемого пакета.