CLR 全面透彻解析: 使用 CoreCLR 编写 Silverlight
2008-10-26 11:49:13 来源:WEB开发网PAL 仅支持运行 Silverlight 必须使用的 Win32 子集,而无需支持注册表、GDI+ 或 COM。我们不能在 OS X 之上实现 Windows,也不能实现足够的 Windows 功能来支持桌面 CLR 的所有功能。将 PAL 限制为仅支持 Silverlight 可以缩小其大小并加快执行速度。
当您意识到 OS X 与 Windows 之间的差异有多大时,就会了解隐藏操作系统之间的差异是多么棘手的问题。大部分 OS X 使用 Objective C 编写,而其提供的异常处理系统与 C++ 不兼容。CLR 创建的 I/O 线程与工作线程不同。这些 I/O 线程基于 Windows NT®3.5 中引入的 I/O 完成端口,而 OS X 中不存在此类端口。由于 Windows 中存在反斜杠目录分隔符,因此即使像查找文件这样简单的操作在 Mac 上也不一样。
在 CoreCLR 的整个设计和开发过程中,我们侧重于使提供的环境能让开发人员重用现有技术和工具,以便为安全的小型运行库开发更为丰富的内容。大部分决策的驱动力都源自富 Internet 应用程序的精减方案,但部分设计还得益于过去的工作成果。对 CoreCLR 所做的部分决策将最终在桌面上得到体现。例如,您可以期待桌面 CLR 的下一个版本能够与 CLR 的其他版本并行运行。另外,对改进的安全透明模型所做的大部分更改也会出现在下一版本的 CLR 中。
我们仔细考虑了哪些操作对基于 Web 的方案有意义,哪些在运行库中并无必要。我们希望自己做出了正确的选择,而且相信您会对我们应如何继续改进提出建议。来体会对 Silverlight 2 进行编写代码的乐趣吧!请密切关注此内容以便将来继续深入探索 CoreCLR。
请将您想询问的问题和提出的意见发送至 clrinout@microsoft.com。
Andrew Pardoe 是 Microsoft CLR 团队的一名项目经理。他致力于从各个方面研究适用于 Silverlight 和桌面运行库两者的执行引擎。您可以通过电子邮件 Andrew.Pardoe@microsoft.com 与他联系。
更多精彩
赞助商链接