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