NET Frameworkมี "รสชาติ" มากมาย:
- เต็ม ("ปกติ")
- ส่วนย่อยของโปรไฟล์ลูกค้า
- Silverlight ในเว็บเบราว์เซอร์
- "Silverlight" บน Windows Phone
- กรอบขนาดกะทัดรัด
- WinRT
เมื่อจำเป็นต้องใช้รหัส C # บนแพลตฟอร์มใหม่ดูเหมือนว่า Microsot ต้องการใช้ CLR แบบเต็มและตัดมันลงในชุดย่อยขนาดเล็กสร้างแอสเซมบลีและเคลื่อนย้ายชนิดใหม่แทนที่จะใช้ชุดประกอบที่มีอยู่เช่น BCL . ตัวอย่างเช่น Silverlight มีคลาส / วิธีการที่แตกต่างกันไปยัง WPF (แม้กระทั่งวิธีการบางอย่างที่มีลายเซ็นที่แตกต่างกันเล็กน้อยหรือการใช้งานที่แตกต่างกันมาก) แทนการอ้างอิงการใช้งานแบบเดียวList<T>
กับ WPF
นี่เป็นสถาปัตยกรรมในอุดมคติหรือเป็นสัญลักษณ์ของมรดกหรือไม่? BCL ไม่ควรรันบนทุกแพลตฟอร์มโดยมีเพียงไลบรารีการนำเสนอ / IO ที่แตกต่างกันในแต่ละอัน? หรือ BCL และไลบรารี่อื่น ๆ บวมเกินไปและการแยกพวกมันออกจะสร้างปัญหาความเข้ากันได้แบบย้อนหลังมากเกินไปเพื่อให้เป็นที่ยอมรับ?
หากเราเริ่มต้นจากผืนผ้าใบว่างเปล่าและไม่กังวลเกี่ยวกับความเข้ากันได้ย้อนหลังสถานการณ์ปัจจุบันจะเป็นวิธีที่ดีที่สุดในการจัดการหลายแพลตฟอร์มหรือไม่