.net開發(fā)中幾個重要的認識誤區(qū)小結
一、.net程序再運行一次就會更快
許多人對此的解釋是:.net程序第一次運行時會被編譯成本地代碼,所以再次運行會更快。但遺憾的是,其實每次運行,那些IL都會被翻譯一次,不會保留下來。所以并不會變快。但為什么有時候真的覺得快了呢?其實所有程序都是這樣,這是Windows再為你緩存用過的組件。真正需要CPU時間的程序,多運行是不會加快速度的。
二、.net程序運行起來一定很慢
由于存在IL被翻譯成本地代碼的過程,.net程序的確要消耗一部分時間。但是.net程序仍然具有很高的效率,這一點許多Java虛擬機都比不上,這是為什么呢?因為多數(shù).net程序內(nèi)含的代碼很少,幾乎都是調(diào)用.net Framework中的類庫,而這些類庫在.net Framework安裝的時候全部編譯成為本機優(yōu)化的本地碼,并保存在程序集緩存里面。有了這個程序集緩存,你程序事實上的大部分已經(jīng)是高效的本地代碼,所以當然快了。但是,如果你進行大量數(shù)值計算類的操作,還是能夠感到第一次運算的速度明顯下降。所以建議大家將計算密集型的程序分離出來,編譯成本地代碼并保存在程序集緩存中,以后使用起來就很快了。
三、C#比VB.net快,功能更強大
必須得承認,C#編譯器和VB.net編譯器在處理某些細節(jié)上確實有些不同,導致兩者編譯功能類似的程序效率通常會有差異。但對于一個編制完整的項目,是不會有任何差別的。原因是首先VB.net編譯器并沒有比C#有實質上的缺陷,其次大部分代碼都是.net Framework類庫中的代碼,兩者調(diào)用起來沒有差別。至于C#比VB.net功能強大,這牽扯到心理學問題。VB并不比C#差,也沒有“語法混亂”、“為了兼容而設計”之類傳說中的毛病。用VB.net一樣可以寫出出色的、結構完美的應用程序。而且VB.net也是Visual Studio.net唯一的宏語言。
這里面還有一個問題,著名的Linux下的.net——Mono中是否只支持C#?當然不是,用VB.net開發(fā)出的程序一樣可以在Mono中正確運行。而且最新的Mono將包含Mono Basic語言,這樣,掌握VB.net語法的人,就可以完全在Linux等系統(tǒng)下開發(fā)。
四、微軟只想推廣C#,他想放棄VB.net
不要聽信杞人憂天的話。微軟無時無刻不在推廣VB.net上用心。MSDN上關于.net開發(fā)的文章,用VB.net做例子的比用C#還要多。微軟還專門推出VB技術節(jié)目——VBTV,幫助開發(fā)者更好地了解VB.net。微軟在列出Visaual Studio中的開發(fā)工具時,Visual Basic總是排在第一個——這是微軟5年來的傳統(tǒng)。所以擔心VB.net會被淘汰的人,現(xiàn)在該松口氣了。
五、微軟用.net對抗Java,所以我也要支持.net,反對Java
千萬不要有這種想法,MS當然想占領Java的市場,Sun當然不愿意,但這不關你的事。哪一方贏了你都不會有實質上的好處。還是兩個都學吧。與其在網(wǎng)上挑起爭論,不如多學一個本事,你馬上就會看到回報的。
好了,從下一次開始,將著重介紹技術上的誤區(qū)。祝大家好運。
相關文章
ASP.NET通過第三方網(wǎng)站Bitly實現(xiàn)短鏈接地址程序
這篇文章主要介紹了ASP.NET通過第三方網(wǎng)站Bitly實現(xiàn)短鏈接地址程序的步驟,需要的朋友可以參考下。2016-06-06
.NET Core 2.0遷移小技巧之MemoryCache問題修復解決的方法
這篇文章主要給大家介紹了關于.NET Core 2.0遷移小技巧之MemoryCache問題修復解決的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2017-08-08
asp.net 將一個圖片以二進制值的形式存入Xml文件中的實例代碼
這篇文章介紹了將一個圖片以二進制值的形式存入Xml文件中的實例代碼,有需要的朋友可以參考一下2013-07-07-
最新評論

