Je commence actuellement à créer une application qui profiterait beaucoup de la fonctionnalité d'attente asynchrone de C # 5. Mais je ne sais pas quelle version de VS et du runtime asynchrone utiliser.
En regardant les graphiques de popularité des systèmes d'exploitation, je devrai prendre en charge Windows XP pendant environ trois ans. Il semble que .net 4.5 ne fonctionne que sur les nouvelles versions de Windows, je dois donc cibler .net 4.0. Les machines de développement utilisent Windows 7, donc l'utilisation d'une version plus récente de VS n'est pas un problème.
Maintenant, je dois d'abord choisir un compilateur pour faire cela:
- VS2010 avec AsyncCTP
- VS2012 Preview (et final une fois arrivé), définissant la cible sur .net 4.0
- Mono (On dirait que 2.12 a async-await, je préfère / suis habitué à VS sur MonoDevelop comme IDE)
Lequel a le moins de bogues de génération de code? En regardant le blog de Jon Skeet, l'aperçu VS2012 n'utilise jamais un générateur de code que le CTP.
Et surtout quel runtime utiliser?
VS2012 contient-il un runtime asynchrone redistribuable à utiliser avec .net 4?
J'ai réussi à compiler du code, avec l'aperçu, en référençant le runtime AsyncCTP. Mais comme le CTP a des conditions de licence étranges, cela ne semble pas être une bonne solution à long terme.
Ou devrais-je utiliser une implémentation tierce? Peut-être que mono en a un?
Pour distribuer la bibliothèque, je préfère simplement mettre la dll dans le même répertoire que l'application, au lieu d'une sorte d'installation.
J'aimerais aussi que mes binaires fonctionnent sans changements sur mono + Linux / MacOS. Ainsi, le runtime doit soit être compatible avec tout ce que mono (2.12 probablement) a intégré, soit permettre une utilisation sur des OS non Windows.