เหมือนคนอื่น ๆ ที่เขียนไว้แล้วโดยย่อ:
โครงการที่ใช้ร่วมกัน
นำมาใช้ใหม่ในระดับรหัส (ไฟล์) ช่วยให้โครงสร้างโฟลเดอร์และทรัพยากรเช่นกัน
pcl
นำมาใช้ใหม่ในระดับการชุมนุม
สิ่งที่ขาดหายไปจากคำตอบสำหรับฉันที่นี่ส่วนใหญ่คือข้อมูลเกี่ยวกับการทำงานที่ลดลงที่มีอยู่ใน PCL: เป็นตัวอย่างที่คุณมีการดำเนินงานไฟล์ที่ จำกัด
ในรายละเอียด
โครงการที่ใช้ร่วมกัน :
+ สามารถใช้ #if เมื่อกำหนดเป้าหมายหลายแพลตฟอร์ม (เช่น Xamarin iOS, Android, WinPhone)
+ ฟังก์ชั่นกรอบทั้งหมดที่มีอยู่สำหรับโครงการเป้าหมายแต่ละ (แม้ว่าจะต้องมีการรวบรวมตามเงื่อนไข)
o รวมที่รวบรวมเวลา
- ขนาดขนาดใหญ่ขึ้นเล็กน้อย ของแอสเซมบลีที่เป็นผลลัพธ์
- ต้องการ Visual Studio 2013 Update 2 ขึ้นไป
pcl :
+ สร้างแอสเซมบลีที่ใช้ร่วมกัน
+ ใช้งานได้กับ Visual Studio รุ่นเก่า (อัปเดตก่อน 2013 2)
o การเชื่อมโยงแบบไดนามิก
- ฟังก์ชัน lmited (ชุดย่อยของโครงการทั้งหมดที่ถูกอ้างอิงโดย)
หากคุณมีทางเลือกฉันจะแนะนำให้ไปทำโปรเจ็กต์ที่ใช้ร่วมกันโดยทั่วไปจะมีความยืดหยุ่นและมีประสิทธิภาพมากกว่า หากคุณทราบความต้องการของคุณล่วงหน้าและ PCL สามารถตอบสนองความต้องการของคุณได้คุณอาจไปที่เส้นทางนั้นเช่นกัน PCL ยังบังคับให้แยกชัดเจนโดยไม่อนุญาตให้คุณเขียนรหัสเฉพาะแพลตฟอร์ม (ซึ่งอาจไม่ใช่ทางเลือกที่ดีที่จะใส่ในแอสเซมบลีที่ใช้ร่วมกันตั้งแต่แรก)
จุดสนใจหลักของทั้งสองคือเมื่อคุณกำหนดเป้าหมายหลายแพลตฟอร์มมิฉะนั้นคุณจะใช้เพียงโครงการไลบรารี / dll ปกติ