Обложка канала

.NET Разработчик

Опытный разработчик не так давно зашёл в .Net и поставил цель получить сертификат Microsoft. Свой ежедневный прогресс он описывает на канале .Net Разработчик. Заметки об изученном материале, советы по повышению производительности и поддержке мотивации, ин

.NET Разработчик

5 лет назад
Открыть в
День 1083. #ЧтоНовенького Специфичные для платформы API Новый .NET является кроссплатформенным. Вы можете запустить своё приложение на разных платформах. Однако использование специфичных для конкретных платформ API означает, что с ними нужно быть осторожным. В .NET появились новые API и анализатор совместимости платформ для решения проблем кроссплатформенности. .NET 5 представил новые статические методы в классе OperatingSystem: - IsAndroid - IsBrowser - IsFreeBSD - IsIOS - IsLinux - IsWindows - и другие. Полный список находится здесь Кроме того, представлены новые атрибуты: - [SupportedOSPlatform] для обозначения, что API специфично для какой-то платформы. - [UnsupportedOSPlatform] для обозначения, что API не подходит для какой-то платформы. См. картинку ниже. Считается, что API без этих атрибутов работают на всех платформах. Анализатор совместимости с платформой включён в список анализаторов качества кода Roslyn. Начиная с .NET 5, он входит в пакет SDK для .NET и включен по умолчанию для .NET 5 и более поздних версий. Подробнее о том, как анализатор определяет зависимость от платформы В .NET 6 представлена концепция включения платформ, когда одна платформа может быть подмножеством другой платформы. Новые настраиваемые атрибуты для зависимых от платформы API: - [SupportedOSPlatformGuard] - [UnsupportedOSPlatformGuard] Например, платформа iOS является подмножеством платформы MacCatalyst. Поэтому для [SupportedOSPlatformGuard("MacCatalyst")] метод OperatingSystem.IsIOS(), помеченный этим атрибутом проверит и iOS, и MacCatalyst. Источник: twitter.com/okyrylc…95752960