Ci sono molti "sapori" del .NET Framework :
- Completo ("normale")
- Sottoinsieme profilo client
- Silverlight nei browser web
- "Silverlight" su Windows Phone
- Framework compatto
- WinRT
Quando il codice C # è necessario su una nuova piattaforma, sembrerebbe che Microsot preferisca prendere l'intero CLR e ridurlo a un piccolo sottoinsieme, creando nuovi assiemi e tipi mobili, invece di usare solo assiemi esistenti come quelli nel BCL. Silverlight ad esempio ha diverse classi / metodi per WPF (anche per alcuni metodi con firme leggermente diverse o implementazioni molto diverse), invece di fare semplicemente riferimento alla stessa implementazione di List<T>
di WPF.
Questa è l'architettura ideale o un segno di eredità? Non dovrebbe funzionare il BCL su tutte le piattaforme, con solo diverse librerie di presentazione / IO su ciascuna? O il BCL e le altre librerie sono troppo gonfie e dividerle creerebbe troppi problemi di retrocompatibilità, per essere accettabile?
Se partivamo da una tela bianca e non eravamo preoccupati della compatibilità con le versioni precedenti, la situazione attuale sarebbe davvero il modo migliore per gestire più piattaforme?