Giống như những người khác đã viết, trong ngắn hạn:
chia sẻ
sử dụng lại dự án ở cấp độ mã (tệp), cho phép cả cấu trúc thư mục và tài nguyên
tái sử dụng pcl ở cấp độ lắp ráp
Điều tôi hầu như không có trong các câu trả lời ở đây đối với tôi là thông tin về chức năng bị giảm có sẵn trong PCL: như một ví dụ bạn có các thao tác tệp hạn chế (Tôi đã thiếu rất nhiều tính hợp lý của File.IO trong dự án đa nền tảng Xamarin).
Chi tiết hơn về
dự án được chia sẻ :
+ Có thể sử dụng #if khi nhắm mục tiêu nhiều nền tảng (ví dụ: Xamarin iOS, Android, WinPhone)
+ Tất cả chức năng khung có sẵn cho từng dự án mục tiêu (mặc dù phải được biên dịch theo điều kiện)
o Tích hợp vào thời gian biên dịch
- Kích thước lớn hơn một chút của các hội đồng kết quả
- Cần Visual Studio 2013 Cập nhật 2 hoặc cao hơn
pcl :
+ tạo ra một hội đồng chia sẻ
+ có thể sử dụng với các phiên bản cũ hơn của Visual Studio (Bản cập nhật trước 2013)
o được liên kết động
- chức năng lmited (tập hợp con của tất cả các dự án mà nó đang được tham chiếu bởi)
Nếu bạn có sự lựa chọn, tôi khuyên bạn nên đi dự án chia sẻ, nó thường linh hoạt hơn và mạnh mẽ hơn. Nếu bạn biết trước các yêu cầu của mình và PCL có thể đáp ứng chúng, bạn cũng có thể đi theo lộ trình đó. PCL cũng thực thi phân tách rõ ràng hơn bằng cách không cho phép bạn viết mã dành riêng cho nền tảng (có thể không phải là một lựa chọn tốt để đưa vào một hội đồng chia sẻ ở vị trí đầu tiên).
Trọng tâm chính của cả hai là khi bạn nhắm mục tiêu nhiều nền tảng, thông thường bạn sẽ chỉ sử dụng một dự án thư viện / dll thông thường.