2012-06-08 50 views
1

我知道一些微軟員工是着名的Raymond Chen和Larry Osterman(Vista的音頻堆棧和應用程序聲音控制機制的工程師)之間的StackOverflow成員,我們知道Jeff Atwood也在這裏。所以,也許我們可以直接從馬的口中瞭解一些關於核心Windows組件中託管代碼的經驗教訓。在託管代碼中編寫核心os組件有哪些困難?

我已經下載了所有泄漏的Windows Longhorn版本(來自「顯而易見的」源代碼),並使用諸如「dotPeek」和「.net OR not」等工具來查找託管代碼。在2004年8月的「長角重置」之後,我發現每個版本的託管代碼都在下降。但我甚至發現用託管代碼編寫的「windows電影製作者」。

所以,這裏是一個問題:在託管代碼中編寫核心os組件的不足之處是什麼?

回答

1

我敢肯定有其他方面的考慮,但是這是一個相當明顯的一個彈簧想到:

託管代碼組件需要管理運行時的特定版本,並IIRC,一個進程只能有一個其中的受管運行時的實例。因爲應用程序及其一個或多個組件可能需要不同版本的運行時,並將其用於應用程序樣式的組件,所以這排除了使用託管代碼的共享組件。

也請記住,Windows的更多部分實際上是「共享組件」,可能會立即顯而易見。雖然您可能會將Explorer視爲應用程序的一種形式,但只要應用程序打開文件/打開常用對話框,它現在就有一堆Explorer組件,列出了可用的文件和目錄。