.NET Framework有许多“特色” :
- 满(“正常”)
- 客户资料子集
- Web浏览器中的Silverlight
- Windows Phone上的“ Silverlight”
- 紧凑的框架
- WinRT
当在新平台上需要C#代码时,Microsot似乎更喜欢采用完整的CLR并将其剥离为一个小的子集,从而创建新的程序集并移动类型,而不是仅使用现有的程序集(例如BCL中的程序集) 。例如,Silverlight对于WPF具有不同的类/方法(甚至包括某些具有稍微不同的签名或非常不同的实现的方法),而不仅仅是引用与List<T>
WPF 相同的实现。
这是理想的体系结构还是传统的标志?BCL不应在所有平台上都只具有不同的表示/ IO库的所有平台上运行吗?还是BCL和其他库过于ated肿,将它们拆分出来会产生太多向后兼容的问题,这是可以接受的?
如果我们从一块空白的画布开始,并且不担心向后兼容性,那么当前的状况真的是处理多个平台的最佳方法吗?