.Net Review
.Net Review
Канал о технологиях .Net и не только. Здесь вы найдете разборы, уроки, фишки технологий и языков программирования... https://t.me/dotnetreview
Читать 3 минуты

Библиотеки .Net. Какие есть? В чём разница?

Image for post

В каждом проекте используется огромное количество библиотек. Функционал разбит по библиотекам специально для того, чтобы при работе с ними не нагружать проект большим объемом неиспользуемой информации. В этой статье подробнее о видах пользовательских библиотек .Net.

Виды

Специфические для платформы библиотеки классов (PSC). Специфические для платформы библиотеки привязаны к одной реализации .NET (например, .NET Framework в Windows) и поэтому могут иметь множество зависимостей в конкретной среде выполнения. Такая среда предоставляет известный набор API (API-интерфейсы .NET и ОС), а также поддерживает и предоставляет данные о состоянии (например, реестр Windows).
Разработчики, создающие специфические для платформы библиотеки, могут в полной мере использовать базовую платформу. При этом такие библиотеки будут работать только на данной платформе, что делает необязательной проверку платформы или другие виды условного кода (нет единого исходного кода для нескольких платформ).
Специфические для платформы библиотеки были основным типом библиотек классов в платформе .NET Framework. Даже после появления других реализаций .NET специфические для платформы библиотеки остались доминирующим типом библиотек.

Переносимые библиотеки классов (PCL). Переносимые библиотеки поддерживаются в нескольких реализациях .NET. Они по-прежнему могут иметь зависимости в известной среде выполнения, но такая среда является искусственной и представляет собой пересечение ряда конкретных реализаций .NET. Это означает, что предоставляемые API и платформенные допущения являются подмножеством того, что было бы доступно для специфической для платформы библиотеки.
Конфигурация платформы выбирается при создании переносимой библиотеки. Существует набор платформ, которые нужно поддерживать (например, .NET Framework 4.5+, Windows Phone 8.0+). Чем больше платформ вы решите поддерживать, тем меньше будет доступно API и платформенных допущений. Здесь действует принцип наименьшего общего знаменателя. На первый взгляд это может вводить в замешательство, так как люди часто думают, что "чем больше, тем лучше", но обнаруживается, что большее количество поддерживаемых платформ приводит к меньшему числу доступных API.
Многие разработчики библиотек перешли с создания нескольких специфических для платформы библиотек для одного исходного кода (с использованием директив условной компиляции) на переносимые библиотеки.

.Net Standard. Библиотеки .NET Standard заменяют концепции специфических для платформы и переносимых библиотек. Они являются специфичными для платформы в том смысле, что они предоставляют все функциональные возможности базовой платформы (без искусственных платформ или пересечений платформ). Они являются переносимыми в том смысле, что они работают на всех поддерживаемых платформах.
.NET Standard предоставляет набор библиотечных контрактов. Реализации .NET должны поддерживать каждый контракт полностью или не поддерживать вообще. Таким образом, каждая реализация поддерживает набор стандартных .NET контрактов. Следствием из этого является то, что каждая библиотека классов .NET Standard поддерживается на платформах, которые поддерживают ее контрактные зависимости.
Контракты .NET Standard не предоставляют все функции платформы .NET Framework (и это не является целью), но они предоставляют намного больше API, чем переносимые библиотеки классов. Со временем будут добавлены дополнительные API.
Библиотеки .NET Standard поддерживаются в следующих платформах.

  • .NET Core
  • .NET Framework
  • Mono
  • Xamarin.iOS, Xamarin.Mac, Xamarin.Android
  • Универсальная платформа Windows (UWP)
  • Windows
  • Windows Phone
  • Windows Phone Silverlight

Разница или когда что использовать?

Специфические библиотеки используются, когда необходимо использовать функционал определенной технологии (напр. Xamarin.Android), тем не менее это устаревший вид библиотек. Переносимую библиотеку есть смысл использовать, когда используемый функционал между платформами не конфликтует. .Net Standard по сути является улучшенной переносимой библиотекой.

Самым современным решением будет использование .Net Standard библиотеки, однако на текущий момент она не поддерживается всеми платформами, поэтому иногда есть смысл выбирать PCL библиотеку и реализовывать через неё специфический функционал.

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

Спасибо за внимание!

Наш телеграмм канал: https://t.me/dotnetreview

Источники: Microsoft .Net Docs.

276 просмотров
Добавить
Еще
.Net Review
Канал о технологиях .Net и не только. Здесь вы найдете разборы, уроки, фишки технологий и языков программирования... https://t.me/dotnetreview
Подписаться