ขณะนี้ฉันเริ่มสร้างแอปพลิเคชันที่จะได้รับประโยชน์มากมายจากคุณลักษณะ async ที่รอคอยของ C # 5 แต่ฉันไม่แน่ใจว่าเวอร์ชัน VS และรันไทม์ async ที่จะใช้
เมื่อดูที่ชาร์ตยอดนิยมของ OS ฉันจะต้องรองรับ 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)
อันไหนที่มีบั๊กของโค้ด - เจนน้อยลง? การดูบล็อกของ Jon Skeet VS2012 Preview ใช้ตัวสร้างโค้ดที่ไม่ได้ใช้งานมากกว่า CTP
และที่สำคัญกว่านั้นใช้ runtime แบบใด
VS2012 มีรันไทม์ async แบบแจกจ่ายต่อได้สำหรับใช้กับ. net 4 หรือไม่
ฉันจัดการเพื่อคอมไพล์โค้ดด้วยการแสดงตัวอย่างโดยอ้างอิงรันไทม์ AsyncCTP แต่เนื่องจาก CTP มีเงื่อนไขการออกใบอนุญาตแปลก ๆ นั่นจึงไม่ใช่วิธีแก้ปัญหาระยะยาวที่ดี
หรือฉันควรใช้การใช้งานของบุคคลที่สาม? บางทีอาจมีขาวดำ?
สำหรับการกระจายไลบรารี่ฉันต้องการเพียงวาง dll ในไดเรกทอรีเดียวกับแอปพลิเคชันแทนที่จะติดตั้งบางชนิด
ฉันยังต้องการถ้าไบนารีของฉันจะทำงานโดยไม่มีการเปลี่ยนแปลงในโมโน + Linux / MacOS ดังนั้นรันไทม์ควรจะเข้ากันได้กับสิ่งที่โมโน (2.12 อาจ) ได้สร้างขึ้นในหรืออนุญาตให้ใช้บนระบบปฏิบัติการที่ไม่ใช่ windows