Tôi đang làm việc để mở rộng số nền tảng được hỗ trợ cho ứng dụng của mình, nó được sử dụng để hỗ trợ .NET4/Windows Store/Windows Phone, nhưng tôi cũng hy vọng sẽ bao gồm Mono cho Android và iOS. Tôi đã đặt tất cả các logic kinh doanh, mô hình và xem các mô hình cho các thư viện lớp di động (PCL) nhưng đó là một tình thế khó xử lớn những gì tập con của nền tảng tôi nên nhắm mục tiêu. Mỗi kết hợp gây ra một cái gì đó để thất bại. Dưới đây là kết quả cho 4 nền tảng mà tôi có thể sử dụng:Tìm kiếm hồ sơ PCL tốt nhất để phát triển đa nền tảng
Tiểu sử 78 (NET45 + WP8 + Store): không có vấn đề với TPL, await/async và hỗ trợ cho thuộc tính CallerMemberName (được sử dụng trong lớp cơ sở kiểu BindableBase view). Tuy nhiên, dự án Mono.Android đề cập đến thư viện như vậy không xây dựng phàn nàn về System.Runtime.dll không hiện tại nên được tham chiếu.
Tiểu sử 104 (NET45 + SL4 + WP75 + Store): await/async không hoạt động, CallerMember name không tìm thấy, nhưng nếu tôi xóa tất cả các tham chiếu đến chúng, dự án Android xây dựng tốt.
Tiểu sử 147 (NET403 + SL5 + WP8 + Store): đang chờ/async không hoạt động, CallerMember name không tìm thấy, nhưng nếu tôi xóa tất cả các tham chiếu đến chúng, dự án Android xây dựng tốt.
Tiểu sử 158 (NET45 + SL5 + WP8 + Store): đang chờ/async không hoạt động, CallerMember name không tìm thấy, nhưng nếu tôi xóa tất cả các tham chiếu đến chúng, dự án Android xây dựng tốt.
Vì vậy, tôi không thực sự chắc chắn nên chọn gì. Hồ sơ 78, 104, 147 bị giới hạn, hồ sơ 78 là người duy nhất hỗ trợ cả await/async và CallerMemberName đã sử dụng BindableBase, nhưng nó không thành công trên Android phàn nàn về System.Runtime.dll. Vì vậy, nếu bạn có một kinh nghiệm với những gì PCL hồ sơ là trận đấu tốt nhất cho PCL nhắm mục tiêu Mono, xin vui lòng chia sẻ suy nghĩ của bạn.
Đảm bảo sử dụng 'Microsoft.Bcl.Async' (tùy thuộc vào' Microsoft.Bcl'). Chúng thêm hỗ trợ async/await/CallerMemberName vào hồ sơ 104/147/158. –
Microsoft.Bcl.Async chỉ có thể được phân phối trên nền tảng Windows (cho đến nay). Không có Mono. –
@VagifAbilov cấp phép đã được thay đổi trên Microsoft.Bcl.Async http://www.hanselman.com/blog/PortableClassLibrariesJustGotREALLYUsefulWithNewLicensingChanges.aspx –