Windows的哪些組件使用了.Net、WPF或Silverlight開發?


Silverlight(以前叫做WPF/E)是WPF的移動版本,雖然支持寫桌面程序,但是如果不是為了可移植性的話,沒有什麼必要用在桌面程序,WPF的功能比它強大多了。桌面版的Windows里默認沒有裝Silverlight,所以也沒有Silverlight寫的組件。唯一想的起來的微軟製造的面向消費者的Silverlight桌面軟體是Bing Toolbar(當然還有面向開發者的Visual Studio LightSwitch之類不過受眾更小)。

至於.Net,XP裡面通常也是沒有的,所以也沒有.Net 組件(Media Center和Tablet PC版本的除外)。只有Vista之後新增的或者從頭重寫的組件用.Net,比如Windows Powershell、Windows Help Runtime和IIS之類。

要一個完整的列表的話,自己寫個簡單程序就知道了,枚舉系統文件之後判斷是不是程序集,如果是的話,搜索引用表看看有沒有WPF的DLL

源代碼參見https://github.com/jiangsheng/Samples/blob/master/FindDotnetInWindows/AssemblySearch/AssemblySearch.cpp


Visual Studio 2013和之後的版本大部分UI是用WPF開發的。

另外,Vista慢不是因為WPF, Windows絕大多數默認程序都是用C++寫的

回答了一下下面的同學,在我看來, Vista慢主要原因是最開始微軟的目標太宏偉,包括所有的Windows界面都希望用.Net寫,但是在04/05年的時候發現這樣不現實,又重新用C++實現,匆忙推出了Vista, 很多設計都還比較粗糙。Win7相當於Vista的升級版,在性能上做了很多的優化。


有,譬如Office365、Visual Studio、各種各樣的UWP應用等,都用到了.NET/WPF等技術。

還有針對那個慢三倍的補充兩句:

1、會慢一些,具體慢30%還是3000%要看這份代碼誰寫。

2、還是比Java、PHP之類的快。。。。。


請問你平時出行的哪些時候使用了倒立行走、四肢著地爬或拖著一條船在陸地上走?

微軟自己用走,用跑,用坐車,卻給我們一堆最愚蠢的招式。

.net以跨平台為名想把流失到Java的用戶拽回來,硬生生在Windows上做了個中間語言,讓所有.net程序慢了3倍以上(這一差距大於i3和i7 CPU的差距),資源佔用更是高了一個數量級。WPF則更是雪上加霜,Vista就是它的寫照,一種神奇的讓.net在上述基礎上更慢更佔資源的技術。至於Silverlight,作為一個Flash開發者我一直嘗試搞懂它,但在Flash消亡之前它已經消失了。作為一個評價極低的瀏覽器插件(安裝率幾乎為0),我預測Silverlight可以將.net的效率在WPF的基礎上更退化一步。除非腦袋進水了,Windows本身是不會用這些蝸牛技術的,肯定用更快的彙編、C、C++。如果你發現一個非核心的獨立部件,比上個版本慢了3倍以上,那真有可能是某個腦洞大開的項目經理決定用.net重寫了(除非實驗性質,我想正常人不會這麼做的)。也許存在個別,但我目前還沒有發現這樣的部件。

補充:最近測試了主流語言的循環運算性能。C#和Java的速度大約只有C++的2/5,而且啟動速度和內存佔用也同樣表現不佳。如果是點陣圖運算,C++可以用指針、位移、彙編等方式進行優化,性能差距更大。

插圖:編程語言性能對比測試 無缺草製造對Windows用戶最有利的開發方案,應該是開發一個像VB一樣易用的C++版本,就如同C++Builder一樣。但微軟為了所謂跨平台和移動新戰略,不斷完全另起爐灶,弄出一堆性能拙劣的新框架。並且大部分最終像WebForm(智障的設計,任何一次互動都要刷新整個頁面;沒有httprequest,可以整個隱藏頁面交互然後用DOM更新也行呀)、Silverlight(和Flash比起來,這就是用1和0在編程的感覺)、XNA(微軟自己都不好意思繼續了,原因不詳)、Metro(手機市場失敗,不斷推倒重來再來幾套框架,從WinCE一路跟來的開發者哭死)一樣被棄用。用戶在性能方面沒有體會到優勢,並且缺乏技術延續性。


推薦閱讀:

有沒有適合win10的非國產殺毒軟體?
有哪些有趣的事情Mac可以輕易做到而Windows相對複雜和困難?
如何取消Windows10的關機更新?
Windows 下有什麼好的照片管理軟體?
個人覺得wp8.1還不錯。微軟和諾基亞有望藉此翻身嗎?

TAG:微軟Microsoft | MicrosoftWindows | NET | C# | WindowsPresentationFoundationWPF |