สิ่งที่ Danielg พูดนั้นดี ฉันจะเพิ่ม:
หากคุณดูวิดีโอเกี่ยวกับ System.Addins พวกเขากำลังพูดถึงโครงการขนาดใหญ่มากอย่างชัดเจน เขาพูดเกี่ยวกับทีมหนึ่งที่จัดการแอปพลิเคชันโฮสต์อีกทีมหนึ่งจัดการ AddIn แต่ละทีมและทีมที่สามที่จัดการสัญญาและขั้นตอนการผลิต ตามที่ฉันคิดว่า System.Addins ชัดเจนสำหรับการใช้งานขนาดใหญ่ ฉันกำลังคิดแอปพลิเคชันเช่นระบบ ERP เช่น SAP (อาจไม่ใช่เรื่องใหญ่ แต่คุณได้แนวคิด) หากคุณดูวิดีโอเหล่านั้นคุณสามารถบอกได้ว่าปริมาณงานที่ใช้งาน System.Addins นั้นใหญ่มาก มันจะทำงานได้ดีถ้าคุณมี บริษัท จำนวนมากที่เขียนโปรแกรม Add-in ของบุคคลที่สามสำหรับระบบของคุณและคุณไม่สามารถทำลายสัญญา Add-in เหล่านั้นใด ๆ ภายใต้โทษประหารชีวิตได้
ในทางกลับกัน MEF ดูเหมือนจะแบ่งปันความคล้ายคลึงกันมากขึ้นกับรูปแบบ Add-in ของชาร์ปเดวิพัฒนา, สถาปัตยกรรมปลั๊กอิน Eclipse หรือ Mono.Addins เข้าใจง่ายกว่า System.Addins และฉันเชื่อว่ามันยืดหยุ่นกว่ามาก สิ่งที่คุณสูญเสียคือคุณไม่ได้รับการแยกจาก AppDomain หรือสัญญาที่รัดกุมกับ MEF จุดแข็งของ MEF คือคุณสามารถจัดโครงสร้างแอปพลิเคชันทั้งหมดของคุณเป็นองค์ประกอบของชิ้นส่วนดังนั้นคุณสามารถจัดส่งผลิตภัณฑ์ของคุณในการกำหนดค่าที่แตกต่างกันสำหรับลูกค้าที่แตกต่างกันและหากลูกค้าซื้อคุณสมบัติใหม่ และแอปพลิเคชันจะเห็นและเรียกใช้ นอกจากนี้ยังอำนวยความสะดวกในการทดสอบ คุณสามารถยกตัวอย่างวัตถุที่คุณต้องการทดสอบและป้อนมันจำลองวัตถุสำหรับการอ้างอิงทั้งหมด
จุดที่สำคัญที่สุดที่ฉันต้องการพูดถึงคือแม้ว่า System.Addins อยู่ในกรอบแล้วฉันไม่เห็นหลักฐานมากมายของคนที่ใช้มัน แต่ MEF กำลังนั่งอยู่บน CodePlex ซึ่งควรจะรวมอยู่ใน .NET 4 และผู้คนเริ่มสร้างแอปพลิเคชั่นจำนวนมากแล้ว (รวมอยู่ในตัวเอง) ฉันคิดว่ามันจะบอกคุณบางอย่างเกี่ยวกับกรอบทั้งสอง