Всякий раз, когда в текущем процессе появляются отклонения, необходимо задавать следующие вопросы: «Произошло ли это потому, что у нас не было стандарта? Было ли это потому, что мы не следовали стандарту? Это произошло потому, что стандарт был неадекватнымЭ» Масааки Имаи (автор концепции Кайдзен)
Кроссплатформенность — одно из основных требований к приложению на рынке.
Большинство современных языков программирования являются кроссплатформенными, однако практически во всех языках разработчик сталкивается с проблемой совместимости своего программного обеспечения с той или иной системой.
Вам необходимо скомпилировать свой проект для конкретной операционной системы или разработать проект для среды выполнения интерпретируемого языка.
Среда выполнения .
NET позволяет разрабатывать кроссплатформенное программное обеспечение с использованием промежуточного кода (байт-кода).
На мой взгляд, .
NET выглядит лучшим решением для кроссплатформенной разработки программного обеспечения.
Однако, как и все остальные, это решение имеет свои недостатки.
.
NET Standard предназначен для их устранения.
Как это было
Рассмотрим несколько платформ .NET. Во-первых, .
NET Framework доступна только в Windows; вы не можете запустить среду выполнения в других операционных системах.
Во-вторых, Mono/Xamarin — это действительно кроссплатформенное решение, поддерживающее Mac, IOS, Android. Среди недостатков — отсутствие полной совместимости с .
NET Framework, в результате чего при портировании на Mono/Xamarin приходится вырезать из проекта куски кода.
Еще одна платформа, появившаяся совсем недавно, — .
NET Core. Он позволяет разрабатывать и запускать кроссплатформенное серверное программное обеспечение для Windows, Linux, Mac, Docker. Даже при большом разнообразии и охвате операционных систем разрабатываемая программа может не быть кроссплатформенной, т.к.
сами платформы не полностью совместимы.
Решение есть — разрабатываем ядро, полностью совместимое со всеми платформами, и добавляем недостающие части.
Как определить, что совместимо, а что нет? Останется только потратить время на изучение документации и API этих платформ.
Портативная библиотека классов — предок стандартной библиотеки .
Net.
Портативная библиотека классов (PCL) — это инструмент для разработки кроссплатформенной библиотеки.
При создании проекта вам необходимо выбрать список платформ и начать разработку.
Первоначально PCL поддерживал только Windows и Windows Phone. Вскоре Microsoft приобрела Xamarin, что сразу же обеспечило поддержку Xamarin в PCL. По мере развития .
NET Core поддержка этой платформы появилась и в PCL. Платформ становится все больше — поэтому PCL, как пересечения платформ, становится все меньше.
Microsoft решила предложить альтернативное решение.
Новая стандартная библиотечная платформа .
NET
Microsoft добавляет новую платформу стандартной библиотеки .
NET. Первая мысль: «теперь надо прочитать еще больше документации, чтобы проект работал и на этой платформе».
Как оказалось, это не так.
Стандартная библиотека .
NET — это формальный набор спецификаций для общих интерфейсов других платформ: .
NET Core, .
NET Framework, Mono/Xamarin и других.
Библиотеки, соответствующие спецификациям .
NET Standard, можно использовать на различных платформах .
NET. Фактически, Standard гарантирует возможность использования библиотек в различных средах выполнения и привносит столь недостающую универсальность в экосистему .
NET. .
NET Standard меняет архитектуру приложений, он представляет собой прослойку между общей инфраструктурой .
NET и конечными платформами.
Стало намного проще изолировать кроссплатформенное ядро приложения.
Достаточно, чтобы ядро было скомпилировано под Standard. Также в этом ядре можно использовать любые другие стандартные библиотеки .
NET. Новый слой является куратором будущих платформ.
Новые платформы должны будут соответствовать стандарту .
NET, а не наоборот, как это было в случае с PCL.
Свой Стандарт для каждой платформы
Стандартная библиотека .NET поставляется в различных версиях — каждая версия полностью совместима со следующей (чего не происходит с PCL).
Обратная совместимость отсутствует. Если вы выберете более позднюю версию, для разработки библиотеки будет доступно больше API. Однако это означает, что разрабатываемую библиотеку будет поддерживать меньше платформ.
Ниже представлена таблица различных версий .
NET Standard (таблица составлена для Release-версии .
NET Standard).
Название целевой платформы Псевдоним .
NET Стандарт нетстандарт 1.0 1.1 1.2 1.3 1.4 1.5 1.6 .
NET ядро сетевое приложение → → → → → → 1.0 .
NET Framework сеть → 4.5 4.5.2 4.5.1 4.6 4.6.1 4.6.2 4.6.3 Универсальная платформа Windows уап → → → → 10.0 Окна победить → 8.0 8.1 Windows Phone впа → → 8.1 Windows Phone Silverlight WP 8.1 8.0 Платформы Mono/Xamarin → → → → → → * Мононуклеоз → → * В первой строке показаны номера версий стандартной библиотеки .
NET. Каждая следующая строка определяет платформу и версию, которая может использовать библиотеку, написанную с использованием соответствующего стандарта.
Стрелки указывают, совместима ли данная стандартная версия со следующей ячейкой в той же строке.
Примеры:
Если библиотека соответствует спецификациям .NET Standard 1.3, ее можно использовать только на следующих платформах: .
NET Framework 4.6 (и более поздних версиях), .
NET Core, Universal Windows Platform 10 (UWP) и Mono/Xamarin. Если библиотека написана под Стандарт 1.3, то она может использовать другие библиотеки, написанные с использованием версий Стандарта: 1.0, 1.1, 1.2, 1.3.
Понимание стандартной библиотеки .
NET
Стандартную библиотеку .
NET можно представить в виде абстрактных наборов, каждый следующий будет содержать предыдущий и добавлять что-то свое, охватывая больше кода платформ .
NET. Соответственно, их размер будет увеличиваться по мере увеличения номера версии.
С каждой новой версией функциональность ядра приложения будет расти, однако многие возможности «полноценных» платформ будут недоступны.
Посмотрим на образы других наборов: .
NET Framework, .
NET Core, Mono/Xamarin:
.
NET Standard одной и той же версии охватывает идентичный набор кода для этих платформ.
И находится он целиком в пределах их пересечения.
Ядро приложения будет расположено внутри центрального круга.
Само приложение лучше разделить на три части, чтобы реализовать поддержку других платформ.
Таким образом, готовый продукт будет работать сразу на трёх платформах и нескольких операционных системах.
Плюсы использования стандартной библиотеки .
NET:
Кроссплатформенность, несколько платформ .
NET, несколько операционных систем.
Поддержка кода — проект будет проще поддерживать после релиза, добавляя в него новый функционал без портирования.
Гарантия работы — следующая библиотека от Nuget для .
NET Standard обязательно будет работать на нескольких операционных системах.
Недостатки использования стандартной библиотеки .
NET:
Ограничения функциональности «из коробки» — .
NET Standard продолжает развиваться.
Трудности с портированием существующих проектов на .
NET Standard.
Заключение
Стандартная библиотека .NET — хорошая замена неуклюжей переносимой библиотеке классов.
Стандартная библиотека намного лучше с точки зрения кроссплатформенности.
Теперь вы можете легко изолировать ядро кросс-платформенного приложения или разработать кросс-платформенную библиотеку, соответствующую спецификациям .
NET Standard. Затем напишите необходимые интерфейсы для нужных операционных систем и получите готовый продукт.
Теги: #.net стандарт #.
NET #xamarin #.
net core #C++ #.
NET #Mono and Moonlight #C++ #xamarin #Разработка для Windows
-
Блендер Для Школы И Университета
19 Oct, 24 -
Обучение По Программе Masa В Израиле
19 Oct, 24 -
Сс: В Каком Мире Мы Будем Жить?
19 Oct, 24