Как стать автором
Обновить
839.24
OTUS
Цифровые навыки от ведущих экспертов

C# и .NET: NuGet

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров5.1K
Автор статьи: Рустем Галиев

IBM Senior DevOps Engineer & Integration Architect. Официальный DevOps ментор и коуч в IBM

Привет Хабр! Сегодня поговорим про NuGet

Менеджеры пакетов существуют для множества различных языков программирования и сред разработки. Они облегчают сбор повторно используемого кода создателями пакетов, а также установку этих пакетов потребителями пакетов. Пакеты могут храниться в общедоступных репозиториях в Интернете или в частных репозиториях только для использования командами в конкретной организации. NuGet — это диспетчер пакетов для .NET, и в Интернете есть много тысяч общедоступных пакетов NuGet, которые могут помочь вам выполнить все виды распространенных задач программирования. Сегодня мы сосредоточимся на использовании пакета NuGet.

  Мы научимся:

  • устанавливать пакет NuGet с помощью .NET CLI,

  • отображать список всех пакетов в проекте,

  • использовать ранее установленный пакет в проекте.

Установка

Существует несколько различных инструментов, которые можно использовать для установки пакетов NuGet, в зависимости от того, чего вы пытаетесь достичь, а также от используемой платформы и среды разработки. В этом примере мы будем использовать .NET CLI, так как он может выполнять практически все, что вам когда-либо понадобится делать с NuGet и одинаково хорошо работает на всех платформах.

Мы собираемся установить очень популярный пакет Newtonsoft.Json. Он включает в себя множество функций, облегчающих разработчикам работу с данными в формате JSON. Устанавливаем пакет, выполнив в терминале следующую команду:

dotnet add package Newtonsoft.Json

В терминале увидим вывод, сообщающий нам, что пакет был установлен. Референсы на установленные пакеты добавляются в файл проекта C#. Это избавляет нас от необходимости хранить двоичные исполняемые файлы для каждого пакета в системе управления версиями. Эти файлы могут стать очень большими и громоздкими в обслуживании. Простое сохранение референса на каждый пакет означает, что другие разработчики могут устанавливать пакеты на свои машины по ссылкам.

Откроем файлmy-app.csproj, чтобы увидеть ссылку, которая была добавлена ​​для установленного нами пакета Newtonsoft.Json. Файл проекта представляет собой XML-файл, и ссылка на пакет появится внутри элемента с именем <ItemGroup>.

Сейчас наш проект содержит ссылку только на один пакет NuGet. Однако проекты нередко ссылаются на десятки пакетов. .NET CLI также упрощает просмотр списка всех пакетов, на которые есть ссылки в проекте. Мы запускаем следующую команду в терминале, чтобы увидеть список пакетов в текущем проекте:

dotnet list package

Вы должны увидеть Newtonsoft.Json в списке пакетов верхнего уровня. Теперь, когда мы успешно установили пакет, будем использовать его на следующем шаге для вывода некоторых данных объекта на консоль в формате JSON.

Как только в проекте будет установлен пакет NuGet, мы сможем использовать его так же, как и любую другую ссылку на проект.

Хотя это и не обязательно, код будет менее подробным, если мы добавим оператор using для пространства имен, содержащего установленный нами пакет. Открываем файл Program.cs и добавляем следующую строку вверху файла:

using Newtonsoft.Json;

Это позволит нам обращаться к классам и методам в пакете, не добавляя к ним префикс Newtonsoft.Json.

Вызов метода в пакете

Структура проекта

Пример проекта уже включает класс Person со свойствами Name и Age. Файл Person.cs

public class Person
{
  public string? Name { get; set; }
  public int Age { get; set; }
}

Мы добавляем в файл следующий код в файл Program.cs, чтобы создать три новых экземпляра Person и добавить их в коллекцию с именем people:

var p1 = new Person() { Name = "Marie", Age = 30 };
var p2 = new Person() { Name = "Daniel", Age = 28 };
var p3 = new Person() { Name = "Lanier", Age = 25 };

var people = new List<Person>() { p1, p2, p3 };

Теперь мы воспользуемся методом пакета Newtonsoft.Json для преобразования коллекции объектов в строку JSON, которую можно легко сериализовать и передавать между приложениями. Мы добавляем следующий код (Program.cs) для выполнения преобразования и вывода новой строки в консоль:

string json = JsonConvert.SerializeObject(people, Formatting.Indented);
Console.WriteLine(json);

Обратите внимание, что вызов метода для такого пакета требует от вас понимания пакета и его возможностей. Многие популярные пакеты содержат документацию с подробным описанием того, как использовать объекты и возможности, которые они предоставляют. В качестве примера вы можете просмотреть документацию по вызову метода выше на веб-сайте Newtonsoft.Json.

Чтобы выполнить программу и увидеть вывод JSON, мы запускаем в терминале следующую команду:

dotnet run

Вы должны увидеть JSON-представление трех объектов в консоли.

Установка и использование пакетов NuGet в ваших приложениях — отличный способ повторно использовать код и сократить общее время разработки.

В завершение статьи хочу порекомендовать вам бесплатный урок, на котором с помощью экспертов OTUS вы изучите технологию WebAssembly, познакомитесь с новым способом построения пользовательских интерфейсов, создадите веб-приложение на Blazor WebAssembly.

Теги:
Хабы:
Всего голосов 17: ↑6 и ↓11-4
Комментарии9

Публикации

Информация

Сайт
otus.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
OTUS