Ada banyak "rasa" dari .NET Framework :
- Penuh ("normal")
- Subset profil klien
- Silverlight di browser web
- "Silverlight" di Windows Phone
- Kerangka kerja yang kompak
- WinRT
Ketika kode C # diperlukan pada platform baru, akan terlihat bahwa Microsot lebih suka untuk mengambil CLR penuh dan mengupasnya menjadi subset kecil, membuat rakitan baru dan memindahkan jenis-jenis, bukan hanya menggunakan rakitan yang ada seperti yang ada di BCL . Silverlight misalnya memiliki kelas / metode yang berbeda untuk WPF (bahkan hingga beberapa metode memiliki tanda tangan yang sedikit berbeda atau implementasi yang sangat berbeda), daripada hanya merujuk pada implementasi yang sama List<T>
seperti WPF.
Apakah ini arsitektur yang ideal, atau tanda warisan? Bukankah seharusnya BCL berjalan di semua platform, dengan hanya pustaka presentasi / IO yang berbeda pada masing-masing platform? Atau apakah BCL dan perpustakaan lain terlalu membengkak, dan membaginya akan membuat terlalu banyak masalah kompatibilitas, dapat diterima?
Jika kita mulai dari kanvas kosong dan tidak khawatir tentang kompatibilitas ke belakang, apakah situasi saat ini benar-benar cara terbaik untuk menangani beberapa platform?