Платформа .NET - это не только системные библиотеки от Microsoft. Это ещё и большое сообщество программистов, которые пишут независимый код. Разрабатывая приложения на C# (да и на любом другом языке), не стоит полагаться только на собственные усилия. На данный момент существует огромное количество готового кода, часть из которого надо знать и уметь применять.
Когда-то давно, в поисках готового кода скажем для работы с PDF, приходилось перебирать множество сайтов. Бесконечно гуглить, и наудачу скачивать .zip-файлы, иногда с очень сомнительным содержимым. Какие-то библиотеки были хорошо задокументированы, а какие-то нет. Какие-то коды отлично работали, а какие-то нет. В общем и целом, никакой унификации в этих вопросах не было и близко.
Как можно понять, подобная ситуация была не слишком удобна для качественной разработки приложений. Для решения этой проблемы, в 2010 году был запущен пакетный менеджер NuGet. На момент своего запуска, да в общем-то и на текущее время, NuGet представляет из себя унифицированное удобное хранилище готовых .NET-библиотек, написанных программистами со всего мира.
Таким образом, когда на сегодняшний день возникает потребность в применении какого-то готового программного кода, не нужно идти в Google, а можно зайти в NuGet и поискать библиотеку там. Обычно, это позволяет быстро решить проблему.
NuGet - готовые коды для .NET 🟦
NuGet интегрирован в основную среду разработки Visual Studio. Когда-то давно это был отдельный и независимый проект. Потом его купил Microsoft и сделал из него часть экосистемы .NET. Сегодня, когда разработчику требуется какая-то библиотека, он просто нажимает на пару кнопок внутри Visual Studio, и подключает готовый программный код к своему проекту.
Внутри NuGet представлено 355 тысяч готовых библиотек. За всё время их скачали 320 миллиардов раз. То есть, примерно по 900 тысяч раз на каждую библиотеку. Или примерно по 40 скачиваний на каждого жителя планеты. Исходя из этих метрик, можно некоторым образом представить любовь человечества к программированию на C# / .NET 😄
На сайте NuGet есть подробная статистика по скачиванию библиотек. На первом месте традиционно Newtonsoft.JSON.
Подборка полезных NuGet-пакетов
Конечно же, полезных и популярных NuGet-пакетов очень много. Уверен, что найдутся разработчики которые приведут с десяток альтернативных списков, отвечающих их критериям полезности. Тем не менее, я рад представить собственный список библиотек, которые используются в моей частой практике.
❇️ Newtonsoft.Json - это популярный пакет для работы с форматом JSON ( вот тут статья о том что такое JSON ). Он предоставляет удобные методы для сериализации (преобразования объектов в JSON) и десериализации (преобразования JSON в объекты), а также для манипуляции с разными данными JSON.
❇️ log4net - это библиотека логирования, которая предоставляет простую систему записи всего происходящего внутри приложения в текстовый файл. Она позволяет разработчикам контролировать вывод логов различными способами, включая запись в файлы, базы данных, электронную почту и другие источники.
❇️ HtmlAgilityPack - библиотека для парсинга и манипуляции с HTML-документами в .NET. Внутри библиотеки можно найти удобные средства для извлечения данных из HTML, изменения содержимого и структуры документа, а также навигации по элементам HTML. Короче для тех случаев, когда надо извлечь большое количество данных с какого-то сайта.
❇️ RestSharp - это простая в использовании библиотека для создания API или для взаимодействия с сайтами. Она предоставляет удобные методы для отправки HTTP-запросов (GET, POST, PUT, DELETE и др.) и обработки полученных ответов.
❇️ LazyCache - легковесная библиотека кэширования для .NET. Простой способ кэшировать результаты выполнения методов, что позволяет улучшить производительность приложения, и избежать повторных вычислений.
❇️ EPPlus - библиотека для работы с файлами формата Excel (.xlsx) в .NET. Она позволяет создавать, читать, изменять и сохранять Excel-файлы, предоставляя удобные методы и объектную модель для работы с данными и форматирования.
❇️ PdfSharp - библиотека для создания и обработки файлов формата PDF. Она позволяет генерировать PDF-документы, добавлять текст, изображения, таблицы и другие элементы, а также выполнять различные операции с PDF-файлами, такие как объединение, разделение и извлечение страниц.
❇️ NUnit - популярный фреймворк для написания и запуска юнит-тестов. Внутри можно найти удобные средства для создания тестовых случаев, проверки ожидаемых результатов и выполнения различных проверок в автоматизированном режиме. NUnit обеспечивает широкий спектр возможностей для организации и запуска тестов, а также интеграцию с различными инструментами разработки.
❇️ Dapper - микро ORM (Object-Relational Mapping) для доступа к данным в .NET. Он предоставляет простой и быстрый способ взаимодействия с базами данных, позволяя разработчикам выполнять запросы к базе данных и отображать результаты на объекты .NET без лишней магии, сохраняя при этом производительность.
❇️ CefSharp - это NuGet-пакет, который позволяет интегрировать Chromium Embedded Framework (CEF) в приложения .NET. CEF предоставляет возможность использования браузерного движка Chromium в приложениях WPF и WinForms, позволяя отображать веб-страницы, выполнять JavaScript и обрабатывать события браузера. Если хочешь сделать свой собственный веб-браузер, определённо стоит почитать про эту библиотеку.
Бесплатный программный код 👨💻
Внутри NuGet представлены как платные, так и бесплатные библиотеки. Ну а если более точно, то с моей точки зрения, большая часть библиотек является бесплатной. Загрузить свой программный код в NuGet может так же любой желающий. Для этого не требуется каких-то коммерческих взносов или специальных действий - квалификацию разработчиков тут не проверяют.
Чтобы использовать NuGet, заходи в Visual Studio. Далее нажимай Средства - Диспетчер пакетов NuGet - Управление пакетами NuGet для решения. Там во вкладке "Обзор" пиши в строке поиска что за библиотека тебе нужна. Листай результаты, находи нужную и нажимай "Установить". Наслаждайся готовым кодом!
🔥 Понравилось? Подпишись! Победим восстание роботов вместе! 🔥
🚀 P.S. Ты можешь круто поддержать меня и проект "Войти в IT" на boosty! Я публикую там более эксклюзивный и профессиональный, иногда немного личный контент. Хочешь посмотреть как я выгляжу в реальной жизни? Тогда жми: Ссылка 🚀
P.S.2 У меня ещё есть Telegram-канал. Там посты чуть попроще, и чуть повеселей. Ссылка