Tôi hiện đang bắt đầu tạo một ứng dụng sẽ thu được nhiều lợi nhuận từ tính năng chờ đợi không đồng bộ của C # 5. Nhưng tôi không chắc nên sử dụng phiên bản nào của VS và thời gian chạy không đồng bộ.
Nhìn vào biểu đồ mức độ phổ biến của hệ điều hành, tôi sẽ cần hỗ trợ Windows XP thêm ba năm nữa. Có vẻ như .net 4.5 chỉ chạy trên các phiên bản Windows mới hơn, vì vậy tôi cần nhắm mục tiêu .net 4.0. Các máy phát triển sử dụng Windows 7, vì vậy sử dụng phiên bản VS mới hơn không phải là vấn đề.
Bây giờ tôi cần chọn trình biên dịch để thực hiện việc này:
- VS2010 với AsyncCTP
- Xem trước VS2012 (và cuối cùng khi nó đến), đặt mục tiêu thành .net 4.0
- Mono (Có vẻ như 2.12 có async-await, tôi thích / tôi quen với VS hơn MonoDevelop như IDE)
Cái nào có ít lỗi code-gen? Nhìn vào blog của Jon Skeet, VS2012 Preview sử dụng trình tạo mã không bao giờ hơn CTP.
Và quan trọng hơn là sử dụng thời gian chạy nào?
VS2012 có chứa thời gian chạy không đồng bộ có thể phân phối lại để sử dụng với .net 4 không?
Tôi đã quản lý để biên dịch mã, với phần xem trước, bằng cách tham khảo thời gian chạy AsyncCTP. Nhưng vì CTP có các điều kiện cấp phép lạ, nên đó không giống như một giải pháp dài hạn tốt.
Hoặc tôi nên sử dụng một bên thứ ba thực hiện? Có lẽ mono có một?
Để phân phối thư viện, tôi thích chỉ cần đặt dll vào cùng thư mục với ứng dụng, thay vì một loại trình cài đặt nào đó.
Tôi cũng thích nó nếu các tệp nhị phân của tôi sẽ hoạt động mà không thay đổi trên mono + Linux / MacOS. Vì vậy, thời gian chạy phải tương thích với bất kỳ đơn âm nào (2.12 có thể) đã được tích hợp hoặc cho phép sử dụng trên các hệ điều hành không phải Windows.