經(jīng)常有客戶問我,到底用微軟平臺還是Java平臺的問題。其實(shí)這是一個永遠(yuǎn)沒有結(jié)果的悖論,只能陷入空對空的空談。不過如果拋棄個人喜好與特定客戶的歷史原因來客觀地考慮,二者之間的確是微軟平臺的優(yōu)勢更加明顯一些。
|
|
.Net
|
J2EE
|
描述
|
|
技術(shù)架構(gòu)
|
技術(shù)架構(gòu)基本相似
J2EE支持多平臺,單一語言;
.Net支持多語言,單一平臺。
J2EE是多家公司維護(hù)一個產(chǎn)品;
.Net是一家公司維護(hù)多個產(chǎn)品。
|
ü 二者都支持多層分布式應(yīng)用的標(biāo)準(zhǔn)架構(gòu)。
ü .NET Framework和Java都有一個受控的運(yùn)行時(shí)環(huán)境,它不但將源代碼轉(zhuǎn)換成中間語言,而且將這些中間語言編譯成本地的可執(zhí)行代碼。兩個環(huán)境都支持碎片整理、動態(tài)類加載和異常處理等。
ü .NET和Java都倡導(dǎo)和支持基于組件的設(shè)計(jì)、多態(tài)性、繼承和接口、反射、泛型等,也提供基礎(chǔ)類庫來執(zhí)行I/O、XML處理、帶有連接池的數(shù)據(jù)庫接入、文本操作與網(wǎng)頁腳本編寫。
ü .NET Framework提供了一個跨服務(wù)器、PC和其它設(shè)備的一致的、面向組件的模型。而J2EE提供EJB作為服務(wù)器端的組件模型。
ü J2EE以Java語言為主,但是支持多個操作系統(tǒng)平臺;.Net則基于Windows平臺,但是支持多種語言。
|
|
穩(wěn)定性
|
強(qiáng)
|
強(qiáng)
|
ü 沒有明顯的證據(jù)表明哪一種應(yīng)用系統(tǒng)更加穩(wěn)定。
ü 在Windows操作系統(tǒng)上,.Net應(yīng)用由于提供了原生態(tài)支持,理論上反而更加穩(wěn)定。
|
|
標(biāo)準(zhǔn)一致性
|
一致
|
不完全一致
|
ü .Net被微軟獨(dú)家支持,有更好的一致性和兼容性;
ü J2EE被不同的廠家支持,沒有兩個廠家的標(biāo)準(zhǔn)是一致的。
|
|
易用性
|
好
|
相對差
|
ü Microsoft應(yīng)用良好的應(yīng)用體驗(yàn)和成為業(yè)界標(biāo)準(zhǔn)的操作模式具有最佳的易用性。
|
|
可管理性
|
好
|
差
|
ü 微軟公司提供了從設(shè)計(jì)開發(fā)、測試部署、運(yùn)行維護(hù)一攬子的產(chǎn)品解決方案;可管理性好。
ü Java則缺少這樣一致性的官方產(chǎn)品線。
|
|
開發(fā)效率
|
高
|
相對低
|
ü Visual Studio專門針對.Net量身定制,具有大量的組件和開發(fā)框架,開發(fā)模式統(tǒng)一。
ü Java則被多家公司支持,開發(fā)模式不一致,開發(fā)代碼量大。
ü Visual Studio作為最佳開發(fā)工具贏得了一系列的大獎。評估過Visual Studio和其競爭對手的客戶都說,相對于最好的Java工具Eclipse,Visual Studio開發(fā)效率更高。
ü Microsoft的產(chǎn)品線豐富,幾乎遍及每一個角落,而且所有產(chǎn)品都可以相互集成,可以快速整合一個應(yīng)用。
|
|
運(yùn)行效率
|
高
|
低
|
ü Java應(yīng)用運(yùn)行在虛擬機(jī)JVM上。
ü .Net應(yīng)用運(yùn)行在.Net Framework上,而.Net Framework是Windows操作系統(tǒng)的一部分。
|
|
實(shí)施成本
|
低
|
高
|
ü Windows Server的許可證比三個遵從J2EE的商業(yè)服務(wù)器中的任何一個許可都便宜很多。這個比率是12比1。
ü .NET Framework開發(fā)工具的費(fèi)用也更加低廉。Visual Studio .NET是.NET的整合開發(fā)工具,它的許可費(fèi)用大大低于商業(yè)化的J2EE銷售商制定的開發(fā)工具的費(fèi)用。
ü .Net開發(fā)效率高導(dǎo)致開發(fā)成本低。
ü 使用.NET維護(hù)費(fèi)用更低。專家認(rèn)為許可費(fèi)用并不是一個項(xiàng)目的最大開支。典型的軟件開發(fā)和維護(hù)占項(xiàng)目總費(fèi)用的50-80%。Middleware公司研究表明,在.NET上一個給定的應(yīng)用程序開發(fā)相對于J2EE,只需要1/3的代碼。代碼越少就意味著維護(hù)成本更低。
|
|
用戶體驗(yàn)
|
好
|
差
|
ü .Net Framework提供了專門針對用戶體驗(yàn)的WPF組件,用戶體驗(yàn)十分豐富。
ü Java缺乏面向用戶體驗(yàn)的開發(fā)支持。
|