成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

真知灼見:.NET和J2EE的競(jìng)爭(zhēng)與共榮

開發(fā) 后端
本文作者身為一位既開發(fā)過.NET又開發(fā)過J2EE的工程師,對(duì).NET和J2EE之間互相借鑒之處進(jìn)行了一番分析。

在.NET的世界里,最受關(guān)注的應(yīng)該是控件的開發(fā)了,一個(gè)設(shè)計(jì)良好,功能強(qiáng)大的控件對(duì)于提高開發(fā)效率無疑是極好的助推器。很多.NET的開發(fā)人員都將精力花在設(shè)計(jì)控件上,.NET就像一個(gè)聚寶盆一樣,不斷匯聚開發(fā)人員智慧結(jié)晶。

寫這篇Post源于我既做過.NET開發(fā)又做過J2EE開發(fā)的經(jīng)歷。在這樣的轉(zhuǎn)變過程中,我對(duì)單一平臺(tái)開發(fā)所帶來的思維局限性有了很多清晰卻零散的想法。在看了振河兄的頁面間傳遞變量的方法及使用范圍的討論之后,我更能體會(huì)到在不同的平臺(tái)進(jìn)行開發(fā),思維方式會(huì)是如此之不同,原來那些零散的想法也隨之不斷在腦海中涌現(xiàn),讓我有了寫下這篇Post的沖動(dòng)。其實(shí)我一直都在宣揚(yáng)一種觀點(diǎn):技術(shù)之間是相通的,精于觸類旁通,善于聯(lián)想是我們程序員應(yīng)有的優(yōu)勢(shì)。我們?cè)趯W?NET技術(shù)的時(shí)候,不妨在工作間隙休息的時(shí)候看看.NET外面的世界。

提到.NET和J2EE,一般都會(huì)想到它們之間兵戎相見,水火不容的關(guān)系,畢竟兩者都在努力地去虜獲程序員的青睞,占領(lǐng)更多的市場(chǎng)份額。我無意去鼓吹.NET是如何如何之強(qiáng)大,J2EE是如何如何的成熟,也無意去探究NHibernate,Spring.NET等等Project的起源,只想從一個(gè)程序員的角度去看待兩者在互相競(jìng)爭(zhēng)的過程當(dāng)中到底相互借鑒了什么,同時(shí)探討一下同時(shí)了解兩個(gè)領(lǐng)域知識(shí)的必要性。好,讓我們言歸正傳。

還記得2003年初,我到了DELL公司實(shí)習(xí),所承擔(dān)的工作任務(wù)就是建立一個(gè)Web Application供多個(gè)有密切聯(lián)系的部門使用,以提高部門間的協(xié)作程度。在選擇用什么技術(shù)來做這個(gè)Web Application的時(shí)候,我放棄了比較熟悉的ASP,進(jìn)而選擇了ASP.NET。正是做這個(gè)Project,我跟ASP.NET乃至.NET結(jié)下了不解之緣。當(dāng)時(shí)***次接觸到ASP.NET,***個(gè)感覺就是,它比ASP好多了,再也不用像寫ASP那樣在HTML嵌套著一堆堆的Scriptlet,動(dòng)態(tài)內(nèi)容的呈現(xiàn)都包含在一個(gè)個(gè)方法中,如Page.OnInit()和Page.OnLoad()等等,這些方法讓我看到Client端JS方法的影子。

在開發(fā)ASP.NET頁面的過程中,我需要做的就是在頁面中引入不同的Web Control或者是HTML Control,這些Controls與HTML標(biāo)簽是何等的類似,除了它有ASP的prefix和那時(shí)看起來如Magic一般的runat="server"。這樣的相似性讓熟悉HTML和JS的我很快掌握了ASP.NET的基本應(yīng)用,而我也以極高的效率完成了公司分配給我的任務(wù),盡管我對(duì)諸如Request、Response、Session和Application這樣的對(duì)象并不是十分了解。ASP.NET所帶來的進(jìn)步是革命性的,難怪有朋友認(rèn)為ASP.NET是.NET家族中最為成功的產(chǎn)品了。我當(dāng)時(shí)只是拿ASP.NET來跟ASP作對(duì)比,其優(yōu)越性自然顯露無遺,尤其是在控件設(shè)計(jì)方面的優(yōu)勢(shì)。

事實(shí)上直到后來進(jìn)入J2EE的開發(fā)領(lǐng)域,我依然對(duì)ASP.NET的開發(fā)方式贊賞有加。Microsoft在技術(shù)的創(chuàng)新上一直秉持削弱領(lǐng)域開發(fā)特性的原則,讓開發(fā)人員能夠在不同的開發(fā)領(lǐng)域中都可以輕松上手,游刃有余。ASP.NET的出現(xiàn)帶來了WebForm,而在桌面程序開發(fā)中則有WinForm,兩者相通的地方隨處可見,這讓原有的桌面程序開發(fā)人員可以平滑的過渡到Web Application開發(fā)中來;ASP.NET對(duì)于控件在設(shè)計(jì)以及使用上的支持堪稱***,也為網(wǎng)頁設(shè)計(jì)人員進(jìn)入ASP.NET開發(fā)領(lǐng)域掃除了不少的障礙。反觀J2EE領(lǐng)域,做Swing開發(fā)的人員,如果要學(xué)習(xí)Web的開發(fā),原有的知識(shí)幾乎無用武之地了。

在這個(gè)人氣就是財(cái)富的年代,在一定層面上求同存異,讓開發(fā)人員能夠一通百通,無疑是一個(gè)十分明智的做法。J2EE領(lǐng)域也開始意識(shí)到了這一點(diǎn),將Swing概念應(yīng)用到Web開發(fā)的Wicket Framwork的發(fā)布著實(shí)是一個(gè)極大的進(jìn)步啊。J2EE在降低Web開發(fā)的難度,吸引入門級(jí)開發(fā)人員方面需要向.NET好好請(qǐng)教一番了。

好,個(gè)人經(jīng)歷接著說。2003年底,我進(jìn)入了一家軟件公司從事J2EE的開發(fā)工作。當(dāng)時(shí)公司技術(shù)部門負(fù)責(zé)人在面試我的時(shí)候提到了我缺乏J2EE的開發(fā)經(jīng)驗(yàn)的問題,我信心滿滿的告訴他,我做過.NET的項(xiàng)目,而.NET和J2EE都是專注在企業(yè)級(jí)應(yīng)用上的,因此肯定會(huì)很快上手,不會(huì)有什么問題。然而后來的工作證明了平臺(tái)之間的差異性是很大的,從.NET過渡到J2EE并不是一件輕松的事情。沒有了熟悉的Web Control,取而代之的是簡(jiǎn)陋的Tag Library;沒有了簡(jiǎn)單易用的Event-Driven的方法,呈現(xiàn)眼前的是doGet、doPost、doHead和service這樣看似丑陋的面孔。

蛻變的過程是痛苦的,但是蛻變帶來了進(jìn)化。開發(fā)方式的改變讓我可以從一個(gè)更加深入的層面去看待Web開發(fā),而我開始重新認(rèn)識(shí)Web Application。Web開發(fā)的復(fù)雜性在很大程度上源于Http是一個(gè)無狀態(tài)的連接協(xié)議,Web Server不管你是Michael,還是Jordon,只要你在瀏覽器上使用了相同的URL,就會(huì)得到相同的資源。在這里,你必須清楚URL到底是什么的縮寫。也許你會(huì)站出來反駁我剛才所說的結(jié)論,但是這種情況在只有靜態(tài)HTML網(wǎng)頁的年代是絕對(duì)正確的。隨著時(shí)代的發(fā)展,資源已經(jīng)不再局限于靜態(tài)的HTML網(wǎng)頁,隨之出現(xiàn)了所謂的動(dòng)態(tài)網(wǎng)頁。這里的動(dòng)態(tài)不是指充滿Flash動(dòng)畫的網(wǎng)頁,而是指網(wǎng)頁的內(nèi)容會(huì)根據(jù)不同的Request而發(fā)生變化。雖然Web的內(nèi)容開始個(gè)性化了,但是仍然沒有脫離Client發(fā)送Request,Server返回Response這樣的模式。

由于Http是一個(gè)無狀態(tài)的連接協(xié)議,為了能夠識(shí)別用戶訪問同一資源的狀態(tài),在J2EE的世界里,我們就得從Request、Response和Session這樣的對(duì)象入手,控制這些對(duì)象的Life Cycle。因此,我們哪怕要進(jìn)行最為簡(jiǎn)單的Web應(yīng)用程序,都必須對(duì)Request、Response和Session這樣的對(duì)象有充分的了解。關(guān)注這些基本的對(duì)象,讓我們對(duì)于應(yīng)用程序的Flow有更為準(zhǔn)確的把握,能夠更好地進(jìn)行模塊地劃分,便于開發(fā)人員進(jìn)行協(xié)作。

然而在.NET的世界里,對(duì)Request和Session這樣的對(duì)象關(guān)注遠(yuǎn)不如對(duì)Page的關(guān)注,從振河兄的Post就可見一斑了。ASP.NET開發(fā)降低了開發(fā)難度,卻在一定程度上阻礙了開發(fā)人員對(duì)Web Application的整體把握,正如春魚兄的Feedback中提到的,過分糾纏頁面之間關(guān)系,“不利于系統(tǒng)整體架構(gòu)的良好設(shè)計(jì)”。J2EE的應(yīng)用程序可以讓程序員在Web Application的整體架構(gòu)上有一個(gè)很好的體現(xiàn),.NET還是得好好努力啊!建議.NET的程序員能夠嘗試著利用J2EE的技術(shù)來開發(fā)一個(gè)簡(jiǎn)單的Web Application,我相信這樣的一個(gè)過程會(huì)讓你對(duì)Web開發(fā)有進(jìn)一步的認(rèn)識(shí)。

進(jìn)入了J2EE的領(lǐng)域,除了開發(fā)方式變了,buzz words也跟著改變了。兩個(gè)使用頻率極高的詞匯充斥著每天的工作,一個(gè)是MVC,另一個(gè)則是Framework。我感慨于Pattern在J2EE中使用的廣泛性,感慨于應(yīng)用實(shí)現(xiàn)了MVC模式的Framework竟然可以讓龐大的團(tuán)隊(duì)協(xié)同開發(fā)一個(gè)Project。那時(shí)的我開始相信Pattern的廣泛應(yīng)用給軟件開發(fā)帶來的變化是巨大而深遠(yuǎn)的,也開始閱讀《Core J2EE Patterns》并從中獲益。而在.NET的世界里,對(duì)Pattern的重視則遠(yuǎn)不如J2EE,盡管這樣的情況在改變。說到了MVC,不得不對(duì)這樣一個(gè)份量很重的詞匯做些陳述了。

JSP的發(fā)展經(jīng)歷了兩個(gè)階段:JSP Model1和JSP Model2。在Model1中是JSP和JavaBean的結(jié)合,在一定程度上實(shí)現(xiàn)了MVC,但是Model與Control之間的耦合仍然普遍存在;而Model2則真正實(shí)現(xiàn)了MVC:JSP作為Presentation層,負(fù)責(zé)數(shù)據(jù)的顯示;Servlet充當(dāng)著一個(gè)Request Dispatcher的角色,將Request分發(fā)至不同的處理Business的模塊中,它就是一個(gè)指揮官,扛著Controller這面大旗;而VO則是一個(gè)數(shù)據(jù)的載體,是MVC三角中的Model。

MVC的概念是進(jìn)入J2EE開發(fā)領(lǐng)域必備的,從你做***個(gè)簡(jiǎn)單的應(yīng)用程序開始,從你看***篇關(guān)于J2EE開發(fā)的文章開始,而豐富的開源MVC Framework也成為了我們學(xué)習(xí)MVC Pattern的良好教材。對(duì)J2EE有了初步的認(rèn)識(shí)之后,就可以選擇一些優(yōu)秀的MVC Framework來研究了,例如WebWork和Spring。這對(duì)于學(xué)習(xí)系統(tǒng)整體架構(gòu)設(shè)計(jì)方面是大有裨益的。

也許物極必反真的是一條不變的真理,J2EE領(lǐng)域中對(duì)于開發(fā)Framework的追求可謂之瘋狂,大家朝這里看:Wicket - Introduction。你會(huì)發(fā)現(xiàn)可以用來開發(fā)Web Application的Framework竟然達(dá)到了55個(gè),并且還在日益增加。事實(shí)上J2EE開發(fā)的軟肋不在于Control這個(gè)層面,而是在View。許多天才的精力都耗在重復(fù)制造輪子上,卻沒有想辦法去完善一個(gè)或者多個(gè)Framework,這不得不讓人感到痛心啊!在這一點(diǎn),J2EE是不是得向.NET好好學(xué)習(xí)一下呢?在.NET的世界里,最受關(guān)注的應(yīng)該是控件的開發(fā)了,一個(gè)設(shè)計(jì)良好,功能強(qiáng)大的控件對(duì)于提高開發(fā)效率無疑是極好的助推器。

很多.NET的開發(fā)人員都將精力花在設(shè)計(jì)控件上,.NET就像一個(gè)聚寶盆一樣,不斷匯聚開發(fā)人員智慧結(jié)晶。在J2EE的世界里,為了減少這種資源浪費(fèi)的情況,Wicket Framework的出現(xiàn)了。它強(qiáng)調(diào)組件設(shè)計(jì)和組件重用,讓開發(fā)人員集中精力于組件的開發(fā),從而增強(qiáng)Framework的功能已經(jīng)易用性。但愿,Wicket Framework能夠?yàn)镴2EE世界帶來少許的改變吧!

說著說著,真的有點(diǎn)野馬脫韁的感覺了。不知道說了半天,大家是否明白我真正的用意呢? 在這個(gè)技術(shù)如此Open的年代,.NET的程序員應(yīng)該去了解J2EE,反之亦然。我想,相互學(xué)習(xí),共同進(jìn)步這句再普通不過的話可以概括這羅羅嗦嗦的數(shù)千字吧。

【編輯推薦】

  1. J2EE學(xué)習(xí)中一些值得研究的開源項(xiàng)目
  2. J2EE常見問題 J2EE平臺(tái)的特征與優(yōu)點(diǎn)
  3. ASP.NET在線學(xué)習(xí)資源總匯
  4. ASP.NET編程軟件相關(guān)技巧10則
  5. 對(duì)J2EE開發(fā)中常用的開源項(xiàng)目介紹

責(zé)任編輯:yangsai 來源: IT專家網(wǎng)
相關(guān)推薦

2017-05-17 08:52:07

開源數(shù)據(jù)驅(qū)動(dòng)

2009-06-10 14:10:23

J2EE學(xué)習(xí)J2EE是什么

2009-06-22 17:34:40

J2EE架構(gòu)

2009-06-10 13:37:06

J2EE可伸縮性J2EE靈活性J2EE維護(hù)

2009-06-23 08:06:46

J2EE體系架構(gòu)J2EE模型J2EE設(shè)計(jì)模式

2009-06-23 16:48:26

J2EE常見問題J2EE平臺(tái)

2009-06-19 17:03:44

J2EE學(xué)習(xí)

2009-06-11 17:06:11

J2EE歷史Java EE概述

2009-06-08 21:34:09

J2EEJ2SEJ2ME

2024-10-10 08:51:15

2009-06-10 16:25:43

J2EE架構(gòu)架構(gòu)

2009-06-22 17:05:41

Java EEJava企業(yè)應(yīng)用

2009-06-10 13:30:32

J2EE四層模型客戶層Web層

2009-06-18 16:13:14

J2EE開發(fā)

2009-06-22 16:21:02

J2EE線程

2009-06-11 17:11:07

J2EE設(shè)計(jì)模式工廠模式

2009-06-18 15:54:57

J2EE下使用JNDI

2009-06-23 08:12:48

J2EE調(diào)用存儲(chǔ)過程

2009-06-22 11:50:00

J2EE Web應(yīng)用快速開發(fā)

2009-06-10 13:19:21

J2EE核心APIJ2EE核心組件
點(diǎn)贊
收藏

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

主站蜘蛛池模板: caoporn国产精品免费公开 | 久久久久久久av | 中文字幕在线一区二区三区 | 欧美日韩综合一区 | 久久精品视频在线观看 | 欧美爱爱视频网站 | 一级a爱片性色毛片免费 | 欧美日日 | 超碰3| 日韩一区二区三区在线播放 | 欧美激情综合网 | 在线播放中文 | 免费一级网站 | 日韩av成人在线 | 欧美一级毛片免费观看 | 啪啪免费网 | 色噜噜亚洲男人的天堂 | 欧美一区二区在线免费观看 | 欧美综合在线观看 | 男女羞羞视频在线 | 国产夜恋视频在线观看 | 欧美日韩一 | 中文字幕av网站 | 91色综合 | 中文字幕视频在线 | av在线黄| 久久精品国产精品青草 | 18成人在线观看 | 久久免费香蕉视频 | 一区二区国产精品 | 久久久久一区二区三区 | 最新中文在线视频 | 国产精品日韩一区二区 | 九色视频网站 | 成人在线| 91久久久久 | 色视频成人在线观看免 | 成年人黄色一级片 | 日韩成人免费av | 国产精品欧美精品 | 欧美精三区欧美精三区 |