Seperti yang sudah ditulis orang lain, singkatnya:
proyek bersama
digunakan kembali pada level kode (file), memungkinkan untuk struktur folder dan sumber daya juga
hal
digunakan kembali pada tingkat perakitan
Apa yang sebagian besar hilang dari jawaban di sini bagi saya adalah info tentang penurunan fungsionalitas yang tersedia di PCL: sebagai contoh Anda memiliki operasi file yang terbatas (saya kehilangan banyak fungsi File.IO dalam proyek lintas platform Xamarin).
Dalam
proyek bersama yang lebih detail :
+ Dapat menggunakan #jika menargetkan beberapa platform (misalnya Xamarin iOS, Android, WinPhone)
+ Semua fungsionalitas kerangka kerja yang tersedia untuk setiap proyek target (meskipun harus dikompilasi secara kondisional)
o Terintegrasi pada waktu kompilasi
- Ukuran sedikit lebih besar majelis yang dihasilkan
- Membutuhkan Visual Studio 2013 Pembaruan 2 atau lebih tinggi
pcl :
+ menghasilkan perakitan bersama
+ dapat digunakan dengan versi Visual Studio yang lama (Pembaruan pra-2013 2)
o ditautkan secara dinamis
- fungsionalitas yang sesuai (subset dari semua proyek yang sedang dirujuk oleh)
Jika Anda punya pilihan, saya akan merekomendasikan pergi untuk proyek bersama, umumnya lebih fleksibel dan lebih kuat. Jika Anda mengetahui persyaratan Anda sebelumnya dan PCL dapat memenuhinya, Anda mungkin pergi ke rute itu juga. PCL juga memberlakukan pemisahan yang lebih jelas dengan tidak mengizinkan Anda untuk menulis kode khusus platform (yang mungkin bukan pilihan yang baik untuk dimasukkan ke dalam perakitan bersama di tempat pertama).
Fokus utama keduanya adalah ketika Anda menargetkan beberapa platform, selain itu Anda biasanya hanya menggunakan proyek perpustakaan / dll.