Actualmente estoy empezando a crear una aplicación que se beneficiaría mucho de la función de espera asíncrona de C # 5. Pero no estoy seguro de qué versión de VS y del tiempo de ejecución asíncrono usar.
Mirando las tablas de popularidad del sistema operativo, tendré que soportar Windows XP por otros tres años más o menos. Parece que .net 4.5 solo se ejecuta en versiones más nuevas de Windows, por lo que necesito apuntar a .net 4.0. Las máquinas de desarrollo usan Windows 7, por lo que usar una versión más nueva de VS no es un problema.
Ahora tengo que elegir primero un compilador para hacer esto:
- VS2010 con AsyncCTP
- Vista previa de VS2012 (y final una vez que llega), estableciendo el objetivo en .net 4.0
- Mono (Parece que 2.12 tiene espera asíncrona, prefiero / estoy acostumbrado a VS sobre MonoDevelop como IDE)
¿Cuál tiene menos errores de generación de código? Mirando el blog de Jon Skeet, la Vista previa de VS2012 utiliza un generador de código nunca más que el CTP.
¿Y más importante qué tiempo de ejecución utilizar?
¿VS2012 contiene un tiempo de ejecución asincrónico redistribuible para usar con .net 4?
Logré compilar código, con la vista previa, haciendo referencia al tiempo de ejecución AsyncCTP. Pero dado que el CTP tiene condiciones de licencia extrañas, no parece una buena solución a largo plazo.
¿O debería usar una implementación de terceros? Quizás mono tiene uno?
Para distribuir la biblioteca, prefiero simplemente colocar el dll en el mismo directorio que la aplicación, en lugar de algún tipo de instalador.
También me gustaría que mis archivos binarios funcionen sin cambios en mono + Linux / MacOS. Por lo tanto, el tiempo de ejecución debería ser compatible con lo que sea mono (2.12 probablemente) incorporado o permitir su uso en sistemas operativos que no sean Windows.