📦 NuGet: Менеджер пакетов для .NET
Как добавлять готовые компоненты, библиотеки и инструменты в ваш проект
🎯 Зачем это нужно?
• Не писать всё с нуля — брать готовые решения.
• Экономить дни и недели разработки.
• Использовать лучшие библиотеки, созданные сообществом.
📌 Для кого лекция: для тех, кто уже создал хотя бы один проект в Visual Studio и хочет научиться подключать сторонние компоненты.
💡 NuGet — это как «магазин приложений», но для библиотек кода.
🧩 Что такое NuGet?
Менеджер пакетов для экосистемы .NET
До NuGet
• Скачивал DLL с сайта.
• Копировал в папку проекта.
• Вручную добавлял ссылку.
• Сам проверял обновления.
😩 Долго и скучно.
С NuGet
• Нажал пару кнопок.
• Библиотека установилась.
• Все зависимости подтянулись.
• Обновление — один клик.
✅ Быстро и удобно.
📦 Факт: NuGet — стандарт для .NET. Без него не обходится ни один серьёзный проект.
🔍 Как открыть менеджер пакетов NuGet
Два способа: графический интерфейс и консоль
🖱️ Графический способ (для новичков):
1. Правой кнопкой по проекту → Manage NuGet Packages.
2. Или: меню Project → Manage NuGet Packages.
3. Или: Tools → NuGet Package Manager → Manage NuGet Packages for Solution.
⌨️ Консоль (продвинутый):
• Tools → NuGet Package Manager → Package Manager Console.
• Команды: Install-Package ИмяПакета, Update-Package ИмяПакета.
✨ Для начала используйте графический интерфейс — он проще и нагляднее.
🛒 Пошаговая установка пакета (на примере Newtonsoft.Json)
Самый популярный пакет для работы с JSON
1️⃣ Открываем Manage NuGet Packages.
2️⃣ Переходим на вкладку Browse.
3️⃣ В строке поиска пишем: Newtonsoft.Json.
4️⃣ Выбираем нужный пакет (обычно самый скачиваемый).
5️⃣ Нажимаем Install.
6️⃣ Ждём несколько секунд.
✅ После установки в проекте появляется папка packages (или ссылки в Dependencies).
💡 Всегда смотрите на количество скачиваний и дату последнего обновления — это признаки хорошего пакета.
📝 Пример: используем Newtonsoft.Json
Сериализация объекта в JSON и обратно
// 1. Добавляем using Newtonsoft.Json;
using Newtonsoft.Json;
// 2. Создаём объект
var person = new { Name = "Анна", Age = 25 };
// 3. Превращаем в JSON
string json = JsonConvert.SerializeObject(person);
Console.WriteLine(json); // {"Name":"Анна","Age":25}
// 4. Превращаем обратно
var restored = JsonConvert.DeserializeObject<dynamic>(json);
Console.WriteLine(restored.Name); // Анна
📌 Пакет установлен один раз — пользоваться им можно в любом файле проекта.
🔥 Newtonsoft.Json используется в миллионах проектов — это надёжный стандарт.
⭐ Топ‑7 самых популярных пакетов NuGet
Что стоит знать каждому .NET‑разработчику
Newtonsoft.Json — работа с JSON.
Microsoft.EntityFrameworkCore — работа с базами данных (ORM).
Serilog — логирование.
AutoMapper — преобразование объектов.
FluentValidation — валидация данных.
Moq — создание поддельных объектов для тестов.
LiveCharts — графики и диаграммы (очень красиво!).
💡 Ищите пакеты по тегу, количеству загрузок и звёздам на GitHub.
🎨 WPF‑пакеты: готовые стили, контролы, темы
Сделайте интерфейс красивым без лишней работы
🔹 MaterialDesignThemes — реализация Material Design от Google (кнопки, поля, карточки).
🔹 MahApps.Metro — современный «плоский» стиль для окон.
🔹 LiveCharts.Wpf — графики и диаграммы с анимацией.
🔹 OxyPlot.Wpf — научные графики.
🔹 Dragablz — вкладки с возможностью перетаскивания.
// После установки MaterialDesignThemes достаточно добавить в App.xaml:
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
✨ Внешний вид меняется глобально, не нужно перерисовывать каждую кнопку.
🔄 Обновление пакетов до свежих версий
Чтобы получать новые функции и исправления ошибок
▶️ Через интерфейс:
• Открыть Manage NuGet Packages.
• Перейти на вкладку Updates.
• Выбрать пакет → нажать Update.
▶️ Через консоль:
Update-Package Newtonsoft.Json — обновить конкретный.
Update-Package — обновить все пакеты в проекте.
⚠️ Перед обновлением читайте Release Notes — иногда бывают критические изменения (breaking changes).
🗑️ Удаление пакета, если он больше не нужен
Держим проект в чистоте
▶️ Графический способ:
Manage NuGet Packages → Installed → выбрать пакет → Uninstall.
▶️ Консоль:
Uninstall-Package Newtonsoft.Json
🔍 После удаления проверьте код — удалите все using, иначе будут ошибки компиляции.
📄 Как NuGet хранит информацию о пакетах
Всё в файле .csproj (или PackageReference)
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="MaterialDesignThemes" Version="4.9.0" />
Что даёт этот подход?
• Можно открыть проект на другом компьютере — NuGet сам скачает пакеты.
• Не нужно хранить DLL в репозитории (экономия места).
• Просто управлять версиями.
✨ Если вы работаете с Git, обязательно добавляйте файл .gitignore (чтобы не заливать папку packages).
⚠️ Частые ошибки при работе с NuGet
Как их избежать
❌ 1. Установка пакета в неправильный проект
В решении может быть несколько проектов. Выбирайте тот, где нужен пакет.
❌ 2. Конфликт версий
Если два пакета требуют разные версии одной библиотеки — используйте NoWarn или обновите более старый пакет.
❌ 3. Забыли добавить using
Пакет установлен, но код не видит класс — добавьте пространство имён в начало файла.
❌ 4. Установка устаревшего пакета
Всегда проверяйте дату последнего обновления и совместимость с вашей версией .NET.
🔎 Официальный сайт NuGet и документация
https://www.nuget.org/
На сайте можно:
• Искать пакеты по ключевым словам.
• Смотреть статистику загрузок.
• Читать описание, версии, зависимости.
• Узнать автора и ссылку на GitHub.
• Скопировать команду установки для консоли.
💡 На странице каждого пакета есть вкладка Usage — там часто показывают примеры кода.
🧪 Практическое задание: «Установка и использование LiveCharts»
Создайте простое приложение WPF с графиком
📌 Задачи:
1. Создать новый WPF-проект.
2. Установить пакет LiveCharts.Wpf через NuGet.
3. Добавить на главное окно элемент <lvc:CartesianChart />.
4. Настроить отображение графика (одна линия с несколькими точками).
5. Запустить и убедиться, что график отображается.
// Пример кода для MainWindow.xaml:
<Window x:Class="MyChartApp.MainWindow"
xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf">
<lvc:CartesianChart Series="{Binding SeriesCollection}" />
</Window>
📌 Сдача: архив с проектом + скриншот работающего графика.
🏁 Что мы узнали
NuGet — неотъемлемая часть .NET‑разработки
✅ Что такое NuGet и зачем он нужен
✅ Как открыть менеджер пакетов
✅ Как найти, установить, обновить, удалить пакет
✅ Популярные пакеты для разных задач
✅ Как использовать пакет в коде (using)
✅ Где искать документацию
🎉 Теперь вы можете расширять свои проекты с помощью тысяч готовых библиотек. Не нужно изобретать велосипеды!
📚 Следующий шаг: изучите создание собственных NuGet-пакетов и публикацию их на nuget.org.