Portable Class Library คืออะไร?


109

บน MSDN ฉันสังเกตเห็นส่วนเกี่ยวกับ a Portable Class Libraryภายใต้ข้อมูลเวอร์ชัน

ดูSystem.Objectตัวอย่าง http://msdn.microsoft.com/en-us/library/system.object.aspx

ฉันทำการค้นหาโดย Google สั้น ๆ และไม่พบอะไรเกี่ยวกับไฟล์Portable Class Library. มีใครรู้บ้างไหมว่ามันคืออะไรหรือฉันสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับมันได้ที่ไหน


1
โปรดทราบว่าเราได้เพิ่มการรองรับ Portable Class Library เพิ่มเติมใน Visual Studio 11 Beta ที่จะมาในสัปดาห์หน้า
David Kean

คำตอบ:


84

อัปเดต 9 ตุลาคม 2017: บทความเปรียบเทียบ / จำกัด . NET Core / Std / PCL อัปเดต 23 พฤศจิกายน 2559: บทความโดย Rick Strahl

อัปเดต 29 ต.ค. 2559: .NET มาตรฐาน 1-> 2 คำถามที่พบบ่อย อัปเดต 19 ต.ค. 2559: นี่คือบทสัมภาษณ์ / วิดีโอที่ดีที่สุดที่ฉันเคยเห็นจนถึงปัจจุบันครอบคลุม. NET Standard 2.0

อัปเดต 27 ก.ย. 2559: โพสต์ประกาศ. NET Standard 2.0มีข้อมูลที่ดีมากขึ้น

อัปเดต 6 มิ.ย. 2559: บทความนี้อธิบายให้ดีว่ากลไกไลบรารี. NETStandard แทนที่ PCL ส่วนใหญ่อย่างไร

อัปเดต 10 กรกฎาคม 2013: สถานะที่ยอดเยี่ยมของบล็อกโพสต์สรุปสหภาพ PCL จาก @shanselmanพร้อมตัวอย่างที่เป็นรูปธรรมภาพหน้าจอและลิงก์มากมาย ให้คำตอบอื่น ๆ ที่นี่ในที่ร่ม

อัพเดท 20 พฤษภาคม 2556:

อัปเดต 19 เมษายน 2556: บทสรุปที่ยอดเยี่ยมมากว่ามันรวมตัวกันอย่างไรจาก Intellisense จนถึงรันไทม์ในบล็อกโพสต์โดย Simon Cooper


วิดีโอ: ช่อง 9 Visual Studio Toolbox แสดงตอนที่ 14 มิถุนายน 2555

วิดีโอ: ช่อง 9 รายการเจาะลึกตอน 27 ก.ย. 2554


อัปเดต 11 กันยายน 2555: บล็อกโพสต์ระดับสูงที่มีรูปภาพไดอะแกรมและตัวอย่างที่สร้างแรงบันดาลใจแสดงให้เห็นว่า MVVM Light และ RX ใช้งานอย่างไร

อัปเดต 11 เมษายน 2555: สก็อตต์แฮนเซลแมนตอนจบที่ดีมากที่ทำให้นักพัฒนาพูดได้เร็วมากรวมถึงภาพหน้าจอที่นี่ (ยังมีข้อมูล 'วิธีคิด' ที่ลึกซึ้งมากและลิงก์ไปยังตัวอย่าง) นอกจากนี้ยังมีส่วนทรัพยากรในตอนท้ายที่ซ้ำกับโพสต์นี้ทั้งหมด: D

อัปเดต 9 ก.ค. 2555: บล็อกซีรีส์นี้โดย Mircea Trofin จากทีม dev (ส่วนหนึ่งจนถึงตอนนี้) เป็นความครอบคลุมที่สมบูรณ์ที่สุดรวมถึงภาพหน้าจอและเมทริกซ์โดยละเอียดที่แสดงคุณสมบัติที่มีอยู่ในสิ่งที่คุณเลือกหากคุณชอบสิ่งนั้น


ดูโพสต์บล็อกประกาศของ Portable Library Toolsซึ่งเริ่มต้น: -

CTP เครื่องมือไลบรารีแบบพกพาเพิ่มเทมเพลตโปรเจ็กต์ "Portable Class Library" ใหม่ให้กับ Visual Studio ที่สามารถใช้เพื่อสร้างไลบรารีคลาสใน C # และ VB ที่รันบนแพลตฟอร์ม. NET ต่างๆโดยไม่ต้องคอมไพล์ใหม่

ใช้สำหรับสร้าง Class Library ที่กำหนดเป้าหมายหลายแพลตฟอร์ม (โดยเฉพาะรุ่น Silverlight เช่น WP7 และ SL4 แต่รวมถึง XNA บน Xbox) ในคราวเดียว

ดูบทความสรุป InfoQ นี้ด้วย

โปรดดูประกาศรุ่นนี้ด้วย

สำหรับรายละเอียดที่แย่ลงและดูสกปรกโปรดดูแนวทางการกำหนดเป้าหมายหลายเป้าหมายสำหรับเครื่องมือสำหรับโค้ดที่มีการจัดการ


2
เอาชนะฉัน 27 วินาที; p
Marc Gravell

2
@Marc Gravell: ไม่ได้เกิดขึ้นบ่อยนัก! - แต่คุณเอาชนะ @Darin ได้ถ้านั่นช่วยได้ ...
Ruben Bartelink

4
รายละเอียดดีๆมากมาย แต่ฉันคิดว่านี่อาจเป็นประโยชน์จากคำอธิบายง่ายๆสำหรับคนที่ยังใหม่กับเรื่องนี้
Lucas

@Lucas ความพยายามของฉันในการอัปเดตทำให้เป็นวิกิชุมชนดังนั้นอย่าลังเลที่จะแก้ไขในสิ่งที่คุณรู้สึกว่าจะอธิบายในลักษณะที่คุณรู้สึกว่ามีประโยชน์ (ฉันพบว่าบทความ InfoQ นั้นดี) คิดว่าสิ่งที่อยู่ด้านบน อาจจะรอบรู้ที่สุด
Ruben Bartelink

1
จะเป็นการดีกว่าถ้าจะสรุปบทความเหล่านั้นและสรุปไว้ที่นี่ ขณะนี้มีผู้อ่าน 40,450 คนโดยเฉลี่ย 20 นาที (สมมติว่า) ในการเข้าดูลิงก์ซึ่งหมายความว่าเสียเวลาทั้งหมด 561 วัน
Zafar

53
  • โครงการ Portable Class Library ช่วยให้คุณสามารถเขียนและสร้างชุดประกอบที่มีการจัดการซึ่งทำงานบนแพลตฟอร์ม. NET Framework มากกว่าหนึ่งแพลตฟอร์ม คุณสามารถสร้างคลาสที่มีรหัสที่คุณต้องการแชร์กับโปรเจ็กต์ต่างๆเช่นตรรกะทางธุรกิจที่ใช้ร่วมกันแล้วอ้างอิงคลาสเหล่านั้นจากโปรเจ็กต์ประเภทต่างๆ

  • Portable Library Tools เป็นโปรแกรมเสริม Visual Studio ใหม่จาก Microsoft ที่ช่วยให้คุณสามารถสร้างไลบรารี C # และ Visual Basic ที่ทำงานบนแพลตฟอร์มที่ใช้. NET ได้หลากหลายโดยไม่ต้องคอมไพล์ใหม่

ตอนนี้ MSDN มีบทความ / เอกสารที่ดี คุณสามารถตรวจสอบและดูว่ามีอะไรรองรับบ้างPortable Class Library ไอคอนสำหรับ Portable Class Library


แอสเซมบลีต่อไปนี้มีอยู่ในโปรเจ็กต์ Portable Class Library:

  • mscorlib.dll
  • System.dll
  • System.Core.dll
  • System.Xml.dll
  • System.ComponentModel.Composition.dll
  • System.Net.dll
  • System.Runtime.Serialization.dll
  • System.ServiceModel.dll
  • System.Xml.Serialization.dll
  • System.Windows.dll (จาก Silverlight)

คุณสามารถค้นหาสมาชิกที่ได้รับการสนับสนุนโดยโครงการ Portable Class Library ในหัวข้อการอ้างอิงสำหรับ. NET Framework Class Library ในตารางสมาชิกสำหรับคลาสไอคอน Portable Class Library ต่อไปนี้จะปรากฏถัดจากสมาชิกที่สนับสนุน

ไอคอนสำหรับไลบรารีคลาสแบบพกพา (ไอคอนสำหรับ Portable Class Library ซึ่งคุณจะเห็นใน MSDN Docs)


ในการสร้างโครงการ Portable Class Library คุณต้องมี:

1 . Visual Studio 2010 Service Pack 1 (SP1) (ตัวติดตั้ง 795KB, ISO 1.48GB )

2 . CTP เครื่องมือห้องสมุดพกพา (1.38MB)

หลังจากติดตั้งการอัปเดตด้านบนคุณจะได้รับเทมเพลตโครงการใหม่สำหรับ Portable Class Library:

ใส่คำอธิบายภาพที่นี่

(เนื้อหาข้างต้นนำมาจาก MSDN)

อัปเดต 2014:

Class Library Portable เป็นส่วนหนึ่งของ Visual Studio 2014


เกี่ยวกับการอัปเดตล่าสุดฉันไม่คิดว่าจะมี Visual Studio 2014 แต่ดูเหมือนว่า PCL จะรวมอยู่ใน Visual Studio 2013 (อย่างน้อยก็เป็นฉบับชุมชนที่ฉันมี)
Jake

7

มันเป็นห้องสมุดชั้นที่สามารถทำงานบนแพลตฟอร์มต่างๆ


ฉันสามารถส่ง. csproj แบบพกพาไปยังผู้ที่ไม่ได้ติดตั้งเครื่องมือเหล่านี้ได้หรือไม่?
กรดไลเซอร์จิก

2
ในการเรียกใช้แอปพลิเคชัน Portable Class Library การอัปเดตสำหรับ. NET Framework 4 จะต้องติดตั้งบนเครื่องของคุณ โปรแกรมปรับปรุงนี้ได้รับการติดตั้งโดยอัตโนมัติด้วย Visual Studio 2010 SP1 ดังนั้นคุณสามารถเรียกใช้แอปพลิเคชัน Portable Class Library โดยไม่ต้องแก้ไขเพิ่มเติมบนคอมพิวเตอร์ที่คุณใช้ในการพัฒนาแอปพลิเคชัน ในการเรียกใช้แอปพลิเคชันบนคอมพิวเตอร์เครื่องอื่นคุณสามารถติดตั้งการอัปเดตด้วยตนเอง
Jowen

2

ฉันพบว่าเอกสารเข้าใจยากเล็กน้อยดังนั้นฉันจึงพยายามทำให้สิ่งต่างๆชัดเจนที่นี่

Portable Class library สร้างขึ้นเพื่อให้โปรแกรมเมอร์สร้างโปรเจ็กต์ที่จะทำงานบนแพลตฟอร์มต่างๆเช่น Xbox 360, Windows Phone, Silverlight และ. NET Framework (4 ขึ้นไป) ทำได้โดยการละเว้น API บางตัวที่ไม่รองรับโดยแพลตฟอร์มเป้าหมายที่คุณเลือกซึ่งจะทำให้คุณสูญเสียคุณสมบัติบางอย่างของ. Net Framework

ดังนั้นเราสามารถพูดได้ว่าการเลือกระหว่างPortable class libraryและปกติclass libraryขึ้นอยู่กับแพลตฟอร์มเป้าหมายของโครงการของคุณ หากคุณต้องการให้แอปของคุณทำงานบน Xbox และคอมพิวเตอร์เดสก์ท็อปที่มีระบบปฏิบัติการ windows คุณจะประหยัดเวลาและใช้ PCL ได้ดีกว่านอกเหนือจากไลบรารีคลาสปกติจะทำได้ดี

สำหรับข้อมูลเพิ่มเติมได้ที่หน้าเอกสาร

ขณะนี้มีเทคโนโลยีโอเพนซอร์สใหม่ที่เรียกว่า. Net Standard ซึ่งจะแทนที่ PCL .NET Standard ช่วยแก้ปัญหาการแชร์รหัสสำหรับนักพัฒนา. NET ในทุกแพลตฟอร์มโดยนำ API ทั้งหมดที่คุณคาดหวังและชื่นชอบมาใช้ในสภาพแวดล้อมที่คุณต้องการ: แอปพลิเคชันเดสก์ท็อปแอปและเกมบนอุปกรณ์เคลื่อนที่และบริการคลาวด์:

  • .NET Standard คือชุดของ API ที่แพลตฟอร์ม. NET ทั้งหมดต้องใช้ นี่เป็นการรวมแพลตฟอร์ม. NET และป้องกันการแยกส่วนในอนาคต
  • .NET Standard 2.0 จะดำเนินการโดย. NET Framework, .NET Core และ Xamarin สำหรับ. NET Core จะเพิ่ม API ที่มีอยู่จำนวนมากที่ได้รับการร้องขอ
  • .NET Standard 2.0 มี shim ที่เข้ากันได้สำหรับไบนารี.
  • .NET Standard จะแทนที่ Portable Class Libraries (PCL) เป็นเรื่องราวของเครื่องมือสำหรับการสร้างไลบรารี. NET แบบหลายแพลตฟอร์ม

คุณสามารถดูนิยาม. NET Standard API ได้ใน dotnet / standard repo บน GitHub

ข้อมูลอ้างอิง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.