小編給大家分享一下.NET與Java是什么意思,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
簡介
.NET是迎接J微軟推出的一種新的軟件運(yùn)行平臺(tái),它包括一整套應(yīng)用范圍廣泛的技術(shù),旨在ava所帶來的挑戰(zhàn)。.NET給快速開發(fā)框架開發(fā)帶來了很多新的技術(shù),尤其是它的“混合語言”開發(fā)方式,是第一個(gè)支持多種語言混合開發(fā)的軟件運(yùn)行平臺(tái),下一代Windows--LongHorn的核心將會(huì)看到.NET的身影。如果讀者學(xué)過Java,那么您會(huì)發(fā)現(xiàn),.NET與Java實(shí)在是太象了。尤其是C#,如果給你一段代碼,有的時(shí)候還真難分辨出是用Java還是C#寫的。
Java是上世紀(jì)九十年代誕生的一種面向?qū)ο笳Z言,它吸取了C++的許多長處,其最大的特性是“跨平臺(tái)”,由于它很好地滿足了網(wǎng)絡(luò)時(shí)代信息系統(tǒng)對(duì)高級(jí)語言的要求,因而在實(shí)踐中得到廣泛應(yīng)用。Java經(jīng)過近十年的發(fā)展,目前已在企業(yè)信息系統(tǒng)開發(fā)領(lǐng)域占據(jù)了主流地位,形成了一整套完整的技術(shù)體系,取得了巨大的成功。
平臺(tái)的構(gòu)架
JAVA平臺(tái)包括JAVA語言,以及一套虛擬機(jī)——如JVM、KVM、CVM等——通過它們實(shí)現(xiàn)在PC機(jī),手提電腦或是嵌入式系統(tǒng)上運(yùn)行JAVA的字節(jié)碼。同時(shí),JAVA平臺(tái)還定義了一整套覆蓋面很廣的API,它們被用來與微軟的API協(xié)調(diào)或是相互競爭。如JDBC對(duì)ODBC,JTAPI對(duì)TAPI,JDO對(duì)ADO等等。因此,簡要來說,JAVA平臺(tái)包括語言,虛擬機(jī),以及API庫。由于使用虛擬機(jī)機(jī)制,所以JAVA語言在所有的平臺(tái)上只有唯一的版本,因此它使用RMI協(xié)議進(jìn)行遠(yuǎn)程通信;微軟則在.NET框架中使用DCOM——正在逐步演變?yōu)镾OAP。SUN最初對(duì)JAVA的宣傳是“一次性代碼編寫,所有環(huán)境下運(yùn)行”,但在推出了“J2EE”和“J2ME”后不得不收回了它最初的宣傳,因?yàn)椤耙环N尺碼的鞋適合所有的腳”的解決方案并不能很好的工作。
.NET框架包括C++, VB.NET和C#等一系列語言;與JAVA虛擬機(jī)類似的一套運(yùn)行時(shí)環(huán)境;以及一套傾向與WINDOWS體系的API接口。其中的運(yùn)行時(shí)環(huán)境可能存在于一個(gè)瀏覽器、或是一個(gè)WEB SERVER、或是在操作系統(tǒng)中。將來也許在SQL SERVER中也可能存在這樣的運(yùn)行時(shí)環(huán)境。另外需要提及的是微軟的SOAP協(xié)議,它在繼承了DCOM的一些特性的基礎(chǔ)上發(fā)展起來,基于XML格式通過HTTP進(jìn)行傳輸。
加密法:概論
.NET的加密法主要基于CryptoAPI 和相關(guān)擴(kuò)展。大多數(shù)有關(guān)加密的類都在System.security.Cryptography, X509Centificates 和XML中。.NET利用基于流的模型來完成加密傳輸,所有的算法都被默認(rèn)為最高的安全級(jí)別。.NET也允許用戶自己在 machine.config 中定義自己的算法。JAVA平臺(tái)的加密算法分二個(gè)部分:Java Cryptography Architecture和 Java Cryptography Extension。 JCE的出口受到有關(guān)法律的限制。如果要使用用戶自己的加密算法,必須得到認(rèn)證機(jī)構(gòu)的認(rèn)證。
加密法:算法
.NET為快速開發(fā)框架主要提供了下面幾大類加密算法:非對(duì)稱算法、HASH算法、對(duì)稱算法、隨機(jī)數(shù)生成法。JAVA提供的加密算法更多,但是較少第三方廠商可以在JAVA中提供自己的算法。
安全配置
兩個(gè)平臺(tái)的配置都是通過XML或純文本文件,兩個(gè)平臺(tái)最大的區(qū)別在于處理安全配置體系的方式不同。在.NET平臺(tái),有圖形接口和命令行二種方式來修改安全配置參數(shù)。Mscorcfg.msc是圖形接口方式,Caspol.exe提供了命令行方式,適用于批處理或配置文本。JAVA平臺(tái)只提供了圖形接口的工具policytool.exe。和.NET不同的是,它的目標(biāo)對(duì)象(配置文件)的名字和位置不是固定的。.NET定義了不同范圍的安全配置文件:系統(tǒng)范圍,本機(jī)范圍,本用戶范圍。在配置有沖突時(shí),原則上小范圍的參數(shù)有優(yōu)先權(quán)。JAVA和J2EE的核心配置文件都保存在固定位置,但擴(kuò)展配置文件隨廠家不同而不同。
安全通信
SSL已經(jīng)是事實(shí)的傳輸安全的工業(yè)標(biāo)準(zhǔn)了。JAVA和.NET都支持最新版本 SSL 3.0。
安全通信:平臺(tái)
.NET只在基于IIS的應(yīng)用中使用SSL來保護(hù)HTTP傳輸,對(duì)于非IIS應(yīng)用,.NET不能保護(hù)傳輸中的數(shù)據(jù)。在JAVA中,JSSE提供了平臺(tái)級(jí)的服務(wù),保證基于TCP/IP的通信安全。除了IIS,.NET沒有提供任何其它平臺(tái)級(jí)的通信保護(hù)的標(biāo)準(zhǔn)方案,但是JAVA在這方面提供了全套的解決方案。
安全通信:應(yīng)用
.NET通過WSA和 WSE包來提供最新的WEB服務(wù)安全保證,JAVA目前還沒有提供這方面的支持。在加密方法上,JAVA和.NET基本沒有太大的差別;在通信保護(hù)方面,JAVA 比.NET提供了更多的選擇方案;但是在WEB服務(wù)安全性上,JAVA明顯比.NET落后一些。
代碼封裝:檢驗(yàn)
JAVA 和.NET 的Common Library Runtime都實(shí)行內(nèi)存安全或類型安全的保護(hù)機(jī)制,在這些平臺(tái)開發(fā)的應(yīng)用的安全性也是可以檢驗(yàn)的。他們的實(shí)現(xiàn)機(jī)制有很大的不同。在.NET, CLR總是執(zhí)行編譯好的代碼,它不解釋代碼。但是在中間語言被編譯之前,編譯器會(huì)有驗(yàn)證和檢驗(yàn)的步驟。第一步是檢查文件的結(jié)構(gòu)和代碼完整性;第二步包括一些擴(kuò)展的檢查,內(nèi)存安全、堆棧跟蹤、數(shù)據(jù)流分析、類型檢查等。在運(yùn)行階段,由VES來負(fù)責(zé)安全性檢查和出錯(cuò)意外情況處理。在JAVA平臺(tái),JAVA虛擬機(jī)(JVM)負(fù)責(zé)類的載入、鏈接、檢驗(yàn)和執(zhí)行。對(duì)于已經(jīng)編譯和優(yōu)化的代碼,JVM也用二個(gè)無條件調(diào)用堆棧來保留最初的字節(jié)代碼信息。
代碼封裝:應(yīng)用隔離
在.NET, 域隔離建立在內(nèi)存安全機(jī)制的基礎(chǔ)上,不同的域不能直接訪問彼此的地址空間,只能通過.NET遠(yuǎn)程通信機(jī)制訪問。在JAVA平臺(tái),應(yīng)用隔離是通過ClassLoaders 和 ProtectionDomains 相結(jié)合來實(shí)現(xiàn)的,安全類加載是JVM安全機(jī)制的基石。.NET的 AppDomains 就象操作系統(tǒng)的進(jìn)程一樣,使用起來比JAVA的 ProtectionDomains 更直接、容易一些。
代碼封裝: 語言特征
兩個(gè)平臺(tái)基本上差不多,.NET在靈活性上稍微好一點(diǎn)。
發(fā)展歷程
JAVA最初來源于SUN的一套為機(jī)頂盒設(shè)計(jì)的語言,當(dāng)時(shí)的名字是OAK,SUN將之更名,并將它放在INTERNET上作為開放源碼共享。隨著專門為網(wǎng)頁設(shè)計(jì)的JAVA APPLET的出現(xiàn),JAVA語言迅速在INTERNET上流行起來。當(dāng)時(shí)的瀏覽器主要是NETSCAPE。當(dāng)微軟發(fā)現(xiàn)明天市場的主宰可能是瀏覽器而不是桌面系統(tǒng)時(shí),開始著手對(duì)NETSCAPE進(jìn)行收購,在收購計(jì)劃失敗后微軟發(fā)展了自己的瀏覽器IE。當(dāng)時(shí)的INTERNET需要一種語言,而JAVA適時(shí)的出現(xiàn)了,由于它與C++的許多相似的語法,使得很多程序員轉(zhuǎn)向了JAVA。而它確實(shí)具有很多優(yōu)勢(shì),以至于在98年秋,它的反對(duì)者微軟在MSDN中都宣稱,JAVA是編寫COM組件的最佳語言。隨著JAVA一起出現(xiàn)的還有LINUX操作系統(tǒng)和APACHE服務(wù)器。這三者的聯(lián)合在服務(wù)器端的應(yīng)用表現(xiàn)出強(qiáng)大的威力,以至WINDOWS NT在企業(yè)級(jí)服務(wù)器市場受到了很大的沖擊。
展望未來
現(xiàn)在,我們能看到到還只是一個(gè)很混亂的局面。而在未來,我們將看到.NET的成熟,以及它和JAVA的融合。JAVA將繼續(xù)保持它的特點(diǎn):跨平臺(tái)的服務(wù)器端應(yīng)用,如WAP服務(wù)器,或者是電信領(lǐng)域的如JAIN,同時(shí)它在嵌入式系統(tǒng)中將繼續(xù)保持它的優(yōu)勢(shì),象智能卡、移動(dòng)電話、PDA等。而我們還將看到.NET的成熟,當(dāng)然這種成熟需要時(shí)間,可能是相當(dāng)長的一段時(shí)間,就好象當(dāng)年JAVA成長那樣。
非微軟產(chǎn)品,包括服務(wù)器,桌面或是便攜式設(shè)備的操作系統(tǒng)如Solaris, Linux和Palm OS的.NET接口。與JAVA核心的整合。SQL SERVER 或是ORACLE 等數(shù)據(jù)庫產(chǎn)品中整合的VES 引擎。由中立的第三方開發(fā)的開放源碼的,完善的.NET平臺(tái)??梢灶A(yù)見到,微軟將會(huì)贊助一些開放源碼的項(xiàng)目,以使.NET 向UNIX 平臺(tái)擴(kuò)展,而這將有助于一些開放源碼組織減少它們對(duì)JAVA的偏愛
以上是“.NET與Java是什么意思”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。