.NET Framework'ün birçok "lezzeti" vardır :
- Tam ("normal")
- İstemci profili alt kümesi
- Web tarayıcılarında Silverlight
- Windows Phone'da "Silverlight"
- Kompakt çerçeve
- WinRT
Yeni bir platformda C # kodu gerektiğinde, Microsot'un sadece BCL'deki gibi mevcut montajları kullanmak yerine, yeni montajlar oluşturarak ve türleri hareket ettirerek tam CLR'yi alıp küçük bir alt kümeye ayırmayı tercih ettiği görülüyor. . Örneğin Silverlight, WPF ile aynı uygulamaya atıf yapmak yerine, WPF için farklı sınıflara / yöntemlere (biraz farklı imzalara veya çok farklı uygulamalara sahip bazı yöntemlere kadar bile) sahiptir List<T>
.
Bu ideal bir mimari mi, yoksa bir miras işareti mi? BCL, her biri üzerinde farklı sunum / IO kütüphaneleri bulunan tüm platformlarda çalışmamalıdır mı? Yoksa BCL ve diğer kütüphaneler çok şişmiş mi ve bunları ayırmak kabul edilebilir olmak için çok fazla geriye dönük uyumluluk sorunu yaratacak mı?
Boş bir tuvalden başlasak ve geriye dönük uyumluluktan endişe etmiyor olsaydık, mevcut durum gerçekten birden fazla platformu ele almanın en iyi yolu olurdu?