Книга: Конкурентность в C#. Асинхронное, параллельное и многопоточное программирование. 2-е межд. изд.
Назад: Глава 14. Сценарии
Дальше: Приложение Б. Распознавание и интерпретация асинхронных паттернов

Приложение А. Поддержка унаследованных платформ

Многие технологии, описанные в книге, также в той или иной степени поддерживаются на старых платформах. Если вы оказались в незавидной ситуации и вам приходится поддерживать эти платформы, то это приложение поможет определить, какие технологии вам доступны. Использование этих технологий на старых платформах не идеально; но даже если вы добьетесь своего и код заработает, учтите, что единственным долгосрочным решением является обновление целевой платформы для кода. Предполагается, что это приложение представляет собой историческую справку, а не набор рекомендаций; возможно, оно будет полезно программистам, занимающимся сопровождением старого кода.

В табл. А.1 приведена сводка поддержки старых платформ для разных технологий.

Таблица А.1. Поддержка старых платформ

Платформа

async

Parallel

Reactive

Dataflow

Параллельные коллекции

Неизменяемые коллекции

.NET 4.5

ü

ü

NuGet

NuGet

ü

NuGet

.NET 4.0

NuGet

ü

NuGet

 

ü

X

Windows Phone Apps 8.1

ü

ü

NuGet

NuGet

ü

NuGet

Windows Phone SL 8.0

ü

X

NuGet

NuGet

X

NuGet

Windows Phone SL 7.1

NuGet

X

NuGet

X

X

X

Silverlight 5

NuGet

X

NuGet

X

X

X

Поддержка async на старых платформах

Если вам нужна поддержка async на старых платформах, установите NuGet-пакет для Microsoft.Bcl.Async (табл. А.2).

scorp.tiff

Не используйте Microsoft.Bcl.Async для включения поддержки async на платформе ASP.NET в .NET 4.0! Конвейер ASP.NET был обновлен в .NET 4.5 — в него была включена поддержка async, и вы должны использовать .NET 4.5 или более новую версию для async-проектов ASP.NET. Пакет Microsoft.Bcl.Async не предназначен для приложений ASP.NET.

Таблица А.2. Поддержка async на старых платформах

Платформа

Поддержка async

.NET 4.5

ü

.NET 4.0

NuGet: Microsoft.Bcl.Async

Windows Phone Apps 8.1

ü

Windows Phone SL 8.0

ü

Windows Phone SL 7.1

NuGet: Microsoft.Bcl.Async

Silverlight 5

NuGet: Microsoft.Bcl.Async

При использовании Microsoft.Bcl.Async многие составляющие современного типа Task присутствуют в типе TaskEx, включая Delay, FromResult, WhenAll и WhenAny.

Поддержка Dataflow на старых платформах

Чтобы использовать TPL Dataflow, установите NuGet-пакет System.Threading.Tasks.Dataflow в своем приложении. Библиотека TPL Dataflow обладает ограниченной поддержкой старых платформ (табл. А.3).

scorp.tiff

Не используйте старый пакет Microsoft.Tpl.Dataflow. Он больше не поддерживается.

Таблица А.3. Поддержка TPL Dataflow на старых платформах

Платформа

Поддержка TPL Dataflow

.NET 4.5

NuGet: System.Threading.Tasks.Dataflow

.NET 4.0

X

Windows Phone Apps 8.1

NuGet: System.Threading.Tasks.Dataflow

Windows Phone SL 8.0

NuGet: System.Threading.Tasks.Dataflow

Windows Phone SL 7.1

X

Silverlight 5

X

Поддержка System.Reactive на старых платформах

Чтобы использовать System.Reactive, установите NuGet-пакет System.Reactive в своем приложении. Библиотека System.Reactive исторически обладает широкой поддержкой разных платформ (табл. А.4); тем не менее многие старые платформы в настоящее время не поддерживаются.

Таблица А.4. Поддержка System.Reactive на старых платформах

Платформа

Поддержка Reactive

.NET 4.7.2

NuGet: System.Reactive

.NET 4.5

NuGet: System.Reactive v3.x

.NET 4.0

NuGet: Rx.Main

Windows Phone Apps 8.1

NuGet: System.Reactive v3.x

Windows Phone SL 8.0

NuGet: System.Reactive v3.x

Windows Phone SL 7.1

NuGet: Rx.Main

Silverlight 5

NuGet: Rx.Main

scorp.tiff

Старый пакет Rx.Main больше не поддерживается.

Назад: Глава 14. Сценарии
Дальше: Приложение Б. Распознавание и интерпретация асинхронных паттернов