Posted on 29. May 2019

Анонс .NET Framework 4.8. Часть 1

Недавно был выпущен .NET Framework 4.8. Он входит в Windows 10 May 2019 Update. .NET Framework 4.8 также доступен на Windows 7+ и Windows Server 2008 R2+.

Вы можете установить .NET 4.8 на сайте .NET Download. Для сборки приложений, ориентированных на .NET Framework 4.8, Вы можете скачать NET 4.8 Developer Pack. Если Вам нужна среда выполнения .NET 4.8, Вы можете попробовать:

  • .NET 4.8 Web Installer – требует подключение к Интернету во время установки
  • .NET 4.8 Offline installer – может быть загружен и установлен в режиме оффлайн

.NET Framework 4.8 включает в себя обновленный набор инструментов, а также улучшения в нескольких областях:

  • [Runtime] JIT и NGEN улучшения
  • [BCL] Обновленный ZLib
  • [BCL] Уменьшенное FIPS воздействие на криптографию
  • [WinForms] Улучшения доступности
  • [WCF] Улучшенное поведения сервиса
  • [WPF] Усовершенствования с высоким разрешением, улучшения UIAutomation

Вы можете увидеть полный список улучшений в заметках о .NET Framework 4.8 выпуске. Ссылки также были обновлены для .NET 4.8.

Поддерживаемые Windows версии

Windows Client версии: Windows 10 версия 1903, Windows 10 версия 1809, Windows 10 версия 1803, Windows 10 версия 1709, Windows 10 версия 1703, Windows 10 версия 1607, Windows 8.1, Windows 7 SP1

Windows Server версии: Windows Server 2019, Windows Server версии 1803, Windows Server 2016, Windows Server 2012, Windows Server 2012 R2, Windows Server 2008 R2 SP1

Новые функции в .NET Framework 4.8

Runtime - JIT улучшения

JIT в .NET 4.8 основан на .NET Core 2.1. Все исправления ошибок и многие улучшения производительности, на основе генерации кода из .NET Core 2.1, теперь доступны в .NET Framework.

Runtime - NGEN улучшения

NGEN изображения в .NET Framework больше не содержат доступных для записи и исполняемых разделов. Это уменьшает площадь, доступную для атак, которые пытаются выполнить произвольный код, изменяя память, которая будет выполняться.

Несмотря на то, что во время выполнения все еще будут доступны для записи и исполняемые данные в памяти, это изменение удаляет сопоставленные из NGEN изображения, позволяя им работать в ограниченных средах, которые не разрешают выполнение / запись разделов в изображениях.

Runtime - Сканирование на наличие вредоносного ПО для всех сборок

В предыдущих .NET Framework версиях Windows Defender или другие сторонние программы по защите от вредоносного ПО автоматически сканировали все сборки, загруженные с диска, на наличие вредоносных программ. Однако сборки, загруженные из других источников, например, с использованием Assembly.Load(byte[]), не будут сканироваться и потенциально могут содержать вирусы.

.NET Framework 4.8 на Windows 10 запускает сканирование этих сборок с помощью Windows Defender и многих других решений для защиты от вредоносных программ, в которых реализован интерфейс сканирования на наличие вредоносного ПО. В будущем это усложнит маскировку вредоносного ПО в .NET приложениях.

BCL - Обновленный ZLib

Начиная с .NET Framework 4.5 использовалась нативная ZLib версия (нативная внешняя библиотека сжатия, используемая для сжатия данных) из http://zlib.net в clrcompression.dll, чтобы обеспечить реализацию deflate алгоритма. В .NET Framework 4.8 обновлен clrcompression.dll для использования 1.2.11 версии, которая включает в себя несколько ключевых улучшений и исправлений.

BCL – Уменьшенное FIPS воздействие на криптографию

.NET Framework 2.0+ имеет классы провайдеров криптографии, такие как SHA256Managed, которые генерируют CryptographicException, когда системные криптографические библиотеки настроены в «FIPS режиме». Эти исключения генерируются, потому что управляемые версии не прошли FIPS сертификацию (Федеральные стандарты обработки информации) 140-2 (генерирование JIT и NGEN изображений приведет к аннулированию сертификата), в отличие от системных криптографических библиотек. Лишь немногие разработчики обладают девайсами для разработки в «FIPS режиме», в результате чего эти исключения возникают в процессе сборки (или в системах заказчика). «FIPS режим» также использовался в .NET Framework для блокировки криптографических алгоритмов, которые не считались утвержденными алгоритмами по FIPS правилам.

Для приложений, созданных для .NET Framework 4.8, эти исключения больше не будут ставиться (по умолчанию). Вместо этого SHA256Managed класс (и другие управляемые классы криптографии) будет перенаправлять криптографические операции в системную библиотеку криптографии. Это изменение эффективно устраняет потенциально запутанную разницу между средами разработчиков и производственными средами, в которых выполняется код, и заставляет собственные компоненты и управляемые компоненты работать в рамках одной и той же криптографической политики.

Приложения, нацеленные на .NET Framework 4.8, будут автоматически переключаться на более новую политику и больше не будут видеть исключения, генерируемые из MD5Cng, MD5CryptoServiceProvider, RC2CryptoServiceProvider, RIPEMD160Managed и RijndaelManaged, в «FIPS режиме». Приложения, которые зависят от исключений из предыдущих версий, могут вернуться к предыдущему поведению, установив для AppContext параметра «Switch.System.Security.Cryptography.UseLegacyFipsThrow» значение «true».

Windows Forms - Улучшения доступности

В .NET Framework 4.8 WinForms добавляет три новые функции, которые позволят разработчикам писать более доступные приложения. Добавленные функции предназначены для того, чтобы сделать более надежную передачу данных приложения пользователям с плохим зрением. Была добавлена поддержка всплывающих подсказок, когда пользователь управляет с помощью клавиатуры, были добавлены LiveRegions и Notification Events во многие часто используемые элементы управления.

Чтобы включить эти функции, в Вашем приложении должны быть следующие AppContextSwitches в App.config файле:

Windows Forms - Поддержка UIA LiveRegions в Labels и StatusStrips

UIA Live Regions позволяют разработчикам приложений уведомлять программы чтения с экрана об изменении текста в элементе управления, расположенном отдельно от места, где работает пользователь. Примерами того, где это может пригодиться, может быть StatusStrip, который показывает состояние соединения. Если соединение разорвано и Status изменяется, разработчик может уведомить программу чтения с экрана об этом изменении. В Windows Forms реализованы UIA LiveRegions как для элемента управления Label, так и для элемента управления StatusStrip.

Пример использования LiveRegion в элементе управления Label:

Вы также можете внедрить UserControl в качестве Live региона:

Windows Forms – UIA Уведомления о Событиях

В Windows 10 Fall Creators Update, Windows платформа представила новый метод, позволяющий приложению уведомлять Narrator о том, что содержимое изменилось, и Narrator должен уведомить об этом изменении. UIA уведомление о событии предоставляет Вашему приложению способ вызвать UIA событие, после чего Narrator просто делает объявление на основе текста, который Вы добавляете вместе с событием, без добавления соответствующего элемента управления в Ваш пользовательский интерфейс. В некоторых случаях это значительно улучшает доступность Вашего приложения. Для получения дополнительной информации о UIA Уведомлениях о Событиях, смотрите этот блог пост

Примером, где может пригодиться Уведомление, является уведомление о ходе какого-либо процесса, который может занять какое-то время.

Пример вызова Уведомления о событии:

Windows Forms - Комбинации доступа с клавиатуры

На данный момент всплывающая подсказка элемента управления может быть вызвана только путем перемещения указателя мыши на элемент управления. Эта новая функция позволяет пользователю клавиатуры вызывать всплывающую подсказку элемента управления, фокусируя элемент управления с помощью клавиши табуляции или клавиш со стрелками с клавишами модификатора или без них. Это особенное улучшение требует дополнительного AppContextSwitch, как показано в следующем примере:

  1. Создайте новое WinForms приложение
  2. Добавьте следующий XML-файл в App.config файл
  3. Добавьте несколько кнопок и элемент управления ToolTip в форму приложения.
  4. Установите подсказки для кнопок.
  5. Запустите приложение и управляйте с помощью клавиатуры:

Windows Forms - Иерархическая структура изменений доступности DataGridView

В настоящее время доступная иерархия (автоматизации пользовательского интерфейса) показывает элемент поля редактирования как дочерний элемент отредактированной в настоящий момент ячейки, но не как корневой дочерний DataGridView элемент. Обновление иерархической структуры можно наблюдать с помощью Inspect инструмента:

Анонс .NET Framework 4.8. Часть 2

Оригинал



Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading