Saya melihat fitur-fitur baru untuk Visual Studio 2015 dan Proyek Bersama muncul banyak tetapi saya tidak mengerti bagaimana bedanya dengan menggunakan Perpustakaan Kelas atau Perpustakaan Kelas Portabel. Adakah yang bisa menjelaskan?
Sunting: Proyek Bersama adalah fitur baru di Visual Studio 2015 dan berbeda dengan Perpustakaan Kelas Portabel. Saya mengerti apa itu Portable Class Library. Apa yang saya coba pahami adalah bagaimana Proyek Bersama berbeda dengan Perpustakaan Kelas. Lihat tautan di bawah.
c#
.net
visual-studio-2015
Indy411
sumber
sumber
Jawaban:
Perbedaan antara proyek bersama dan perpustakaan kelas adalah bahwa yang terakhir dikompilasi dan unit penggunaan kembali adalah perakitan.
Sedangkan dengan yang pertama, unit penggunaan kembali adalah kode sumber, dan kode bersama dimasukkan ke dalam setiap majelis yang merujuk proyek bersama.
Ini bisa berguna ketika Anda ingin membuat majelis terpisah yang menargetkan platform tertentu tetapi masih memiliki kode yang harus dibagikan.
Lihat juga di sini :
Dalam versi Visual Studio 1 sebelumnya , Anda dapat berbagi kode sumber antar proyek dengan Tambah -> Item yang Ada dan kemudian memilih untuk Tautan. Tapi ini agak kikuk dan setiap file sumber terpisah harus dipilih secara individual. Dengan pindah ke mendukung berbagai platform yang berbeda (iOS, Android, dll), mereka memutuskan untuk membuatnya lebih mudah untuk berbagi sumber antar proyek dengan menambahkan konsep Proyek Bersama.
1 Pertanyaan ini dan jawaban saya (sampai sekarang) menunjukkan bahwa Proyek Bersama adalah fitur baru di Visual Studio 2015. Faktanya, mereka membuat debut mereka di Visual Studio 2013 Pembaruan 2
sumber
Saya menemukan beberapa informasi lebih lanjut dari blog ini .
sumber
Perbedaan Singkat adalah
1) PCL tidak akan memiliki Akses Penuh ke .NET Framework, seperti yang dimiliki SharedProject.
2) #ifdef untuk kode khusus platform - Anda tidak dapat menulis di PCL ( opsi #ifdef tidak tersedia untuk Anda di PCL karena dikompilasi secara terpisah, sebagai DLL sendiri, jadi pada waktu kompilasi (ketika #ifdef dievaluasi) tidak tahu platform apa yang akan menjadi bagiannya. ) di mana sebagai proyek Bersama Anda dapat.
3) Kode spesifik platform dicapai menggunakan Inversion Of Control di PCL, di mana dengan menggunakan pernyataan #ifdef Anda dapat mencapai hal yang sama di Proyek Bersama.
Artikel yang sangat bagus yang menggambarkan perbedaan antara PCL vs Proyek Bersama dapat ditemukan di tautan berikut
http://hotkrossbits.com/2015/05/03/xamarin-forms-pcl-vs-share-project/
sumber
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.
sumber
Dari buku VS 2015 berhasil
Proyek Bersama memungkinkan kode berbagi, aset, dan sumber daya di berbagai jenis proyek. Lebih khusus, jenis proyek berikut dapat merujuk dan mengkonsumsi proyek bersama:
Catatan: - Baik proyek bersama dan perpustakaan kelas portabel (PCL) memungkinkan kode berbagi, sumber daya XAML, dan aset, tetapi tentu saja ada beberapa perbedaan yang dapat diringkas sebagai berikut.
sumber
Pustaka kelas adalah kode kompilasi yang dibagikan.
Proyek bersama adalah kode sumber bersama.
sumber