Saat ini saya mulai membuat aplikasi yang akan mendapat banyak keuntungan dari fitur async-await C # 5. Tapi saya tidak yakin versi VS dan runtime asinkron mana yang akan digunakan.
Melihat grafik popularitas OS, saya perlu mendukung Windows XP selama tiga tahun atau lebih. Sepertinya .net 4.5 hanya berjalan pada versi Windows yang lebih baru, jadi saya perlu menargetkan .net 4.0. Mesin pengembangan menggunakan Windows 7, jadi menggunakan versi VS yang lebih baru tidak menjadi masalah.
Sekarang saya harus memilih kompiler untuk melakukan ini:
- VS2010 dengan AsyncCTP
- VS2012 Preview (dan final setelah itu tiba), menetapkan target ke .net 4.0
- Mono (Sepertinya 2.12 memiliki async-await, saya lebih suka / saya terbiasa VS daripada MonoDevelop sebagai IDE)
Manakah yang memiliki lebih sedikit bug code-gen? Melihat blog Jon Skeet, VS2012 Preview tidak pernah menggunakan generator kode selain CTP.
Dan yang lebih penting runtime mana yang akan digunakan?
Apakah VS2012 berisi runtime asinkron yang dapat didistribusikan ulang untuk digunakan dengan .net 4?
Saya berhasil mengkompilasi kode, dengan pratinjau, dengan merujuk runtime AsyncCTP. Tetapi karena CTP memiliki persyaratan perizinan yang aneh, itu sepertinya bukan solusi jangka panjang yang baik.
Atau haruskah saya menggunakan implementasi pihak ketiga? Mungkin mono punya satu?
Untuk mendistribusikan pustaka, saya lebih suka meletakkan dll di direktori yang sama dengan aplikasi, daripada semacam penginstal.
Saya juga suka jika binari saya berfungsi tanpa perubahan pada mono + Linux / MacOS. Jadi runtime harus kompatibel dengan mono apa pun (mungkin 2.12) yang telah terpasang, atau mengizinkan penggunaan pada OS non-windows.