我知道一些微软员工是StackOverflow的成员,就像着名的Raymond Chen和Larry Osterman(Vista的音频堆栈和每个应用程序声音控制机制的工程师)一样,我们也知道Jeff Atwood也在这里。所以,也许我们可以直接从马的口中学习关于核心Windows组件中托管代码的一些课程。
我已经下载了所有泄露的Windows Longhorn版本(来自“显而易见”的来源)并且四处寻找使用“dotPeek”和“.net OR not”等工具查找托管代码。在2004年8月的“longhorn reset”之后,我发现托管代码在每个版本中都在下降。但我甚至发现用托管代码编写的“windows movie maker”。
所以,问题是:在托管代码中编写核心os组件的难点是什么?
答案 0 :(得分:1)
我确信还有其他一些考虑因素,但这是一个相当明显的考虑因素:
托管代码组件需要特定版本的托管运行时,而且,IIRC,进程中只能有一个托管运行时实例。最后,这就排除了使用共享组件的托管代码 - 因为应用程序及其一个或多个组件可能需要不同版本的运行时,并限制其用于应用程序样式的组件。
另外请记住,Windows的更多部分实际上是“共享组件”,而不是显而易见的。虽然您可能将Explorer视为一种应用程序形式,但只要应用程序打开文件/打开常用对话框,它就会在其中包含一堆资源管理器组件,列出可用的文件和目录。