Es gibt viele "Varianten" von .NET Framework :
- Voll ("normal")
- Teilmenge des Clientprofils
- Silverlight in Webbrowsern
- "Silverlight" unter Windows Phone
- Kompakter Rahmen
- WinRT
Wenn C # -Code auf einer neuen Plattform benötigt wird, scheint es, dass Microsot es vorzieht, die vollständige CLR auf eine kleine Teilmenge zu reduzieren, neue Assemblys zu erstellen und Typen zu verschieben, anstatt nur vorhandene Assemblys wie die in der BCL zu verwenden . Silverlight hat beispielsweise andere Klassen / Methoden als WPF (sogar bis zu einigen Methoden mit leicht unterschiedlichen Signaturen oder sehr unterschiedlichen Implementierungen), anstatt einfach auf dieselbe Implementierung List<T>
wie WPF zu verweisen .
Ist dies die ideale Architektur oder ein Zeichen des Erbes? Sollte die BCL nicht auf allen Plattformen ausgeführt werden, mit jeweils nur unterschiedlichen Präsentations- / E / A-Bibliotheken? Oder sind die BCL und andere Bibliotheken zu aufgebläht, und eine Aufteilung würde zu viele Abwärtskompatibilitätsprobleme verursachen, um akzeptabel zu sein?
Wenn wir von einer leeren Leinwand ausgehen und uns keine Sorgen um die Abwärtskompatibilität machen würden, wäre die aktuelle Situation wirklich der beste Weg, um mit mehreren Plattformen umzugehen?