国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
J2EE與.NET平臺(tái)之間的差別

J2EE與.NET平臺(tái)之間的差別
   
    你可以看到在J2EE與.NET平臺(tái)技術(shù)之間由很大的重疊。但是,如何在它們之間進(jìn)行選擇呢?在本節(jié)中,筆者將討論我所看到的主要差別。

開發(fā)商中立性

    許多公司購買J2EE,他們相信這可以給他們開發(fā)商中立地位。而實(shí)際上,這是Sun公司計(jì)劃的一個(gè)確定目標(biāo):
    配置和實(shí)施各種滿足J2EE規(guī)范需求的產(chǎn)品是可能的。一個(gè)可移植的J2EE應(yīng)用程序在這些產(chǎn)品[1]中的任何一個(gè)產(chǎn)品中被成功部署后,都可以正確地運(yùn)行。

    實(shí)際上,除了Sun J2EE的擁護(hù)者,很少有人相信這是可以實(shí)現(xiàn)的。Paul Harmon是最重要的獨(dú)立J2EE發(fā)言人之一,他是Cutter Consortium的首席顧問,廣泛發(fā)行的Architecture/e-Business E-Mail Advisory的作者。雖然Harmon總是反對J2EE,但他最近對J2EE的開發(fā)商可移植性寫了這樣不同尋常的坦誠的評(píng)價(jià)。

    EJB模型是否已經(jīng)達(dá)到了我可以將EJB組件從一個(gè)EJB應(yīng)用服務(wù)器移動(dòng)到另一個(gè)服務(wù)器的程度?在大多數(shù)情況下不能。EJB規(guī)范不夠全面。通過提供專有的解決方案來完善這個(gè)模型,確保他們的客戶可以創(chuàng)建生產(chǎn)系統(tǒng),EJB應(yīng)用服務(wù)器開發(fā)商彌補(bǔ)了這一點(diǎn)。[2]

Harmon總結(jié)了當(dāng)今開發(fā)商中立的情況, 他的評(píng)論如下:
 
    此刻,現(xiàn)實(shí)情況是如果你想開發(fā)一個(gè)EJB應(yīng)用程序,你應(yīng)當(dāng)忠心于一個(gè)開發(fā)商。[3]

今天的現(xiàn)實(shí)是,沒有像開發(fā)商中立這樣的情況。當(dāng)然,.NET平臺(tái)不是開發(fā)商中立的,它與微軟公司的操作系統(tǒng)捆綁到了一起。但是兩者都不是J2EE的實(shí)現(xiàn)。筆者可以給的最佳建議是,選擇某一開發(fā)商,計(jì)劃與其始終站在一起,這樣可以充分利用該開發(fā)商所提供的平臺(tái)優(yōu)勢。


整體成熟性

   第一個(gè)J2EE規(guī)范,EJB規(guī)范在1998年提出,而第一個(gè)β版本出現(xiàn)于1999年。而這則是在與之相當(dāng)?shù)?NET平臺(tái)技術(shù),MTS,COM+的前身第一次實(shí)現(xiàn)的3年之后了。筆者在最近的一篇文章[4]中討論了從MTS到COM+的發(fā)展過程。

    在.NET平臺(tái)比J2EE早出現(xiàn)兩年的情況下,了解.NET平臺(tái)比J2EE平臺(tái)更成熟就不足為怪了。雖然我們有大量的使用.NET技術(shù)的高度可靠的網(wǎng)站(NASDAQ和戴爾就是眾多例子中的兩個(gè)),但我們不知道有哪個(gè)網(wǎng)站使用了J2EE平臺(tái)。Paul Harmon又作了如下評(píng)論:

    今天,任何一個(gè)正在嘗試[基于J2EE的]公司范圍的企業(yè)級(jí)系統(tǒng)的公司,都在盡力工作,更好的方法是讓一個(gè)真正優(yōu)秀的開發(fā)團(tuán)隊(duì)來幫助他們擺脫困境。更重要的是,它可能應(yīng)當(dāng)重新考慮一個(gè)綜合的項(xiàng)目,并滿足于初始近似。[5]


互用性與網(wǎng)絡(luò)服務(wù)

    諸如筆者詳細(xì)討論的,.NET平臺(tái)電子協(xié)作模型是以UDDI和SOAP標(biāo)準(zhǔn)為基礎(chǔ)的。這些標(biāo)準(zhǔn)被100多家公司廣泛支持。微軟公司,IBM和Ariba是這個(gè)領(lǐng)域的領(lǐng)導(dǎo)者。Sun公司是UDDI協(xié)會(huì)的會(huì)員,并且認(rèn)識(shí)到了UDDI標(biāo)準(zhǔn)的重要性。在最近的新聞發(fā)布會(huì)上,Sun公司負(fù)責(zé)Java群體開發(fā)的副總裁George Paolini說:

    “Sun公司一直在工作,以幫助建立和支持開放的、基于標(biāo)準(zhǔn)的技術(shù),來促進(jìn)基于網(wǎng)絡(luò)的應(yīng)用的增長,并且我們認(rèn)為UDDI是一個(gè)重要的、為B2B電子商務(wù)建立一個(gè)注冊架構(gòu)的項(xiàng)目。”[6]

    但是雖然Sun公司公開說相信UDDI標(biāo)準(zhǔn),但實(shí)際上,Sun公司沒有采取任何措施將任何一種UDDI標(biāo)準(zhǔn)合并到J2EE中。這包括最基本的、已經(jīng)有一年多的UDDI標(biāo)準(zhǔn),SOAP。正如IBM公司的Rod Smith(Emerging Technologies公司副總裁,該公司是Sun公司最強(qiáng)大的合作伙伴之一)所說:
     迄今為止,Sun公司還沒有對[UDDI]網(wǎng)絡(luò)服務(wù)發(fā)表過得評(píng)論。但是我認(rèn)為這樣是有原因的。我認(rèn)為他們正在考慮Java。當(dāng)我們考慮網(wǎng)絡(luò)服務(wù)的時(shí)候,我們正在傾聽客戶的聲音和他們的需求,但事實(shí)是,客戶已經(jīng)有了不基于Java的系統(tǒng)和Java應(yīng)用程序。因此,Sun公司仍然在堅(jiān)持Java,但是在這個(gè)問題上非常平靜。[7]

    實(shí)際上,Smith對Sun公司的互用性策略的分析一語中的。Sun公司將重點(diǎn)主要集中在了J2EE開發(fā)商與CORBA開發(fā)商的互用性上。Sun公司的互用性想法是,應(yīng)當(dāng)以所謂的IIOP通信協(xié)議為基礎(chǔ)。

利用基于IIOP的互用性,有三個(gè)主要缺陷。

第一,它需要全世界都運(yùn)行J2EE或CORBA,這是一個(gè)連Sun公司的合作伙伴都反對的假定。IBM公司的Rod Smith解釋了IBM支持SOAP,而不是支持IIOP作為互用性開放標(biāo)準(zhǔn)的原因:

         當(dāng)發(fā)布聲明,并說我們[IBM]將把SOAP作為開放標(biāo)準(zhǔn),并將其相應(yīng)提前時(shí),響應(yīng)是令人無法置信的和積極的,因?yàn)槿藗兿MM(jìn)行這樣的集成工作。他們擁有基于微軟的解決方案。他們同時(shí)擁有基于Java的解決方案。他們還擁有基于[Windows] NT的解決方案和基于Linux的解決方案。[8]

第二個(gè)缺陷是,像所有通信協(xié)議一樣,IIOP 應(yīng)當(dāng)服從在Internet上進(jìn)行傳輸。這使得它不可能作為普遍的電子協(xié)作機(jī)制。

第三個(gè)缺陷是,即使全世界都同意使用IIOP和J2EE,即使在J2EE開發(fā)商中,對于確保互用性當(dāng)前的IIOP規(guī)范也是不適當(dāng)?shù)?。正如Paul Harmon所說的那樣:

         來自不同開發(fā)商的EJB應(yīng)用服務(wù)器是否以能在更大的系統(tǒng)中咬接的方式實(shí)行了標(biāo)準(zhǔn)化?盡管使用Internet InterORB Protocol (IIOP)來支持EJB間的應(yīng)用程序通訊,但仍不能隨便地在一個(gè)網(wǎng)絡(luò)中將多個(gè)EJB產(chǎn)品結(jié)合在一起。 將每個(gè)都依賴幾個(gè)非標(biāo)準(zhǔn)工具進(jìn)行平穩(wěn)通信的兩個(gè)EJB應(yīng)用服務(wù)器仍然需要進(jìn)行一些重要的程序設(shè)計(jì)工作。[9]

    今天的現(xiàn)實(shí)情況是,與J2EE相比,.NET平臺(tái)有一個(gè)更加強(qiáng)大的技術(shù)中性的電子協(xié)作策略。IBM公司深信不已,UDDI,而不是IIOP才是正確的互用性方法,在這個(gè)問題上,這已經(jīng)與Sun公司決裂了。在這一點(diǎn)上,令人痛苦但卻很明顯的是,盡管在UDDI上已經(jīng)領(lǐng)先了10年,但卻是一個(gè)完全的失敗。


可伸縮性

    可伸縮性是指添加更多工作量的能力。一般來說,附加的工作量是客戶的增加引起的??缮炜s性是一個(gè)復(fù)雜的問題,筆者已經(jīng)在幾篇已經(jīng)可以得到的文章中對此進(jìn)行了深入探討[10]。未來簡化這個(gè)討論,筆者將在MoneyBroker可能會(huì)在接下來的3年中遇到的問題的上下文中討論可伸縮性。筆者將進(jìn)一步簡化這個(gè)討論,而只考慮運(yùn)行商務(wù)層和數(shù)據(jù)庫層的成本,盡管對表示層進(jìn)行類似的分析可能會(huì)得出類似的結(jié)果。

    讓我們假定,MoneyBroker的商務(wù)模型要求它今年每天處理10萬筆支付,明年為100萬,而后年則為1000萬。選擇J2EE/Unix解決方案或.NET平臺(tái)/Windows解決方案的相關(guān)成本有哪些呢?

    為了判斷MoneryBroker在接下來的3年中所需的機(jī)器規(guī)模,我們需要一個(gè)事務(wù)處理性能的標(biāo)準(zhǔn)的基準(zhǔn)。事務(wù)處理吞吐量的工業(yè)標(biāo)準(zhǔn)基準(zhǔn)是由所謂的Transaction Performance Council (TPC)協(xié)會(huì)規(guī)定的,該基準(zhǔn)被稱為TPC-C基準(zhǔn)。TPC會(huì)員包括Sun、IBM、Oracle、BEA、微軟和其他大部分銷售中間層/數(shù)據(jù)庫層產(chǎn)品的公司。

    TPC-C基準(zhǔn)評(píng)定了一個(gè)系統(tǒng)可以獲得的最高工作量的等級(jí)。TPC-C基準(zhǔn)定義的測量單位為tpmC,代表每分鐘交易處理數(shù)(transactions per minute)。除了說該基準(zhǔn)考慮的是在分布式訂單輸入系統(tǒng)環(huán)境中的交易處理外筆者將不對其進(jìn)行討論。該基準(zhǔn)的說明可以在TPC網(wǎng)站[11]得到。(http://www.tpc.org/tpcc/results/tpcc_perf_results.aspresulttype=all)

在MoneyBroker使用TPC-C數(shù)使其平臺(tái)成為用戶選擇方面,正在面臨兩個(gè)問題。

    第一個(gè)問題是TPC-C規(guī)定的交易處理與MoneyBroker交易處理完全不同。這需要MoneyBroker徹底審核TPC-C規(guī)范,猜測在工作量中多少TPC-C交易才能與一個(gè)MoneyBroker交易相當(dāng)。我們假定MoneyBroker計(jì)算得出它的一個(gè)交易與10個(gè)TPC-C交易相當(dāng),從而有大量的富余用于處理錯(cuò)誤。

    第二個(gè)問題是,沒有一個(gè)J2EE開發(fā)商已公開發(fā)布自己的TPC-C數(shù)。這使得MoneyBroker很難計(jì)算J2EE實(shí)施的吞吐量,即AIX。有趣的是,雖然所有重要的J2EE開發(fā)商已經(jīng)提交了TPC-C基準(zhǔn),但沒有一個(gè)開發(fā)商已經(jīng)提交了基于他們的J2EE技術(shù)的TPC-C數(shù)。

    例如,對于IBM公司的WebSphere技術(shù)(包含在J2EE技術(shù)中的IBM公司的一個(gè)品牌)有6個(gè)基準(zhǔn)。但是,如果有人研究WebSphere的結(jié)果,就會(huì)發(fā)現(xiàn)沒有一個(gè)基準(zhǔn)的代碼是使用Java編寫的,并且沒有一個(gè)基準(zhǔn)使用了任何的WebSphere J2EE性能。實(shí)際上,這些基準(zhǔn)使用了IBM公司傳統(tǒng)的Encina事務(wù)處理監(jiān)控技術(shù),該產(chǎn)品是同時(shí)包含在總的WebSphere品牌下。類似地,BEA公司使用了其傳統(tǒng)的Tuxedo技術(shù)來運(yùn)行他們的基準(zhǔn),Tuxedo技術(shù)是其WebLogic品牌的一部分,但是卻沒有包含在J2EE中。

    由于我們沒有J2EE性能數(shù)字,我們得必須估計(jì)J2EE實(shí)現(xiàn)的相關(guān)性能。由于J2EE 基于傳統(tǒng)的事務(wù)處理監(jiān)控程序(開發(fā)商已經(jīng)確定了基準(zhǔn)),但是仍然會(huì)增加Java程序設(shè)計(jì)語言。Java虛擬機(jī)和EJB(中間層)的開銷,比較合理的推測是J2EE將可以完成與之相當(dāng)?shù)姆荍2EE系統(tǒng)(如Tuxedo性能)50%的性能。因此,筆者將使用一個(gè)50%調(diào)節(jié)系數(shù)來估計(jì)J2EE的吞吐能力。

    下面我們使用TPC-C 信息對MoneyBroker行為進(jìn)行分析。MoneyBroker正在試圖確定購買何種系統(tǒng)。顯然,MoneyBroker希望花費(fèi)盡可能少的資金,但仍確信可以獲得在客戶使用量達(dá)到峰值時(shí)所需的吞吐量,還確信它的系統(tǒng)可以進(jìn)行伸縮以滿足接下來的三年內(nèi)的需求。

    今年MoneyBroker每天需要處理10萬筆交易。這相當(dāng)于每分鐘處理70筆交易,峰值時(shí)大約為每分鐘處理700筆。由于一個(gè)MoneyBroker交易處理等于10 tpmC交易,這等于工作量達(dá)到峰值時(shí)大約為7000。明年,這個(gè)數(shù)目增加10倍達(dá)到70000 tpmC,而后年,這個(gè)數(shù)目再增加10倍,達(dá)到700000 tpmC。

    那么,在接下來的三年中,這些系統(tǒng)需要哪些支出(包括硬件和軟件在內(nèi))?讓我們從J2EE/Unix的可能支出開始,因此筆者將考慮在IBM公司的AIX操作系統(tǒng)、WebSphere和Oracle 8i系統(tǒng)中,哪一個(gè)最能代表J2EE/Unix系統(tǒng)。對于這種配置,有6個(gè)基準(zhǔn)。按tpmC從最低到最高的次序排列,以及J2EE調(diào)整(前面已經(jīng)討論),結(jié)果如下:

公司       系統(tǒng)                                                 tpmC                    總系統(tǒng)成本

Bull         Escala T610 c/s                                 16,785                  $1,980,179
IBM        RS/6000 Enterprise Server F80           16,785                  $2,026,681
Bull         Escala EPC810 c/s                             33,375                  $3,037,499
IBM        RS/6000 Enterprise Server M80          33,375                  $3,097,055
Bull         Escala EPC2450                                 110,403                $9,563,263
IBM        IBM eServer pSeries 680 Model           110,403                $9,560,594
              7017-S85

    如果我們考慮某些有代表性的.NET平臺(tái)系統(tǒng)(這些系統(tǒng)太多,不可能全部考慮,但數(shù)字非常一致),結(jié)果如下:


公司        系統(tǒng)                                                 tpmC                     總系統(tǒng)成本

Dell          PowerEdge 4400                               16,263                  $273,487
Compaq   ProLiant ML-570-6/700-3P                 20,207                  $201,717
Dell          PowerEdge 6400                               30,231                  $334,626
IBM         Netfinity 7600 c/s                              32,377                 $443,463
Compaq  ProLiant 8500-X550-64P                     161,720               $3,534,272
Compaq  ProLiant 8500-X700-64P                     179,658               $3,546,582
Compaq  ProLiant 8500-X550-96P                     229,914               $5,305,571
Compaq  ProLiant 8500-X700-96P                     262,244               $5,305,571
Compaq  ProLiant 8500-700-192P                      505,303               $10,003,826
 

    你可以理解MoneyBroker 面臨的選擇。今年它只需一個(gè)7000 tpmC系統(tǒng)。在Unix市場這將大約花費(fèi)200萬美元,而在.NET平臺(tái)市場則需要花費(fèi)27.3萬美元。明年MoneyBroker將需要一個(gè)70000 tpmC系統(tǒng),在J2EE/Unix市場需要花費(fèi)950萬美元,而在.NET平臺(tái)市場則需要花費(fèi)350萬美元。后年,MoneyBroker則需要一個(gè)700000 tpmC系統(tǒng)。這些系統(tǒng)中,沒有一個(gè)被評(píng)定為700,000 tpmC,但到面前為止最靠近的系統(tǒng)是1000萬美元的.NET平臺(tái)系統(tǒng)。如果一個(gè)與之相當(dāng)?shù)腏2EE/Unix機(jī)器存在的話,估計(jì)需要花費(fèi)4750萬美元。

    很明顯,如果系統(tǒng)的成本是一個(gè)重要的考慮事項(xiàng),與J2EE相比,.NET平臺(tái)有很大的優(yōu)勢。可以預(yù)計(jì)要獲得相同的功能,需要花的費(fèi)用是在.NET平臺(tái)上所花的費(fèi)用的5到10倍。如果一個(gè)工作單位在.NET平臺(tái)上花10美分,同一個(gè)工作單位則可能需要在J2EE/Unix上花50美分到1美元。

    筆者需要再次指出,雖然這些.NET平臺(tái)基準(zhǔn)是實(shí)際機(jī)器的實(shí)際基準(zhǔn),但在這些J2EE基準(zhǔn)中,沒有一個(gè)真正存在。這些基準(zhǔn)是外推基準(zhǔn)結(jié)果,實(shí)際的系統(tǒng)不一定能真正獲得這些結(jié)果。在J2EE開發(fā)商發(fā)布他們的基準(zhǔn)數(shù)之前,我們必須記住,沒有一個(gè)J2EE平臺(tái)已經(jīng)被證明可以任何代價(jià)的情況下處理這些高工作量。


架構(gòu)支持

    當(dāng)創(chuàng)建一個(gè)大型的電子商務(wù)解決方案時(shí),不用說沒有人希望從頭開始。而是希望在已經(jīng)完整定義的、結(jié)果測試的電子商務(wù)架構(gòu)基礎(chǔ)上創(chuàng)建解決方案。使用這樣的架構(gòu)可以極大地降低開發(fā)成本,可能至少降低10倍。

.NET平臺(tái)包括一個(gè)所謂的Commerce Server電子商務(wù)架構(gòu)。在這一點(diǎn)上,在J2EE空間內(nèi)沒有與之相當(dāng)?shù)拈_發(fā)商中立的架構(gòu)。利用J2EE,你應(yīng)當(dāng)假定你需要從頭創(chuàng)建你的新的電子商務(wù)解決方案。Paul Harmon看來同意這種評(píng)價(jià),說:

    選擇哪一個(gè)[J2EE]開發(fā)商,如果你期望一個(gè)允許你很快實(shí)施的完善的電子商務(wù)應(yīng)用程序,你將會(huì)有令人沮喪不已的體驗(yàn)。[12]

    如果使用MS Commerce Server作為你的電子商務(wù)基礎(chǔ),那么很可能會(huì)對開發(fā)系統(tǒng)的成本有很大的影響。Commerce Server尤其適合零售業(yè)務(wù)。這樣的電子商務(wù)系統(tǒng)應(yīng)當(dāng)仔細(xì)考慮這項(xiàng)技術(shù)。


語言

    在語言方面,選擇很簡單。J2EE支持Java,并且只支持Java。在可預(yù)見的將來,它將不會(huì)支持其他任何種語言。.NET平臺(tái)支持出Java以外的其他任何種語言(盡管它支持一種在語法和功能上與Java相當(dāng)?shù)恼Z言,C#)。實(shí)際上,倘若.NET平臺(tái)像一輛語言獨(dú)立的車輛一樣重要,在不遠(yuǎn)的將來,很可能任何一種出現(xiàn)的語言都支持.NET平臺(tái)。

    某些公司對J2EE支持其他語言所打動(dòng)。盡管IBM公司的WebSphere和BEA公司的WebLogic支持其他語言,但是他們都不是通過J2EE技術(shù)實(shí)現(xiàn)的。在J2EE平臺(tái)種,只有兩種正式的方法來訪問其他語言,一種是通過Java Native Interface,另一種方法是通過CORBA互用。Sun公司推薦采用后一種方法。正如Sun公司著名的科學(xué)家和Java設(shè)計(jì)師Rick Cattell在一次采訪種所說:

    你可以通過Java Native Interface功能和通過CORBA調(diào)用C++。CORBA可能是推薦的方法,因?yàn)樗ㄟ^了更大的靈活性,并且我們已經(jīng)設(shè)計(jì)了在認(rèn)可的環(huán)境中能夠很好地與CORBA一起工作的J2EE[13]。

    在CORBA體系結(jié)構(gòu)中創(chuàng)建任何新代碼都是一個(gè)很有問題地策略。CORBA是20世紀(jì)90年代受人喜愛地體系結(jié)構(gòu),但現(xiàn)在已經(jīng)不再使用了。據(jù)筆者所了解,沒有一個(gè)CORBA開發(fā)商(除IONA外)在CORBA上盈利,并且沒有一個(gè)開發(fā)商(包括IONA在內(nèi))在繼續(xù)向該技術(shù)投資。底線是如果有人希望以Java以外的任何一種語言進(jìn)行開發(fā),那么J2EE是不正確的平臺(tái)選擇。

    當(dāng)前某些非Java公司正在考慮在Java上進(jìn)行重新標(biāo)準(zhǔn)化的可能性。要實(shí)現(xiàn)這一點(diǎn),有三種可能的方法:

        對現(xiàn)有職員進(jìn)行再培訓(xùn) 
       雇傭新職員,并盡可能地替換現(xiàn)有職員
       外包

    再培訓(xùn)可能是最昂貴的選擇。以我的經(jīng)驗(yàn),有很大的管理費(fèi)用與將傳統(tǒng)的程序員培訓(xùn)成精通面向?qū)ο蟮腏ava程序員有關(guān)。這是Gartner集團(tuán)最近的研究的結(jié)果,得出得結(jié)論是將一個(gè)COBOL程序員培訓(xùn)成Java程序員,每人大約需花費(fèi)6萬美元[14]。 筆者相信,對于Visual Basic程序員,費(fèi)用大體相當(dāng)。并且在訓(xùn)練結(jié)束,你在生產(chǎn)力方面一無所得。你可以簡單地雇傭一個(gè)現(xiàn)在可以編寫與花費(fèi)6萬美元進(jìn)行培訓(xùn)后編寫的代碼相同,但現(xiàn)在就可以使用Java編寫該代碼的程序員。在許多公司中,筆者曾經(jīng)看到由于采用面向?qū)ο蟮募夹g(shù)損害生產(chǎn)力的情況,工作時(shí)間通常會(huì)浪費(fèi)在了無休止的和沒有成果的關(guān)于“正確的”面向?qū)ο蟮脑O(shè)計(jì)與分析的理論討論上。

    雇傭和/或替換職員同樣代價(jià)昂貴。當(dāng)前,Java程序員所要求的薪水比傳統(tǒng)的Visual Basic/COBOL程序員高30%。在筆者的經(jīng)驗(yàn)中,他們還有更高的新雇人員比率。

對于希望轉(zhuǎn)向Java的公司來說,外包可能是唯一可行的選擇。但是,假定外包可以完全使你擺脫上面提到的問題是不現(xiàn)實(shí)的,很顯然,尤其是額外的程序員成本被轉(zhuǎn)移給你的情況下,更是這樣。

    那么你應(yīng)當(dāng)使用什么語言呢?底線是,如果你有經(jīng)過Java培訓(xùn)的職員, 并且已經(jīng)有了合適的策略來確保對程序設(shè)計(jì)過程的有效管理,那么盡一切辦法堅(jiān)持下去。筆者個(gè)人喜歡使用Java作為程序設(shè)計(jì)語言,盡管筆者認(rèn)為至少有其他好的語言。另一方面,如果你的店鋪主要是由Visual Basic和COBOL組成,那么轉(zhuǎn)向Java差不多肯定會(huì)是代價(jià)昂貴的、令人沮喪的一次體驗(yàn)。

    你的語言選擇并不會(huì)必定決定你在J2EE和.NET平臺(tái)之間的選擇。當(dāng)然,如果你希望使用Java以外的某些東西,那么你就處于J2EE空間之外了。但是,Java的吸引力并不需要?jiǎng)儕Z你使用.NET平臺(tái)的權(quán)利 。.NET平臺(tái)包括對C#(發(fā)音為C Sharp)支持,該語言是一種與Java很類似的語言,以至于許多人第一眼還不能將它們分辨開來。一個(gè)有經(jīng)驗(yàn)的Java程序員可以在幾小時(shí)內(nèi)學(xué)會(huì)C#語法。

    但是,如果你選擇Java不是因?yàn)镴2EE所聲稱的可移植性策略,那么C#或任何其他可以在.NET平臺(tái)上運(yùn)行的語言不大可能會(huì)讓你愉快的。如果這樣,很明顯J2EE是你的選擇。但是,在做出選擇之前,一定要閱讀有關(guān)可移植性的章節(jié)。.


可移植性

     J2EE的許多吸引力在于可移植性方面的承諾。有兩種可移植性。的一種是開發(fā)商可移植性。筆者將這種可移植性稱為開發(fā)商中立(vendor neutrality),前面已經(jīng)討論(并拒絕)了這種想法。第二種可移植性是操作系統(tǒng)可移植性(operating system portability)。這指的是在不對代碼做任何改動(dòng)的情況下,將代碼基從一個(gè)操作系統(tǒng)轉(zhuǎn)移到另一個(gè)操作系統(tǒng)的能力。與開發(fā)商中立不同,大多數(shù)J2EE實(shí)施最可能采取操作系統(tǒng)可移植性。

    J2EE最可能會(huì)采取操作系統(tǒng)可移植性的原因是,在很大程度上并不是由于J2EE任何固有的可移植性,而是大多數(shù)J2EE開發(fā)商支持多種操作系統(tǒng)。因此,只要一個(gè)公司忠誠于一個(gè)既定的J2EE開發(fā)商和一個(gè)既定的數(shù)據(jù)庫開發(fā)商,從一個(gè)操作系統(tǒng)轉(zhuǎn)向另一個(gè)操作系統(tǒng)是可能的。這可能是唯一一個(gè)最重要的J2EE平臺(tái)超過.NET平臺(tái)的益處,而.NET平臺(tái)僅限于Windows操作系統(tǒng)。但是,微軟公司向ECMA(對JavaScript進(jìn)行標(biāo)準(zhǔn)化的團(tuán)體)提交C#規(guī)范和.NET Framework的一個(gè)子集(稱為Common Language Infrastructure)毫無價(jià)值。

    為什么開發(fā)商可移植性/中立令人滿意很明顯,但是操作系統(tǒng)可移植性有什么好處呢?我們認(rèn)認(rèn)為,一般有兩種類型的公司需要操作系統(tǒng)可移植性:獨(dú)立軟件開發(fā)商(ISV,Independent Software Vendor)和尋求可收縮性解決方案的公司。

    獨(dú)立軟件開發(fā)商(ISV)在有大量的非Windows平臺(tái)客戶群時(shí)需要操作系統(tǒng)可移植性。一個(gè)開發(fā)商不可能向依賴于.NET平臺(tái)的Unix客戶銷售一件產(chǎn)品。如果.NET平臺(tái)比J2EE好還是不好無關(guān)緊要。它并不在Unix上運(yùn)行。

    如果獨(dú)立軟件開發(fā)商的產(chǎn)品必須銷售給非Windows客戶,尤其是當(dāng)J2EE平臺(tái)本身需要與獨(dú)立軟件開發(fā)商的產(chǎn)品捆綁在一起作為集成產(chǎn)品提供時(shí),J2EE提供了一個(gè)可接受的解決方案。

    如果獨(dú)立軟件開發(fā)商的主要客戶群是Windows客戶,那么應(yīng)當(dāng)選擇.NET平臺(tái)。它可以在成本低得多的情況下提供好得多的產(chǎn)品。

    許多需要操作系統(tǒng)可移植性的公司并不是獨(dú)立軟件開發(fā)商。這些公司的大多數(shù)公司認(rèn)為可移植性是通向可收縮性的道路。這些公司相信他們,隨著吞吐量需求的擴(kuò)大,他們可以通過將應(yīng)用程序移植到更高端硬件平臺(tái)來獲得更高的可收縮性。

    如果你相信操作系統(tǒng)可收縮性能夠以任何方式幫助你獲得可收縮性,你正在犯一個(gè)嚴(yán)重錯(cuò)誤??墒湛s性不是一個(gè)硬件問題;它是一個(gè)軟件問題。最高的可收縮性可以通過尋求高度可收縮的平臺(tái),然后盡可能地發(fā)揮該平臺(tái)的優(yōu)勢獲得。尋求在多個(gè)平臺(tái)上運(yùn)行的J2EE實(shí)施,在可獲得的可收縮性方面還需很長的時(shí)間。到目前為止,在獲得高可收縮性的能力方面,最好的被證明的平臺(tái)是.NET平臺(tái)。

    使用筆者在關(guān)于可收縮性的一節(jié)中給出的數(shù)字,.NET平臺(tái)可以從每分鐘處理16,000筆交易增加到超過每分鐘處理500,000筆交易。IBM WebSphere J2EE/Unix技術(shù),是J2EE種類最好的代表之一,可能不會(huì)好于每分鐘處理17,000到110,000筆交易,而每筆交易的成本則更高。

    因此,可移植性并不是像看起來那么簡單。如果你真的需要可收縮性,很明顯,在.NET平臺(tái)和J2EE中,.NET平臺(tái)是勝者。如果你必須支持非Windows平臺(tái),那么很明顯,J2EE是勝者。

    如果你需要可移植性,不依賴于一時(shí)的念頭或某一特定獨(dú)立軟件開發(fā)商的財(cái)富,那么忘掉它吧。這種 可移植性根本不存在。因此你要認(rèn)真地選擇開發(fā)商。確信你了解,并且對該開發(fā)商的技術(shù)指導(dǎo)感覺滿意。確信你的開發(fā)商對該平臺(tái)有一個(gè)長期的承諾。最后,確信你的開發(fā)商有財(cái)政資源以在這個(gè)高度競爭的舞臺(tái)上生存。


客戶端設(shè)備獨(dú)立性

    筆者討論了Java和.NET平臺(tái)表示層程序設(shè)計(jì)模型之間的差別。主要差別是,利用Java,決定傳輸給客戶端的最終HTML的是表示層程序員,而使用.NET,則是Visual Studio .NET控件。

    這種Java方法有三個(gè)問題。第一個(gè)問題,它需要很多位于表示層的代碼,因?yàn)槊總€(gè)可能的瘦客戶端都行需要一個(gè)不同的代碼路徑。第二個(gè)問題,很難使用每個(gè)可能的瘦客戶端系統(tǒng)對代碼進(jìn)行測試。第三個(gè)問題,很難給現(xiàn)有的應(yīng)用添加新的瘦客戶端,因?yàn)檫@樣做會(huì)涉及搜索和修改數(shù)量驚人的表示層邏輯。

   .NET Framework方法是編寫與可視控件交互的設(shè)備獨(dú)立的代碼。負(fù)責(zé)根據(jù)客戶端設(shè)備的能力確定傳送何種HTML的是控件,而不是程序員。

在.NET Framework模型中,一個(gè)人可能會(huì)忘記像HTML存在這樣的事情!

    這種方法解決了Java/老ASP方法的所有三個(gè)問題。一個(gè)人可以使用更少的代碼。對代碼進(jìn)行測試更容易,因?yàn)橹恍鑼εc控件的交互進(jìn)行測試,而不是對客戶端設(shè)備進(jìn)行測試。最后,可以很容易地添加新的客戶端設(shè)備,只需下載更新了關(guān)于瘦客戶端設(shè)備的最新知識(shí)的控件的最新版本。

    從成本角度看,.NET Framework方法是毫無疑問的勝者。如果表示層開發(fā)人員不再負(fù)責(zé)確定在客戶端設(shè)備上顯示哪些內(nèi)容的話,開發(fā)、測試和維護(hù)將會(huì)容易得多(、便宜得多)。

結(jié)論

    對于電子商務(wù)體系結(jié)構(gòu),我們有兩個(gè)互相競爭的構(gòu)想。

    Sun公司的J2EE構(gòu)想是以眾多開發(fā)商可以實(shí)施的一族規(guī)范為基礎(chǔ)的。任何公司都可以許可和實(shí)施該項(xiàng)技術(shù),在這種意義上講,J2EE是開放的,

    但是從只有一個(gè)開發(fā)商控制該技術(shù)來說,它是封閉的,是一個(gè)具有非常有限的與外界互相影響的自我滿足的體系結(jié)構(gòu)的孤島。

    J2EE的一個(gè)主要缺點(diǎn)是,選擇該平臺(tái)表明使用一種程序設(shè)計(jì)語言,一種不很適合大多數(shù)企業(yè)的語言。

J2EE的一個(gè)主要優(yōu)勢是,大多數(shù)J2EE開發(fā)商提供了操作系統(tǒng)可移植性。

    微軟的.NET平臺(tái)構(gòu)想是一個(gè)產(chǎn)品,而不是一個(gè)規(guī)范家族,帶有用來定義互用性要點(diǎn)的規(guī)范。這種方法的住雅缺點(diǎn)是,如果限于Windows平臺(tái),

    那么為.NET平臺(tái)編寫的應(yīng)用程序只能在.NET平臺(tái)上運(yùn)行。.NET平臺(tái)有幾個(gè)重要的優(yōu)點(diǎn):

    開發(fā)應(yīng)用程序的成本更低,因?yàn)榭梢允褂脴?biāo)準(zhǔn)的商務(wù)語言,并且可以編寫設(shè)備獨(dú)立的表示層邏輯。 運(yùn)行應(yīng)用程序的成本更低,因?yàn)榭梢允褂蒙唐酚布脚_(tái)(成本是它們的Unix對手的1/5)。 伸縮的能力更大,被證明的可以支持客戶端數(shù)是任何J2EET平臺(tái)表明的可以支持的客戶端數(shù)的10倍。 互用性更強(qiáng),可以將工業(yè)標(biāo)準(zhǔn)電子協(xié)作內(nèi)置到平臺(tái)中。

    這兩個(gè)平臺(tái)一個(gè)最有差別的特點(diǎn)是整個(gè)系統(tǒng)的可移植性。尋求的成本電子商務(wù)平臺(tái)的公司可能會(huì)由于疏忽而忽視了微軟公司提供的功能。電子商務(wù)總是需要高可靠性和出色的可收縮性。第一次,這些功能能夠以基于Unix的解決方案的成本的一小部分就可以在商品硬件平臺(tái)上獲得。

.NET vs. J2EE:誰與爭鋒?

--==.NET vs. J2EE:誰與爭鋒?==--

類型:轉(zhuǎn)載 來源:CSDN | 時(shí)間:2006-3-17 |  人氣: 

文章關(guān)鍵字:.NET,J2EE

2005年,開發(fā)平臺(tái)可謂熱鬧非凡,重量級(jí)的軟件公司紛紛推出新的開發(fā)平臺(tái)和開發(fā)工具。主打.NET的微軟公司在2005年第4季度,隆重推出了醞釀已久的Visual Studio 2005及其相關(guān)的軟件。其發(fā)布活動(dòng)將在全球90多個(gè)國家先后舉行,并且在國內(nèi)巡展了20個(gè)城市,其宣傳力度之大前所未有??梢娢④泴@個(gè)五年磨一劍的產(chǎn)品極為重視,把它視為今后開發(fā)平臺(tái)的一注重量級(jí)籌碼。

微軟也試圖通過這個(gè)產(chǎn)品與諸多的J2EE開發(fā)工具,特別是TigerJ2SE 5.0)相抗衡。而J2EE陣營的主要開發(fā)工具廠商巨頭IBM,也推出了最新版本Eclipse 3.1 RC4。Eclipse3.1 M4開始支持J2SE 5.0的開發(fā),IBM認(rèn)為J2SE 5.0的發(fā)布是Java語言發(fā)展史上一個(gè)重要里程碑,是迄今為止在Java編程方面所取得的最大進(jìn)步。

Borland公司也推出了Together 2006Delphi 2006等產(chǎn)品。隨著這些開發(fā)平臺(tái)的相繼推出,在即將到來的2006年,開發(fā)平臺(tái)將展開新一輪的激烈競爭,各個(gè)公司力圖在整個(gè)開發(fā)平臺(tái)市場上重新洗牌。

關(guān)于J2EE.NET之間的討論已經(jīng)持續(xù)很多年了,在2006年這個(gè)爭論必將繼續(xù)下去,孰優(yōu)孰劣仍然很難下結(jié)論。事實(shí)上,筆者認(rèn)為無論怎樣比較,.NETJ2EE都各有特長,兩者都是十分優(yōu)秀的開發(fā)平臺(tái),短時(shí)間內(nèi)誰也不可替代對手。之所以說選擇哪種開發(fā)平臺(tái),除了要看軟件開發(fā)人員對語言的掌握能力及個(gè)人喜好,也要根據(jù)開發(fā)內(nèi)容和企業(yè)具體情況、具體需求而定。

J2EE平臺(tái):更開放

開放性是J2EE的一個(gè)重要特點(diǎn),這也是Java發(fā)展的生命源泉。Sun公司在其發(fā)展中起著關(guān)鍵性作用,同時(shí)很多世界級(jí)公司如IBM、BEA、甲骨文等,都是其忠實(shí)盟友。這些都決定了開發(fā)工具是少不了的。

由于Java的開放性特點(diǎn),很多廠商都會(huì)創(chuàng)建自己的開發(fā)工具。右表中提到的是幾家主要公司的Java開發(fā)工具。此外還有甲骨文公司的Jdeveloper、賽門鐵克公司的 Visual Cafe for JavaAdobe公司的JRUN以及Apache公司的ANT等也是常見的開發(fā)工具。

.NET平臺(tái):易上手

至于由微軟開發(fā)的.NET平臺(tái)下的開發(fā)工具,主要是基于Visual Studio系列的商業(yè)開發(fā)工具。.NET最大特點(diǎn)就是容易上手,是軟件開發(fā)人員入門的較好選擇。優(yōu)異的用戶界面反應(yīng)速度以及與Windows的整合度,可以使軟件人員較快地構(gòu)建出用戶界面比較好的應(yīng)用程序。

其實(shí)作為一個(gè)開發(fā)平臺(tái),.NETJava都非常成熟和穩(wěn)定。但.NETJava的誕生晚了六年,這也恰恰在某種程度上增加了.NET的優(yōu)越性。因?yàn)樾录夹g(shù)總可以借鑒舊技術(shù)的發(fā)展經(jīng)驗(yàn),達(dá)到取長補(bǔ)短的效果。

Visual Studio .NET是特性豐富的開發(fā)環(huán)境,通用語言的支持能力使開發(fā)人員能夠在C++、VBC#間自由轉(zhuǎn)換。而且,Visual J#.NET還使Java開發(fā)人員可以使用所選的語言對.NET平臺(tái)進(jìn)行編程。編程人員利用Visual J#.NET創(chuàng)建基于.NET的應(yīng)用程序,這些應(yīng)用程序可以無縫地與使用任何其他.NET平臺(tái)支持語言編寫的.NET應(yīng)用程序進(jìn)行交互操作。

有了Visual J#.NET,Java開發(fā)人員就可利用.NET框架的豐富工具(ADO.NET、ASP.NET和許多其他工具),這些工具的功能和簡單性超過了Java開發(fā)工具包(JDK)規(guī)范中的功能。

Visual Studio.NET的編輯器還支持XML文檔、XML大綱、HTMLCSS的創(chuàng)建。比如,XML是在Java誕生之后,.NET誕生之前出現(xiàn)的技術(shù),所以.NET對于XML的整合會(huì)比較完善,而Java是后來將之加入的,整合程度自然比不上.NET。下面對微軟最新發(fā)布的Visual Studio 2005的特點(diǎn)作一個(gè)簡單介紹:

微軟把 Microsoft SQL Server 2005Visual Studio 2005,以及將于明年推出的BizTalk Server 2006共同構(gòu)成新一代企業(yè)級(jí)應(yīng)用平臺(tái),其核心是Visual Studio 2005。

利用Visual Studio 2005以及.NET Framework 2.0 這一企業(yè)級(jí)開發(fā)平臺(tái),廣大開發(fā)人員及其團(tuán)隊(duì)能夠開發(fā)出更加高效、安全和可靠的解決方案。Visual Studio 2005增加了一系列新的工具,其中,Visual Studio Team System是一個(gè)可擴(kuò)展的、支持整個(gè)軟件開發(fā)生命周期的工具平臺(tái),能使軟件開發(fā)團(tuán)隊(duì)之間更好地協(xié)作,從而開發(fā)出現(xiàn)代化的、具有服務(wù)導(dǎo)向性的解決方案。

Microsoft Visual Studio 2005 開發(fā)工具系列,有許多令人期盼已久的強(qiáng)化功能,包括提供更高的程序開發(fā)效率、更精簡的程序代碼、更佳的安全性能等。

另外該工具系列還具備一些新特色,包括.NET Framework 2.0、ASP .NET 2.0、64-bit 程序開發(fā)支持、新的Windows Form程序設(shè)計(jì)以及對行動(dòng)裝置解決方案的全新開發(fā)支持。

值得注意的是,首度推出的 Visual Studio Team System 是與開發(fā)工具完全整合的軟件開發(fā)生命周期管理平臺(tái),與Agile方法論以及CMMI規(guī)范都相整合。

Visual Studio Team System 除了在軟件開發(fā)流程上更加嚴(yán)謹(jǐn)之外,軟件開發(fā)的質(zhì)量與時(shí)間也更易于掌控,同時(shí),還將Visual Studio開發(fā)工具一貫支持個(gè)人開發(fā)者高生產(chǎn)力的優(yōu)勢,延伸到支持整個(gè)高效率及流程導(dǎo)向的開發(fā)團(tuán)隊(duì)。

.NET在技術(shù)上的進(jìn)步也開始體現(xiàn)在市場占有率上。如果以前大家對兩種平臺(tái)的認(rèn)識(shí)是.NET可能無法勝任大規(guī)模的企業(yè)開發(fā),那么最近的一系列調(diào)查數(shù)據(jù)則能夠反駁這一觀點(diǎn)。

IDC公司在200510月份進(jìn)行的一項(xiàng)調(diào)查發(fā)現(xiàn),35.7%的大公司采用.NET來開發(fā)最重要的業(yè)務(wù)軟件,而使用Java的比例只有25.3%

未來:代碼管理工具比平臺(tái)更重要

但現(xiàn)在就說Java平臺(tái)將會(huì)退出競爭市場還為時(shí)過早。畢竟Java平臺(tái)已經(jīng)發(fā)展了這么多年,不會(huì)因?yàn)?/font>.NET的勝利而消失。而且對于大型企業(yè)來說,由于現(xiàn)有規(guī)模和業(yè)務(wù)種類已經(jīng)十分復(fù)雜,加之有多年遺留下來的應(yīng)用系統(tǒng),Java平臺(tái)可能還是最適當(dāng)?shù)倪x擇。

對于軟件開發(fā)人員來說,單學(xué)習(xí)哪種語言都不會(huì)找不到工作。一旦選擇一方作為開發(fā)工具,惟精實(shí)才是惟一的出路。在此基礎(chǔ)上去不斷嘗試新東西,才是IT行業(yè)的生存之道。

對于企業(yè)來說,.NETJ2EE都有自己相對穩(wěn)定的用戶群。雖然這兩個(gè)開發(fā)平臺(tái)在很多方面都有很多相同或者相似的特性,但是不等于就可以互相替換,因?yàn)殡p方畢竟還有許多本身的獨(dú)到之處,可稱為是獨(dú)門絕技。

首先這兩個(gè)開發(fā)平臺(tái)的開發(fā)思路截然不同。J2EE依托于開放的工業(yè)標(biāo)準(zhǔn),注重開源代碼,強(qiáng)調(diào)跨平臺(tái)的應(yīng)用。而.NET則注重開放工具功能的日趨強(qiáng)大和豐富,可以兼收其他產(chǎn)品的優(yōu)點(diǎn)。比如在微軟的開發(fā)平臺(tái)上可以兼容20多個(gè)開發(fā)語言,簡單易學(xué),界面友好,是微軟產(chǎn)品的一貫特征。

然而微軟的開發(fā)平臺(tái)只能在Windows系統(tǒng)上運(yùn)行,不支持開源代碼。

一般認(rèn)為,在中小企業(yè)中,微軟的開發(fā)平臺(tái)將繼續(xù)成為主流的產(chǎn)品。而在大中企業(yè)中,特別是那些使用UNIX系統(tǒng)或者具有多個(gè)操作系統(tǒng)、業(yè)務(wù)環(huán)境和IT環(huán)境十分復(fù)雜、對業(yè)務(wù)要求十分苛刻的大型企業(yè)中,J2EE將繼續(xù)占有較大的市場。

微軟則試圖將自己的開發(fā)平臺(tái)向大中企業(yè)延伸,爭奪J2EE原有的市場份額。J2EE則力圖保住原有的市場和用戶。爭奪最激烈的是中型企業(yè)它成為了兩大陣營競爭的前沿陣地。這一爭奪隨著兩大陣營的最新產(chǎn)品發(fā)布,將在2006年更趨白熱化。

誰將在2006年的競爭中占有上風(fēng),獲得更多用戶的青睞?那些開發(fā)平臺(tái)推出的新特點(diǎn)和新工具能否得到用戶的認(rèn)可?能否經(jīng)住實(shí)踐的考驗(yàn)?誰也無法給出確切的答案。

Compuware公司為代表,在兩大陣營夾縫中生存,推行左右逢源方針能否獲得成功?能否走出一條融合之路,異軍突起?也是我們在2006年關(guān)注的焦點(diǎn)之一。

現(xiàn)在,市面上出現(xiàn)了一些軟件公司推出了同時(shí)支持Java.NET兩種平臺(tái)的開發(fā)工具,在二者之間架起了橋梁,Compuware公司就是其中的代表。在Compuware看來,選擇Java平臺(tái)還是.NET平臺(tái)已經(jīng)不重要了,重要的是誰有一套完善、高效的軟件代碼管理工具。因此,兩種平臺(tái)并存的局面還會(huì)持續(xù)很長時(shí)間。

.NET 與 J2EE優(yōu)勢比較

作者:J2EE 來源:本站整理 發(fā)布時(shí)間:2007-11-14 22:24:32

      

讓我們來看看J2EE.NET各自都有哪些優(yōu)勢。

The Middleware Company (TMC)是一家從事Java培訓(xùn)和咨詢的公司,由于該公司于200210月發(fā)表的一篇有爭議的報(bào)告而引起了J2EE社團(tuán)的爭論。這篇有關(guān)J2EEMicrosoft .NET FrameworkThe report contained benchmark tests似乎在暗示.NET是優(yōu)于J2EE的(比如提到.NET 應(yīng)用程序更快更容易升級(jí),能夠用更少的時(shí)間來構(gòu)建和配置,以及比J2EE 程序所用的代碼更少。這引起了Java社團(tuán)的強(qiáng)烈抗議,尤其當(dāng)一些分析家們指出該基準(zhǔn)(benchmarking)應(yīng)該在更早一些時(shí)候頒布時(shí)更是遭到了回?fù)簟N沂遣粫?huì)參與到這些聲討中的,我只希望能夠客觀地對這兩種技術(shù)進(jìn)行比較。

該基準(zhǔn)是TMC公司花費(fèi)了巨大的努力才研究出來的成果,然而其結(jié)果卻并不那么理想。TMC最初的計(jì)劃是準(zhǔn)備在這兩個(gè)平臺(tái)之間進(jìn)行一場公平的測試,但最終卻因只聯(lián)系到Microsoft而未能和BEA、IBM、Sun以及其他J2EE的成員取得聯(lián)系而使得這一計(jì)劃被迫中斷。后來的結(jié)果顯示Microsoft是該項(xiàng)測試的投資者。

公眾們還發(fā)現(xiàn)TMC邀請了Microsoft的專家來對用于該基準(zhǔn)的.NET Framework進(jìn)行配置和調(diào)試,但卻沒有向J2EE方面尋求任何建議。也許TMC認(rèn)為它本身已經(jīng)是J2EE領(lǐng)域的專家了(它曾出版過兩本備受好評(píng)的EJB書籍),就如它在其網(wǎng)站上聲稱的那樣。很遺憾而且相當(dāng)出乎意料的是,它并沒有按照自己所推薦的最佳實(shí)踐來進(jìn)行實(shí)施。(你可以在www.dreambean.com/petstore.html中找到Rickard Oberg所做的分析。)

先讓我們將政治和金錢放到一邊。.NET Framework是否還能象去年年初發(fā)布時(shí)那樣擊敗J2EE?到目前為止這個(gè)答案還是未知的,要等到TMC重新指導(dǎo)一場包括MicrosoftJ2EE權(quán)威認(rèn)證的測試之后才能揭曉。然而,這里我想指出為什么J2EE社團(tuán)需要認(rèn)真對待.NET的幾點(diǎn)原因――我是說更認(rèn)真地對待它。首先,我們來看看J2EE能夠戰(zhàn)勝Microsoft .NET的優(yōu)勢所在:

由于有著廣泛的類庫,Java的語言和技術(shù)更成熟且經(jīng)過大量測試,這一點(diǎn)Microsoft要花好幾年才能趕上。

Java是最早可用的商業(yè)語言(它比Visual Basic .NET還要更早一些)。

許多遍及世界的編譯器和編程語言研究室都在使用Java,這些研究項(xiàng)目的結(jié)果直接提高了Java的社會(huì)知名度。比如,IBM曾采用Jikes JVM及其編譯器所完成的just-in-timeJIT)優(yōu)選法(optimization)。而.NET還很新,所以只有Microsoft在獨(dú)自進(jìn)行研究。但這種情況很快便會(huì)有所改變。

更多Java開放式資源項(xiàng)目是用戶無需花費(fèi)太多成本便可以得到的,比如Tomcat Web containerJBoss,以及Jonas EJB服務(wù)器。這些產(chǎn)品通常證明Java是小型的、預(yù)算有限的企業(yè)的最佳選擇。

然而,沒有人能夠低估Microsoft(去問問Sony有多擔(dān)心Xbox)。以下這些因素會(huì)證明.NETJ2EE發(fā)展得更快:

.NET運(yùn)行于Windows平臺(tái),同其他產(chǎn)品相比,它是Microsoft產(chǎn)品中具有較高位置的一個(gè)。從事.NET的工程師能夠訪問到該操作系統(tǒng)的各個(gè)細(xì)節(jié),因此對他們來說調(diào)試.NET程序是非常容易的。在J2EE .NET之間的任何角逐都要在Windows上進(jìn)行,因?yàn)?/font>.NET還不是真正可移植的。然而,對于J2EE程序服務(wù)器來說,Windows只不過是一個(gè)黑盒子而已。

Microsoft已經(jīng)證明了其在追趕新技術(shù)方面所取得的成功。僅僅用了一年時(shí)間,.NET Framework的性能已經(jīng)能夠同更為成熟的J2EE相提并論了。.NET甚至還實(shí)現(xiàn)了許多J2EE未曾實(shí)現(xiàn)的新技術(shù),比如緩存(caching)和服務(wù)器端組件。在ASP.NET 頁面中,只需寫一行代碼便可以實(shí)現(xiàn)緩存,因此極大地增強(qiáng)了性能。相反,在Java規(guī)范中還沒有任何關(guān)于緩存的定義。Java開發(fā)人員不得不自己編寫代碼或者使用一個(gè)第三方工具來實(shí)現(xiàn)緩存,比如使用Jakarta Taglibs project。而且,.NET早在去年年初首次發(fā)布的時(shí)候就包含了GUI服務(wù)器端組件,而Java則會(huì)在未來的JavaServer Faces版本中包含這些組件,但這會(huì)是晚于這一技術(shù)一年之后的事了。

許多Java Web技術(shù)還沒有形成標(biāo)準(zhǔn),比如Struts,它是中等及大型Java Web應(yīng)用程序所推薦使用的框架。它的使用非常普遍,但它并未被當(dāng)作一個(gè)標(biāo)準(zhǔn)來采用。所以誰也無法保證這種被普遍使用的技術(shù)不會(huì)被后來的一種新標(biāo)準(zhǔn)所取代。對于首次嘗試選擇一個(gè)服務(wù)器端技術(shù)的人來說,這一點(diǎn)尤其會(huì)使人覺得困惑。而Microsoft卻不同,它支持所有Redmond出臺(tái)的東西。

J2EE有著相當(dāng)多的參與者。這就會(huì)鼓勵(lì)產(chǎn)生更多的創(chuàng)新,而許多努力都是多余的。比如BEAIBM可以研究出導(dǎo)致產(chǎn)生同樣增強(qiáng)性能的相同的R&D,如果他們參與競爭,那么他們一定會(huì)發(fā)展得更快。但這在商業(yè)競爭中并不一定能夠?qū)崿F(xiàn)。甚至在開放式資源的社團(tuán)中的成員之間有時(shí)也會(huì)彼此競爭(包括JBossJonasTomcatJetty)。另一方面,所有的.NET程序都由Microsoft來統(tǒng)一管理,因此也就沒有什么冗余可言。

新的Java規(guī)范是由許多合作企業(yè)和個(gè)人以一種假想的民主形式共同起草的,當(dāng)然這樣使得即使最小的參與者也能夠提出自己的想法,但這樣做通常是一個(gè)耗時(shí)的漫長過程。而Microsoft新技術(shù)則是由一些小組所起草的,他們能夠更快地做出決定。Microsoft已經(jīng)證明了其在實(shí)現(xiàn)新技術(shù)方面的速度是相當(dāng)快的。

的確,按照.NET Framework這樣的發(fā)展速度,恐怕J2EE社團(tuán)的擔(dān)憂還在后頭呢。

且看微軟的.NET和Sun公司的J2EE如何對壘

http://tech.163.com 2006-03-21 20:21:05 來源: sun  網(wǎng)友評(píng)論0 條 論壇

 

導(dǎo) 讀:面對微軟推出的.NET FRAMEWORK,你可能會(huì)有以下疑問:

¨     準(zhǔn)確地講.NET平臺(tái)是什么?

¨     如何將.NET的體系結(jié)構(gòu)和J2EE對比?

¨    .NET的體系結(jié)構(gòu)演繹出的一整套關(guān)于企業(yè)軟件開發(fā)方案中我們能學(xué)到此什么?

在本文中作者將為你解開這些疑問。

廖永康 原文出處:http://java.sun.com/features/2000/11/dotnetvsms.html

即使你沒有專門針對微軟平臺(tái)寫過程序,你可能也會(huì)聽到過微軟的.NET。這是微軟對最近一連串和非視窗事件競爭的回答。如果你讀到過有關(guān)新聞、來自微軟的撰稿、或者通過在MSDN端瀏覽得到的不完整的技術(shù)資料、或者你注意到了微軟專家開發(fā)者會(huì)議(會(huì)上已經(jīng)演示了.NET平臺(tái))的話,你可能至少還有兩大疑問:

¨ 準(zhǔn)確地講.NET平臺(tái)是什么?

¨ 如何將.NET的體系結(jié)構(gòu)和J2EE對比?

如果你再深入一步的話,你可能還有第三個(gè)疑問活躍在你的腦海里:

¨ 從.NET的體系結(jié)構(gòu)演繹出的一整套關(guān)于企業(yè)軟件開發(fā)方案中我們能學(xué)到此什么?

.NET框架是其生命周期的十分早期階段的產(chǎn)品,微軟.NET部門還會(huì)不斷地更深入和仔細(xì)地開發(fā)它,但是無論怎樣,我們已經(jīng)能夠從已有的資料對這些問題作出公正的正確的回答。

它是什么?(.NET是什么?)

現(xiàn)在在眾多的論壇中對.NET的反思,使人不禁聯(lián)想起三個(gè)瞎子摸象的寓言;根據(jù)你的洞察力,可能得到非常不同的結(jié)論:有人認(rèn)為.NET是微軟下一代Visual Studio的開發(fā)環(huán)境;有人認(rèn)為它只是一種新的編程語言(C#);還有人為它是基于XML和SOAP的一種新的數(shù)據(jù)交換和報(bào)文的工作框架。實(shí)際上,.NET包含了這幾部份內(nèi)容,而且還會(huì)更多。

首先,讓我們看一些具體的細(xì)節(jié),瀏覽一下組成.NET平臺(tái)的一系列技術(shù)構(gòu)件:

¨ C#:是一種新寫的描述(書)構(gòu)件的語言,它將C、C++和Java的元素集成起來,并增加一些特點(diǎn)如:元數(shù)據(jù)標(biāo)記、相關(guān)元素的開發(fā)。

¨ “公共語言運(yùn)行時(shí)”:它以中間語言(IL)格式,運(yùn)行字節(jié)代碼,用一種語言寫的代碼和對象只要編譯器是針對這種語言開發(fā)的,顯然能夠編譯成IL運(yùn)行時(shí)。

¨ 一組基本的可從“公共語言運(yùn)行時(shí)”訪問的構(gòu)件(元件),它可提供各種功能(如:連網(wǎng)功能、包容器功能等等)。

¨ ASP.NET:是新的ASP版本,支持將ASP編譯成公共語言運(yùn)行時(shí)功能(所以用任何語言寫的ASP腳本,都能和IL捆綁在一起)。

¨ 視窗格式和Web格式:一種新的可從Visual Studio訪問的UI構(gòu)件框架。(用戶接口=UI)。

¨ ADO:將XML和SLAP用于數(shù)據(jù)交換的新一代ADO數(shù)據(jù)訪問構(gòu)件(元件)。

.NETJ2EE如何比較?

正如我們所能看見的.NET平臺(tái),在其傘型結(jié)構(gòu)下有一個(gè)技術(shù)矩陣(寶塔)。顯然微軟為了抓住視窗平臺(tái)的開發(fā)商,正在將這些技術(shù)變成現(xiàn)有平臺(tái)如J2EE和CORBA的代用品。但是怎樣對它們進(jìn)行逐項(xiàng)比較呢?一種方法就是將.NETJ2EE作成以下對比列表:

.NET J2EE 關(guān)鍵差異

C#編程語言 Java編程語言 C#和Java均來自C和C++,最顯著的特 點(diǎn)(如垃圾收集層次結(jié)構(gòu)的名字空間)在兩個(gè)方面。C#借用了JavaBeans的某些構(gòu)件概念(特性屬性、事件等),并增加了 某些自己的概念(如元數(shù)據(jù)標(biāo)志),但將這些特點(diǎn)合并成不同的語法。Java以Java虛擬機(jī)方式運(yùn)行在任何平臺(tái)上,而C#在可預(yù)見的將來,僅運(yùn)行在視 窗環(huán)境內(nèi)。C#隱含地結(jié)合到IL公共語 言運(yùn)行時(shí)中,(見后),然后按合理的順 序(JIT)運(yùn)行。編譯成的字節(jié)編碼或者整個(gè)編譯成的自然編碼。Java代碼按照J(rèn)ava 虛擬機(jī)字節(jié)代碼方式運(yùn)行,它由VM解 析或JIT編譯,或者整個(gè)編譯成自然代碼。

.NET公共元件(填補(bǔ)“.NET 框架結(jié)構(gòu)的SDK”) Java核心API 高層的.NET元件,包括支持用XML和SOAP 的分布式訪問(見ADO.NET)。

ASP.NET頁面(ASP.NET) Java服務(wù)器頁面(JSP) ASP.NET使用Visual Basic、C# 可能還有一 別的語言作為代碼段。通過公共語言運(yùn)行 時(shí)全部編譯成自然代碼(與此相對應(yīng)<相反> 是象APS那樣,每次都解析執(zhí)行)。JSP使 用Java代碼(段或者JavaBeans參考),或者 編譯成Java字節(jié)代碼(按需或批編譯要根據(jù) JSP實(shí)現(xiàn)系統(tǒng)來決定)。 .NET公共語言運(yùn)行時(shí)允許以多種語言的代碼 (程序)在視窗環(huán)境下使用一組共享的元件。 優(yōu)先于.NET框架的所有元件(公共元件、ASP.NET等)。

IL公共語言運(yùn)行時(shí) Java虛擬機(jī)和CORBA IDL和ORB Java的虛擬機(jī)規(guī)程,允許Java字節(jié)代碼, 在任何平臺(tái)上按JVM方式運(yùn)行。 CORBA允許多種語言的代碼使用一組共享 的對象,在任何帶有ORB的平臺(tái)上運(yùn)行, 并不是緊密地集成到J2EE框架內(nèi)。 同樣的Web元件(如基于JSP的文件)在標(biāo)準(zhǔn) 的Java平臺(tái)上是沒有的,某些專有的元件 只能通過Java IDE等得到。

視窗格式和Web格式 Java的飄移通過MS Visual Studio的IDE而不是在本文 所說的IDE,支持視窗格式和Web格式的 RAD開發(fā),在許多Java的IDE和工具中都 支持“飄移”(Swing)。

ADO.NET和基于SOAP的Web服務(wù) JDBC、EJB、JMS和Java XML庫(XML4J、JA-XP) ADO.NET建立在位于HTTP協(xié)議頂部的XML數(shù)據(jù) 交換的基礎(chǔ)上(指在遠(yuǎn)程數(shù)據(jù)對象和多個(gè)應(yīng) 用程序捆綁之間的數(shù)據(jù)交換)。一般說來, .NET的Web服務(wù)假定了SOAP發(fā)信模型。 而EJB、JDBC等將數(shù)據(jù)交換協(xié)議和開發(fā)者 處理權(quán)分離,不工作在HTTP、KMI/JRMP或 IIOP頂層。

該表的比較只抓住了表面現(xiàn)象,這里再總結(jié)一下.NETJ2EE的比較:

¨ 特點(diǎn):.NETJ2EE都提供同樣優(yōu)秀的特點(diǎn),盡管提供的方法不同。

¨ 可移植性(Portability):.NET的核心只工作Windows環(huán)境下,但從理論上講可以支持以多種語言開發(fā)(只要這些語言的子集/超集已經(jīng)定義 好,并為他們建立了IL編譯器)。也就是說:SOAP的能力允許在其它平臺(tái)上的元件(部件)和.NET元件進(jìn)行數(shù)據(jù)報(bào)文交換。而.NET中的一些元素:象SOAP,其恢復(fù)和查找協(xié)議,作為公共部份提供構(gòu)架的核心部件(IL運(yùn)行時(shí)環(huán)境、ASP.NET內(nèi)部的視窗格式和Web格式元件“合同”等)仍由微軟掌握,微軟只扮演整個(gè).NET開發(fā)環(huán)境和運(yùn)行時(shí)環(huán)境提供者的角色。其實(shí)早就有了來自開發(fā)者協(xié)會(huì)要求微軟公開這些規(guī)程,但是這和微軟的標(biāo)準(zhǔn)經(jīng)驗(yàn)相違背。

另一方面,J2EE只要遵循Java VM(規(guī)則)和一組平臺(tái)需要的服務(wù)就可以在任何平臺(tái)上工作(EJB包容器、JMS服務(wù)等等)。所有這些定義了J2EE平臺(tái)的規(guī)程,都已經(jīng)公開發(fā)表,并提供公眾閱讀。因此,許多供應(yīng)商也提供兼容產(chǎn)品和開發(fā)環(huán)境。但是J2EE是單語言平臺(tái),若用其它語言調(diào)用或訪問對象,可能需要通過CORBA,但是CORBA支持并不是平臺(tái)普遍存在的部分。

巨大的前景:

上述最后的幾點(diǎn)勾畫出.NETJ2EE的某些關(guān)鍵性的差異,以及微軟在這些方面所扮演的角色。微軟現(xiàn)在正在為.NET做兩件值得注意的事:通過將XML和SOAP集成到他們的信息傳輸方案中,從而為以其它編程語言開發(fā)商和非.NET部件打開通向.NET的道路。

通過讓語言元件交叉互動(dòng),.NET正在釋放Perl、Eiffel、Cobol和其它編程器,允許它們扮演微軟“沙盤”的角色。這些語言的愛好者應(yīng)該特別遵守規(guī)則,因?yàn)樗麄冎写蟛糠秩嗽谖④?SUN/OpenSource競爭中感受到約束和定界。因此,只要在他的元件發(fā)信層使用XML和SOAP,微軟就能支持他們將開放性部件加到他們的平臺(tái)上,從而擺脫對專用性的依賴。

淺析J2EE與。NET這兩種技術(shù)的優(yōu)缺點(diǎn)

育龍網(wǎng)校 WWW.CHINA- B.C0M   20090222日  來源: 互聯(lián)網(wǎng)

育龍網(wǎng)核心提示: 袁小蕾摘要文章論述了J2EE與。NET這兩種技術(shù)各自的優(yōu)缺點(diǎn),以及在不同的環(huán)境下,面對不同的客戶要求,應(yīng)采用哪種技術(shù)更合適,對WEB

  

袁小蕾

摘要文章論述了J2EE與。NET這兩種技術(shù)各自的優(yōu)缺點(diǎn),以及在不同的環(huán)境下,面對不同的客戶要求,應(yīng)采用哪種技術(shù)更合適,對WEB程序員在選擇自己的開發(fā)技術(shù)時(shí)有一定的幫助作用。
關(guān)鍵詞WEB;程序員;J2EE;。NET
中圖分類號(hào)TP311文獻(xiàn)標(biāo)識(shí)碼A文章編號(hào)10081151200509004602

收稿日期20050704
作者簡介袁小蕾,女,山東壽光人,山東德州供電公司信通公司助理工程師,研究方向:企業(yè)MIS系統(tǒng)開發(fā)。

一、引言
在一個(gè)歷史時(shí)期,我相信每一種技術(shù),每一個(gè)開發(fā)工具只要存在就有其存在的理由,它不可能一無是處,而是根據(jù)開發(fā)需要去選擇一個(gè)最合適你的技術(shù)、產(chǎn)品。開發(fā)技術(shù)和工具的比較沒有絕對的標(biāo)準(zhǔn)。評(píng)價(jià)一種開發(fā)工具,不僅要看它對設(shè)計(jì)模式、對象結(jié)構(gòu)以及治理的支持情況,更重要的是要針對具體的使用環(huán)境、開發(fā)方法、結(jié)構(gòu)體系、開發(fā)群體以及用戶來評(píng)價(jià)一種工具的適宜程度。
軟件技術(shù)的發(fā)展日新月異,基于各種技術(shù)的WEB應(yīng)用更是琳瑯滿目,網(wǎng)上有關(guān)微軟。NETSUN公司J2EE激戰(zhàn)也一直沒有停止過。
二、J2EE與。NET的含義
J2EEJava2PlatformEnterpriseEdition,是SUN公司為企業(yè)計(jì)算推出的企業(yè)級(jí)Java平臺(tái)。J2EE是一個(gè)平臺(tái)的一系列技術(shù)標(biāo)準(zhǔn)的組合。企業(yè)應(yīng)用程序的開發(fā)必須具備在不同平臺(tái)上的可互通性,而J2EE平臺(tái)推出的目的便是要統(tǒng)一目前的各種技術(shù),使得企業(yè)間網(wǎng)絡(luò)、電子商務(wù)系統(tǒng)的開發(fā),一樣有標(biāo)準(zhǔn)平臺(tái)可遵循。
。NET:微軟將其對于未來計(jì)算的設(shè)想命名為。NETdotnet)。認(rèn)為未來的計(jì)算將是多個(gè)應(yīng)用程序通過Internet以一種分布式的方式運(yùn)行的世界。。NET框架的開發(fā)使得其它平臺(tái)上的應(yīng)用程序也可以訪問服務(wù)提供者提供的服務(wù),例如,。NET就是建立在諸如XML,SOAP之類的開放標(biāo)準(zhǔn)技術(shù)之上的。。NET思想的開發(fā)成果就是。NET框架,它包含通用語言運(yùn)行時(shí),。NET框架和一些高層特性,例如ASP。NET,Windows窗體。
三、J2EE與。NET的技術(shù)歷史
Sun公司在1995年推出Java最初的版本,當(dāng)時(shí)它的主要用途是制作產(chǎn)生動(dòng)態(tài)網(wǎng)頁的Applet。后來,人們發(fā)現(xiàn)Java一次編寫,到處運(yùn)行、面向?qū)ο蟮奶匦浴⒗厥諜C(jī)制和內(nèi)置的安全性非凡適合開發(fā)企業(yè)級(jí)的應(yīng)用系統(tǒng)。于是,一些企業(yè)應(yīng)用開發(fā)商紛紛在Java標(biāo)準(zhǔn)版的基礎(chǔ)上各自擴(kuò)展出許多企業(yè)應(yīng)用API,使基于Java的企業(yè)應(yīng)用迅速增長。但是各企業(yè)系統(tǒng)API之間又不能相互兼容,破壞了Java平臺(tái)的獨(dú)立性。于是,Sun公司聯(lián)合IBM、OracleBEA等大型企業(yè)應(yīng)用系統(tǒng)開發(fā)商于1998年制訂了基于Java組件技術(shù)的企業(yè)應(yīng)用系統(tǒng)開發(fā)規(guī)范,該規(guī)范定義了一個(gè)多層企業(yè)信息系統(tǒng)的標(biāo)準(zhǔn)平臺(tái),用以簡化和規(guī)范企業(yè)應(yīng)用系統(tǒng)的開發(fā)和部署。這一規(guī)范和定義的平臺(tái)就是J2EE。
NET技術(shù)平臺(tái)一推出,就注定了它與J2EE的戰(zhàn)爭。。NET的絕大部分是微軟WindowsDNADis?鄄tributedNetworkArchitecture)的重寫,DNA是微軟以前開發(fā)企業(yè)應(yīng)用程序的平臺(tái)。微軟為什么要推出。NET開發(fā)平臺(tái),主要原因之一就是由于Java向開發(fā)者承諾的硬件和操作系統(tǒng)無關(guān)性,可能導(dǎo)致大量微軟用戶轉(zhuǎn)向其他平臺(tái)。雖然開發(fā)平臺(tái)本身不是微軟利潤的由來,但使用Windows操作系統(tǒng)的程序員是企業(yè)內(nèi)部對微軟產(chǎn)品的主要支持力量,商用軟件開發(fā)者形成了向客戶銷售微軟產(chǎn)品的重要渠道。假如微軟可以讓軟件開發(fā)者在。NET開發(fā)平臺(tái)上編寫應(yīng)用程序,那么就會(huì)有更多的公司購買微軟的其他產(chǎn)品。
從。NETJ2EE這兩個(gè)平臺(tái)的發(fā)展歷程來看,。NET所有組件都可以是Web服務(wù),而Web服務(wù)也僅是一種組件。實(shí)際上,。NET框架提取出微軟組件對象模型(COM)的精華,將它們與松散耦合計(jì)算的精華有機(jī)地結(jié)合在一起,生成了強(qiáng)大、高效的Web組件系統(tǒng)。。NET簡直天生就是為Web服務(wù)預(yù)備的開發(fā)和部署平臺(tái)。相對。NET而言,J2EE是一個(gè)比較舊的技術(shù),最初它是為企業(yè)計(jì)算推出的企業(yè)級(jí)Java平臺(tái),是一組技術(shù)規(guī)范,隨著Web服務(wù)的興起和發(fā)展,J2EE平臺(tái)作為一個(gè)企業(yè)級(jí)應(yīng)用的開發(fā)和部署平臺(tái),無法回避IT業(yè)的重大技術(shù)革命———Web服務(wù)。隨著Web服務(wù)技術(shù)的發(fā)展,J2EE也不斷地引入了對Web服務(wù)的支持。
NET是一個(gè)在J2EE之后出現(xiàn)的平臺(tái),所有的重量級(jí)技術(shù)產(chǎn)品都會(huì)吸收J2EE平臺(tái)的優(yōu)點(diǎn),其中,最重要的一點(diǎn)就是。NET不再完全沿襲微軟以前的技術(shù),從。NET開始,其應(yīng)用不再以本地機(jī)器代碼運(yùn)行,而是編譯成中間代碼,由稱為CLR的虛擬機(jī)來運(yùn)行。CLR有兩個(gè)有趣的特征:
一是它的規(guī)范是開放式的,因而它同樣適用于非視窗平臺(tái)。
二是大多數(shù)語言都可以用來使用。NET框架類,并且都將獲得CLR的支持。這樣,。NET也具備了跨平臺(tái)的可能。不過。NET的跨平臺(tái)特性主要體現(xiàn)在支持多種開發(fā)語言上,C#、VBNET、C++、JScript等都可以被編譯成相同的中間代碼,使用相同的運(yùn)行庫執(zhí)行。
四、J2EE與。NET的應(yīng)用比較
微軟的東西是比較人性化的,有很多功能都從程序員的角度考慮方便了我們的編程。比如說DataGrid等等。而Java就不一樣了,它主張的是一次編譯,到處使用,有很多東西都要根據(jù)你的實(shí)際情況來配置,比起。NET要麻煩的多。所以,要論中小型軟件的開發(fā)速度,Java要遜于。NET。
。NET適合中小型企業(yè),Java適合大型企業(yè)、政府部門,但不是說大型企業(yè)和政府部門就一定要使用Java的東西,為什么大家都感覺Java的東西比。NET安全呢?我想這是由于。NET出自微軟,而且只能在window系列的操作系統(tǒng)上運(yùn)行,window操作系統(tǒng)在桌面PC領(lǐng)域幾乎是壟斷地位,最輕易被關(guān)注和騷擾,所以其安全問題一直在困擾微軟。而Java由于是開源的,大公司、大企業(yè)、政府部門可以根據(jù)自己的需求來改寫,非凡是安全機(jī)制的部分,這就需要一個(gè)合格的系統(tǒng)分析師、若干個(gè)技術(shù)優(yōu)秀的核心程序員,也就使得J2EE產(chǎn)品價(jià)格不菲。
J2EE與。NET之爭實(shí)際上是Linux+J2EE平臺(tái)與Windows+。NET平臺(tái)之爭,Windows下的J2EE肯定不會(huì)好過。NET。安全性上有優(yōu)勢,又可跨平臺(tái),但投資周期長,成本高決定了J2EE會(huì)往大型企業(yè)方向走;而入門快,開發(fā)工具易用,投資周期短,成本低,會(huì)讓。NET統(tǒng)治中小型應(yīng)用。
至于說到跨平臺(tái),這個(gè)無疑是Java的優(yōu)勢,服務(wù)器端應(yīng)用所依靠的硬件平臺(tái)與桌面應(yīng)用的PC不同,如今還是百家爭鳴的情況,因此跨平臺(tái)性是非常重要的,而且現(xiàn)有的應(yīng)用也表明J2EE平臺(tái)已經(jīng)成為了事實(shí)的標(biāo)準(zhǔn),因此,不管他合適與否,我們也只能繼續(xù)使用。
總的來說,。NET的技術(shù)、速度、中文幫助、開發(fā)環(huán)境都要優(yōu)于Java,但Java憑著跨平臺(tái)這點(diǎn)優(yōu)勢就一直能和。NET競爭。究竟。NET才推出幾年,肯定沒有J2EE成熟,但年輕的技術(shù)肯定要比年老的技術(shù)先進(jìn)。
J2EE已經(jīng)是一個(gè)成熟的、成功的企業(yè)級(jí)應(yīng)用解決方案,擁有大量的客戶,已經(jīng)實(shí)施了J2EE的企業(yè)不太可能在Web服務(wù)的時(shí)代全面否定J2EE而去接受。NET。在Java領(lǐng)域中,無論是BorlandJBuilder6,還是SunForteforJava,或是IBMWebShpereStu?鄄dioApplicationDeveloper、VisualAgeforJava都無法達(dá)到VS。NET的開發(fā)效率。開發(fā)工具是。NET的一大優(yōu)勢,同時(shí)。NET平臺(tái)在對Web服務(wù)規(guī)范的支持上也只有IBMJ2EE平臺(tái)能夠與之相比。
五、我們該如何抉擇
。NET由微軟在支持。JavaIBMBEA和一大批開源技術(shù)人員在支持。。NET開發(fā)入門快,學(xué)習(xí)曲線低,人員成本低,假如用于快速開發(fā)基于Windows的應(yīng)用最好不過。唯一的問題是受限于Windows。在大型企業(yè)中,小型機(jī)以上的操作系統(tǒng)基本上沒有Widows的份。J2EE的學(xué)習(xí)是個(gè)積累的過程,架構(gòu)很多,難于學(xué)習(xí),這也是Java技術(shù)人員薪水高的原因。
是微軟讓我們從繁瑣的代碼中解放出來,可是很多人不這么看待,他們反感微軟的產(chǎn)品,認(rèn)為這樣子連普通人都可以寫代碼,就沒意思了。有人說,選擇。NET就是選擇被微軟牽著鼻子走,沒有自由,沒有前途,選擇Java才是真理。使用Microsoft的。NET開發(fā)工具磨滅了人的創(chuàng)造性,降低了技術(shù)人員理解語言底層知識(shí)的熱情,太輕易了,拖幾個(gè)控件就能實(shí)現(xiàn)的東西誰也沒必要去究其根本,久而久之,就會(huì)讓人的技能平庸化,而作為技術(shù)人員自己的技術(shù)一旦變得平庸,變得可替代,也就標(biāo)志著可以被淘汰。
開源軟件的優(yōu)點(diǎn),在于它能讓我們接觸底層開發(fā)技術(shù),但有一個(gè)前提,就是必須把握相應(yīng)的開發(fā)技術(shù)。也就是說,只有把握了Linux下的開發(fā)技術(shù),才真正獲得了技術(shù)上的自由。
我個(gè)人認(rèn)為,J2EE是在把問題做復(fù)雜。NET是在把編程簡單化,我相信未來是越來越簡單,技術(shù)工具的發(fā)展應(yīng)該堅(jiān)持簡單易用原則,所以,我更欣賞。NET。還有,微軟的。NET有多得拿不完的教學(xué)光盤,讀不完的文件,看不完的MicrosoftPress出版品……,都是中文的。而選擇J2EE你就要做好預(yù)備,查看長篇大論的英文資料。
其實(shí)說到底,選擇J2EE還是。NET,一方面要看開發(fā)的實(shí)際需要,另一方面就是看微軟是否繼續(xù)長期壟斷操作系統(tǒng)。J2EE和。NET都是好東西,要是能同時(shí)選擇當(dāng)然最好,學(xué)習(xí)J2EE是鍛煉程序員內(nèi)功的好方法,而作為新生事物的。NET也會(huì)大有前途。但不管怎么選擇,踏踏實(shí)實(shí)學(xué)一些基礎(chǔ)的東西還是最重要的,把握其本質(zhì),理解其思想是程序員成功的關(guān)鍵。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
生活服務(wù)
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服