Правильный способ использования Async с VS 2010 теперь, когда выпущен VS 2012?

Из-за ограничений работы мне необходимо продолжить использование Visual Studio 2010 в ближайшем будущем. В то же время я узнал об Async в своем личном кодировании. Является ли последний Async CTP полностью совместимым с языковыми функциями Async на С# 5.0? И устанавливает ли Async CTP правильный способ использования Async с VS2010?

Ответ 1

Async CTP - единственный способ использовать async в Visual Studio 2010. Однако это не то, что async сделал это в .NET 4.5/Visual Studio 2012, несколько ошибок в CTP были исправлены в окончательный выпуск. Вы не получите эти исправления ошибок в Visual Studio 2010, в соответствии с CTP readme:

ПРИМЕЧАНИЕ ЛИЦЕНЗИЯ "КАК ЕСТЬ"

В то время как лицензия Async CTP не мешает вам использовать ее на свой страх и риск в производственных средах, мы советуем вам не делать этого. Цель этого CTP состоит исключительно в том, чтобы собрать отзывы о нашей планируемой асинхронной разработке. Мы не проектировали и не строили его для использования в производственных средах и не тестировали его так тщательно, как это необходимо для использования в производственных средах, и мы считаем, что у него слишком много недостатков, которые могут быть пригодны для использования в производственных средах. Мы благодарны за отзыв о Async CTP, но мы не планируем делать какие-либо исправления для самого Async CTP: исправления, которые мы делаем, будут отображаться только в конечном поддерживаемом выпуске продукта.

Если вам абсолютно необходимо VS 2010, я бы попытался сначала установить Async CTP, а затем установить .NET 4.5 (как время исполнения, так и SDK). Разработайте в Visual Studio, но создайте с помощью автономного компилятора.

Ответ 2

Учитывая то, что .NET 4.5 устанавливается поверх .NET 4 и проблемы, которые могут возникнуть, я постараюсь как можно дальше отделить рабочую среду от вашей личной среды разработки.

Вы можете установить VS2010 и VS2012 на один и тот же компьютер, и я бы порекомендовал это с использованием async CTP:

  • Меньшее загрязнение вашей работы IDE
  • Современная версия С# 5
  • Все преимущества VS 2012, когда вы его используете

Однако, я думаю, что было бы безопаснее разрабатывать на ВМ или отдельную машину, если это вообще возможно.

Наименее привлекательным вариантом будет использование CTP, IMO - я могу видеть только риски на этом фронте, если честно.

Ответ 3

Асинхронные CTP не полностью согласуются с окончательной реализацией С# 5.0, хотя ключевые слова одинаковы.

Если вашей реальной потребностью в бизнесе является создание приложения, которое может работать на .NET 4.0, рекомендуется использовать VS2012 с асинхронный таргетинг (доступно через NuGet).

В этой конфигурации ваша машина разработки имеет .NET 4.5 и VS2012, однако бинарный файл, созданный из вашей сборки решения, будет совместим с .NET 4.0.

Это обеспечивает полную поддержку функции асинхронного языка, поскольку пакет таргетинга VS2012 + async предоставляет вам тот же официальный компилятор и выше, чем качество CTP.