自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

.NET支持多平臺后的一點拙見

開發(fā) 后端
我們目前對.NET的理解大部分可以歸納為:起初它是Java平臺(注意是平臺,不要跟Java語言搞混淆)的一個克隆品,后來慢慢演變,有了自己的特性。由于Java平臺最顯著的特點就是“平臺獨立性”(或者說不知道誰發(fā)明的Write once,Run anywhere這個話)。

我們目前對.NET的理解大部分可以歸納為:起初它是Java平臺(注意是平臺,不要跟Java語言搞混淆)的一個克隆品,后來慢慢演變,有了自己的特性。由于Java平臺最顯著的特點就是“平臺獨立性”(或者說不知道誰發(fā)明的Write once,Run anywhere這個話)。理論上,你可以寫一個程序編譯完后,跑在任何一個安裝有JVM的操作系統(tǒng)上。大部分人認(rèn)為.NET的出現(xiàn)是效仿Sun公司的這個偉大的概念——平臺獨立性,從而與Java抗衡。再后來又有一些人不知道從哪得出的結(jié)論說,就算有像Mono這樣的非Windows平臺.NET CLR,也有好多.NET程序不能移植到其他操作系統(tǒng)中,比如Winform幾乎不能通過Mono移植到Linux上去,因此得出一個駭人聽聞的結(jié)論:微軟連模仿都沒模仿完整,居然是偽跨平臺。

以上就是目前我見過的最多的結(jié)論:.NET致命的弱點,就是它不是真正的跨平臺。為此,我有以下幾點說明:

(1).NET平臺出現(xiàn)的意義不是支持跨平臺,它出現(xiàn)的目的只是優(yōu)化傳統(tǒng)的Windows開發(fā)模式,使Windows開發(fā)更加方便快捷。它解決了COM時代的Dll Hell問題(.Net程序集版本控制),集成了多種語言(方便各種各樣的程序員),每種語言編寫的組件(程序集)之間可以毫無障礙地通訊,集合Object-Oriented和Component-Oriented于一體,你可以從一個組件(dll)中派生出一個新的類型而不需要該類型的所有源碼(這個UnManaged時代不可能有),真正的實現(xiàn)了二進(jìn)制兼容性(你改動程序集中的某一個公開成員,如果使用這個程序集的客戶端程序沒有使用到這個公開成員,那么客戶端完全不需要重新編譯),提供C++中沒有的內(nèi)存管理,支持異常處理等等。嚴(yán)格來說,微軟發(fā)布.NET的第一天就是為了它的Windows,就沒打算讓你寫的程序跑在其他操作系統(tǒng)之上(微軟到目前為止還沒有發(fā)布官方的非Windows平臺的.NET CLR)。

(2)再說Java平臺和.NET兩者追求的目標(biāo),前者從出現(xiàn)開始就認(rèn)為:在互聯(lián)網(wǎng)世界中,我要讓一種語言跑在任何一個操作系統(tǒng)中;而后者則認(rèn)為:在互聯(lián)網(wǎng)世界中,我要讓所有的語言都跑在同一個操作系統(tǒng)中(Windows)。兩個平臺從一開始設(shè)計的目的就不一樣。

(3)兩者強調(diào)的重點不同:

如上圖,紅色部分都是其他人擴展出來的功能。

(4)上面3中所述,兩者平臺結(jié)構(gòu)類似,我不清楚微軟到底有沒有剽竊Java,但可以肯定的是如果兩者東家原意,兩個平臺都是可以做到“跨平臺”和“支持多語言”的。 至于為什么說使用Mono還不能把有些.NET程序移植到Linux,這個很容易解釋,微軟本來就沒打算將.NET程序移植到其他平臺,.NET中包含的一些豐富框架都是與Windows緊密相關(guān)的,你使用了這些框架,是很難再把它們翻譯成非Windows平臺中可以執(zhí)行的代碼。而且,Java也并不是完全的跨平臺,跟你開發(fā)實際用到的框架有關(guān)。出現(xiàn)以上不能移植的情況,關(guān)鍵有兩個地方,一個是你開發(fā)時使用的框架,一個是CLR(或者JVM),要看后者到底有沒有能力把前者翻譯成對應(yīng)平臺的可執(zhí)行代碼。

綜上,兩個平臺的側(cè)重點不同。

責(zé)任編輯:張偉 來源: 博客園
相關(guān)推薦

2009-08-03 09:17:30

ASP.NET Ses

2009-11-03 09:09:19

VB.NET類

2015-11-02 09:43:25

ASP.NET異步編程

2009-08-04 16:34:13

ASP.NET代碼分離

2021-05-17 11:47:41

多租戶系統(tǒng)私有化

2009-11-02 16:30:29

VB.NET構(gòu)造器

2009-10-28 14:30:16

VB.NET RmDi

2013-05-14 12:06:26

.Net系統(tǒng)架構(gòu)架構(gòu)設(shè)計

2013-05-13 11:25:44

系統(tǒng)架構(gòu)

2010-05-20 15:29:43

優(yōu)化IIS

2009-11-10 17:04:29

VB.NET基礎(chǔ)知識

2009-11-04 14:37:40

ADO.NET XML

2011-12-09 00:42:43

拯救網(wǎng)管老克

2009-07-09 15:09:05

JDK卸載

2012-03-27 08:49:19

Json

2009-09-14 19:44:27

LINQ To SQL

2009-10-26 10:12:14

VB.NET操作MsA

2009-11-02 11:22:59

VB.NET文本文件操

2016-04-05 10:12:58

HiveSQLHadoop

2013-05-20 09:59:50

點贊
收藏

51CTO技術(shù)棧公眾號