В настоящее время я начинаю создавать приложение, которое принесет много пользы от функции асинхронного ожидания С# 5. Но я не уверен, какую версию VS и время выполнения async использовать.
Глядя на диаграммы популярности ОС, мне нужно будет поддерживать Windows XP еще три года или около того. Похоже, что .net 4.5 работает только на более новых версиях Windows, поэтому мне нужно настроить таргетинг на .net 4.0. Машины для разработки используют Windows 7, поэтому использование более новой версии VS не является проблемой.
Теперь мне нужно сначала выбрать компилятор для этого:
- VS2010 с AsyncCTP
- Предварительный просмотр VS2012 (и окончательный после его поступления), установив цель в .net 4.0
- Моно (Похоже, 2.12 ожидает асинхронного ожидания, я предпочитаю/использую VS для MonoDevelop как IDE)
У кого меньше ошибок кода? Глядя на блог Jon Skeet, VS2012 Preview использует никогда не генератор кода, чем CTP.
И что еще более важно, какую рабочую среду использовать?
Поддерживает ли VS2012 распространяемое время выполнения async для использования с .net 4?
Мне удалось скомпилировать код с предварительным просмотром, указав время выполнения AsyncCTP. Но поскольку CTP имеет странные условия лицензирования, это не похоже на хорошее долгосрочное решение.
Или мне нужно использовать стороннюю реализацию? Возможно, у моно есть один?
Для распространения библиотеки я предпочитаю просто помещать dll в тот же каталог, что и приложение, вместо какого-то установщика.
Мне также понравится, если мои двоичные файлы будут работать без изменений в mono + Linux/MacOS. Таким образом, среда выполнения должна либо быть совместимой с любым моном (возможно, 2.12), либо разрешать использование на не-ОС Windows.