麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Java不該轉(zhuǎn)換至.Net的五大理由

2019-11-18 13:29:21
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  .Net Framework號(hào)稱(chēng)是分布式運(yùn)算產(chǎn)業(yè)的下一波重點(diǎn)。
  
  由于是全新設(shè)計(jì),微軟這項(xiàng)技術(shù)在部分領(lǐng)域上顯然有明顯進(jìn)步,如xml整合、錯(cuò)誤處理、組件處理,和可重復(fù)使用的架構(gòu)等方面。Web開(kāi)發(fā)的未來(lái)十分明確:更快的開(kāi)發(fā)、程序可少寫(xiě)一些、穩(wěn)定性會(huì)更好。
  但是假如你目前的應(yīng)用軟件是用java EJB(EnterPRise JavaBeans)寫(xiě)出來(lái)的呢?將這些軟件移植到微軟新平臺(tái)值得嗎?.Net與Java EJB哪一個(gè)比較優(yōu)秀的話題未來(lái)一定還有得吵上一陣子,但這類(lèi)平臺(tái)轉(zhuǎn)移的困難度卻比較輕易猜測(cè)。即使你有非常迫切的技術(shù)或商業(yè)原因必須作轉(zhuǎn)換,以下還是有五大理由奉勸你不要輕言將Java或J2EE程序轉(zhuǎn)到.Net平臺(tái)上。
  
  1. CLR不支持Java
  轉(zhuǎn)移至.Net的第一個(gè)障礙就是它所支持語(yǔ)言。.Net架構(gòu)是靠著Common Language Runtime (CLR)來(lái)實(shí)現(xiàn)多語(yǔ)言的兼容性,但是這個(gè)兼容性目前只限于C#、C++、VB和(即將加入的)J# 。而一點(diǎn)也不令人意外的是,Java并非CLR所支持的程序語(yǔ)言。
  要將Java應(yīng)用程序轉(zhuǎn)移至.Net但又無(wú)須以CLR支持的語(yǔ)言重新撰寫(xiě)程序的確是有可能,只需透過(guò)Java COM轉(zhuǎn)換程序或Web services(網(wǎng)絡(luò)服務(wù))即可。然而,Java COM卻需依靠第三方軟件才能從Java程序代碼建立COM DLLs。但這方面在爾后的除錯(cuò)過(guò)程會(huì)相當(dāng)困難,同時(shí)也增加了環(huán)境的復(fù)雜度,因此要處理這類(lèi)異質(zhì)應(yīng)用開(kāi)發(fā)必須非常小心,甚至建議不要采用。
  另一種策略就是將Java程序代碼轉(zhuǎn)換為C#程序代碼。理論上,你可以利用自動(dòng)化程序?qū)ava碼直接轉(zhuǎn)成C# (與J#)語(yǔ)言。例如,ArtinSoft公司的Java Language Conversion Assistant Enterprise Edition (JLCA EE)號(hào)稱(chēng)可將Java轉(zhuǎn)成C#語(yǔ)言,正確率高達(dá)99%,但這樣的產(chǎn)品還沒(méi)有經(jīng)過(guò)市場(chǎng)驗(yàn)證,且經(jīng)驗(yàn)法則也會(huì)告訴你最好不要信任自動(dòng)轉(zhuǎn)碼機(jī)制。不管是使用自動(dòng)轉(zhuǎn)碼方式還是透過(guò)手動(dòng),語(yǔ)言轉(zhuǎn)換總會(huì)涉及架構(gòu)轉(zhuǎn)變的問(wèn)題。當(dāng)你將Java程序改成VB、C++、C#或J# 后,程序中也將會(huì)有許多地方必須重新調(diào)整(依據(jù)應(yīng)用程序的設(shè)置規(guī)格而定)。
  服務(wù)器控制太麻煩
  2. IIS不支持jsp
  若你認(rèn)為只要將程序語(yǔ)言從Java改成C#就大功告成,那就錯(cuò)了,.Net還會(huì)要求連同呈現(xiàn)(presentation)語(yǔ)言也要一起轉(zhuǎn)換,IIS并不支持JSP。從JSP轉(zhuǎn)換成asp.net絕對(duì)是一項(xiàng)大工程,且你必須完全重寫(xiě)presentation層不可。另外,許多重要的架構(gòu)模式在ASP.Net下也不支持,例如透過(guò)卷標(biāo)庫(kù)的程序代碼再利用即是一例。卷標(biāo)庫(kù)必須轉(zhuǎn)換成服務(wù)器控制或是服務(wù)器端的includes(ssi)。有意思的是,支持卷標(biāo)庫(kù)的Java classes在概念上正好與.Net的程序代碼后置(code-behind)classes相當(dāng),但實(shí)際轉(zhuǎn)換還是需要花上許多功夫。
  
  
  3.服務(wù)器控制需要重新設(shè)計(jì)
  之前提過(guò),在對(duì).Net的程序代碼進(jìn)行語(yǔ)言轉(zhuǎn)換時(shí),新的架構(gòu)需求一定也會(huì)跟著浮現(xiàn)。這在計(jì)畫(huà).Net服務(wù)器控件(server controls)的實(shí)作時(shí)更是明顯。ASP.Net服務(wù)器控件是.Net的最大優(yōu)勢(shì)之一。開(kāi)發(fā)人員可利用預(yù)先建立的服務(wù)器組件,降低重復(fù)性的程序撰寫(xiě),且可輕松透過(guò)對(duì)象存取各項(xiàng)功能。若希望轉(zhuǎn)換成.Net平臺(tái)后也能使用服務(wù)器控件的好處,你勢(shì)必要移除許多客制化的呈現(xiàn)層、應(yīng)用程序與數(shù)據(jù)庫(kù)程序代碼,并全部改成服務(wù)器控件以及所需的數(shù)據(jù)庫(kù)邏輯。
  若你是從既有的微軟應(yīng)用程序作升級(jí),此一程序代碼的抽取(extraction)并不困難,非凡是之前你有良好的程序撰寫(xiě)習(xí)慣的話(分割明朗,條理分明)。然而若是從Java EJB程序作升級(jí)時(shí),服務(wù)器控件則會(huì)動(dòng)到非常深入的垂直轉(zhuǎn)換,同時(shí)將影響到資料、應(yīng)用程序、以及程序的呈現(xiàn)層。所有之前儲(chǔ)存的程序、Java對(duì)象,和JSP文件都必須轉(zhuǎn)換成微軟支持的標(biāo)準(zhǔn),同時(shí)還需經(jīng)過(guò)修改才能支持Server Control。
  例如,DataGrid對(duì)象可復(fù)雜的表格功能來(lái)呈現(xiàn)資料記錄。部分可由使用者自行控制的選項(xiàng)包括行列選擇、頭標(biāo)樣式以及呼叫(paging)功能等。DataGrid對(duì)象比任何客制化或是專(zhuān)屬程序代碼的功能都更強(qiáng)大、維護(hù)也更輕易。但若Java應(yīng)用程序轉(zhuǎn)換后(假設(shè)你要從Oracle資料層轉(zhuǎn)往SQL Server),要利用此一控制選項(xiàng)的話,你需要:
  ‧將P/L SQL重寫(xiě)成Transact SQL,并將查詢(xún)重新格式化以支持DataGrid。
  ‧將Java程序代碼改成.Net所支持的語(yǔ)言以便取出SQL或預(yù)存程序,并支持DataGrid的事件模型。
  ‧移除支持現(xiàn)有客制化的呈現(xiàn)對(duì)象,并將JSP模板重寫(xiě)成ASP.Net。
  從頭至尾 困難重重
  4.不支持CMP容器治理永續(xù)性
  假設(shè)現(xiàn)有的Java程序是由非SQL Server數(shù)據(jù)庫(kù)所支持,那么移植應(yīng)用程序之后,你還得同時(shí)將數(shù)據(jù)庫(kù)轉(zhuǎn)移至SQL Server上,或者安裝驅(qū)動(dòng)程序好讓.Net應(yīng)用程序能經(jīng)由非SQL Server數(shù)據(jù)庫(kù)保持資料持續(xù)性。不管哪一種情況,你都必須將JDBC連接類(lèi)改寫(xiě)成ADO.Net,并將Java ResultSets移植到ADO.Net DataSets。這項(xiàng)工作本身并不非凡困難,DataSets和ResultSets具有相似的機(jī)制,除了實(shí)作規(guī)格外并不需要?jiǎng)佑玫郊軜?gòu)重建。
  不過(guò)當(dāng)開(kāi)發(fā)團(tuán)隊(duì)將對(duì)象永續(xù)(object persistence)從Java轉(zhuǎn)換到.Net時(shí),問(wèn)題就會(huì)開(kāi)始出現(xiàn)。.Net并不支持Container Managed Persistence (CMP:容器治理永續(xù)性),也沒(méi)有類(lèi)似的機(jī)制。假如你的程序是靠著CMP來(lái)保持對(duì)象的永續(xù)性,你就必須以?xún)?nèi)嵌式邏輯重寫(xiě)撰寫(xiě)對(duì)象類(lèi)別才能進(jìn)行資料擷取與加載。
  5.不同的session處理實(shí)作
  EJB標(biāo)準(zhǔn)并不指定session資料的處理,所以EJB session處理實(shí)作變成完全與應(yīng)用服務(wù)器有關(guān)。由于在不同的session處理實(shí)作攸關(guān)性能表現(xiàn)、擴(kuò)充性與網(wǎng)絡(luò)設(shè)計(jì),因此你必須對(duì)應(yīng)用軟件中的session-handling機(jī)制細(xì)節(jié)有完全的了解。
  在.Net之中,微軟則采用一種分布式session模型,它通過(guò)Microsoft SQL Server存儲(chǔ)應(yīng)用軟件的狀態(tài),使得session資料同時(shí)分配給同一網(wǎng)絡(luò)機(jī)房中的多個(gè)應(yīng)用軟件服務(wù)器。由于.Net依靠SQL Server中的內(nèi)嵌功能來(lái)做session,因此使用Oracle或是其它非SQL服務(wù)器數(shù)據(jù)庫(kù)的不同類(lèi)型應(yīng)用軟件,都必須建置一個(gè)SQL Server instance只為了當(dāng)作分布式sessions之用。此外,由于大量的session資料將會(huì)降低系統(tǒng)總體性能,因此session儲(chǔ)存也必須謹(jǐn)慎使用。
  
  
  轉(zhuǎn)移難度高 成效頂多平手
  .Net Framework代表著微軟進(jìn)軍高可用度、企業(yè)級(jí)應(yīng)用程序領(lǐng)域的最新成果。以往在IIS、Visual Studio、VB和SQL Server中所缺乏的功能都可在新平臺(tái)上找得到。微軟的開(kāi)發(fā)者和用戶(hù)現(xiàn)在終于不會(huì)矮人一截,不論在擴(kuò)充性、沿展性、安全與性能上都可與業(yè)界對(duì)手平起平坐。
  要害問(wèn)題是,.Net與EJB解決方案供貨商之間頂多打成平手,沒(méi)有任何跡象顯示.Net平臺(tái)優(yōu)于WebSphere、WebLogic、或任何其它EJB應(yīng)用軟件服務(wù)器。對(duì)于既有的IIS/ASP解決方案,轉(zhuǎn)移平臺(tái)的效益再也明顯不過(guò)。而對(duì)于從頭開(kāi)始的新計(jì)畫(huà),.Net也可算是架構(gòu)平臺(tái)的一時(shí)之選(端視員工技能與企業(yè)偏好)。但是對(duì)于既有Java EJB應(yīng)用軟件而言,一動(dòng)不如一靜,因?yàn)榧词鼓阈羷诘剞D(zhuǎn)換了老半天,到頭來(lái)發(fā)現(xiàn)兩者其實(shí)并無(wú)差異。
  
  
  Godfrey Baker原著

上一篇:fsck的詳細(xì)用法

下一篇:管窺Commons

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 91在线精品亚洲一区二区 | 国产做爰 | 国产精品视频成人 | 最近国产中文字幕 | 国产在线观看一区二区三区 | 国产一区二区视频精品 | 噜噜在线视频 | 欧美成人免费在线视频 | 日韩黄色成人 | 久草在线资源观看 | 成人 在线 | 国产精品色综合 | 爱逼av| 国产精品爱久久久久久久 | 广州毛片| 黄色片网站免费在线观看 | 欧美一级电影网站 | 成人免费网站在线观看视频 | 成人毛片免费看 | 一本到免费视频 | 国产午夜精品久久久久 | 精精国产xxxx视频在线播放7 | 国产精品一区2区3区 | 亚洲精品一区国产精品丝瓜 | 毛片免费在线 | 91久久久久久亚洲精品禁果 | 99精品视频在线导航 | 成人三级在线播放 | 亚洲视频在线视频 | 免费看欧美一级特黄a大片 久久免费视频一区二区三区 | 中文在线观看视频 | 欧美毛片 | 免费激情网址 | 欧美日韩在线视频一区 | 天天色宗合 | 精品中文字幕久久久久四十五十骆 | 特级黄毛片 | 亚洲一区二区三区视频免费 | 久久羞羞 | 亚洲国产综合在线观看 | 欧美黄色免费视频 |