Вместо создания своих собственных библиотек и определения своего собственного функционала мы можем использовать уже ранее созданные другими разработчиками библиотеки и добавить их свой проект. Для управления внешними библиотеками в виде отдельных пакетов Microsoft предоставляет специальный менеджер пакетов под названием Nuget.
Физически NuGet-пакет представляет единый архивный файл с расширением .nupkg, который содержит скомпилированный код в виде библиотек dll и других файлов, используемых в коде. Также пакет включает некоторое описание в виде номера версии и вспомогательной информации.
Для упрощения работы с пакетами, их распространенния Microsoft организовал глобальный репозиторий пакетов в виде сервиса nuget.org. И если разработчик хочет поделиться своими наработками, он может загрузить свой код в виде Nuget-пакета в этот репозиторий, а другие разработчики могут скачать этот пакет и использовать его в свой программе. Посмотрим, как устанавливать Nuget-пакеты и использовать их в своем проекте. Прежде всего стоит отметить, что есть различные способы установки пакетов. В данном случае рассмотрим установку пакетов с помощью .NET CLI и в Visual Studio.
Если мы компилируем приложение непосредственно с помощью .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 обладает богатым функционалом в плане работы с 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
указывается название устанавливаемого пакета.