Esistono molti "sapori" di .NET Framework :
- Completo ("normale")
- Sottoinsieme del profilo client
- Silverlight nei browser web
- "Silverlight" su Windows Phone
- Quadro compatto
- WinRT
Quando è necessario il codice C # su una nuova piattaforma, sembra che Microsot preferisca prendere il CLR completo e ridimensionarlo in un piccolo sottoinsieme, creando nuovi assiemi e spostando i tipi in giro, invece di utilizzare solo assiemi esistenti come quelli nel BCL . Silverlight ad esempio ha classi / metodi diversi a WPF (anche fino ad alcuni metodi con firme leggermente diverse o implementazioni molto diverse), invece di fare semplicemente riferimento alla stessa implementazione di List<T>
WPF.
È questa l'architettura ideale o un segno di eredità? Il BCL non dovrebbe funzionare su tutte le piattaforme, con solo librerie di presentazione / IO diverse su ciascuna? Oppure il BCL e le altre biblioteche sono troppo gonfie e dividerle creerebbe troppi problemi di compatibilità con le versioni precedenti, per essere accettabili?
Se fossimo partiti da una tela bianca e non fossimo preoccupati per la retrocompatibilità, la situazione attuale sarebbe davvero il modo migliore per gestire più piattaforme?