|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Java欺骗了我们那么多年,如今的多核时代,我认为它气数已尽!j2ee[媒介]写这篇Post源于我既做过.NET开辟又做过J2EE开辟的履历。在如许的变化过程当中,我对单一平台开辟所带来的头脑范围性有了良多明晰却零星的设法。在看了振河兄的页面间传送变量的办法及利用局限的会商以后,我更能体味到在分歧的平台举行开辟,头脑体例会是云云之分歧,本来那些零星的设法也随之不休在脑海中出现,让我有了写下这篇Post的感动。实在我一向都在宣传一种概念:手艺之间是相通的,精于举一反三,擅长遐想是我们程序员应有的上风。我们在专注.NET手艺的时分,无妨在事情间隙歇息的时分看看.NET表面的天下。
提到.NET和J2EE,一样平常城市想到它们之间兵戎相见,冰炭不洽的干系,究竟二者都在勉力地往虏获程序员的喜爱,占据更多的市场份额。我偶然往宣传.NET是怎样怎样之壮大,J2EE是怎样怎样的成熟,也偶然往探求NHibernate,Spring.NET等等Project的劈头,只想从一个程序员的角度往对待二者在相互合作的历程傍边究竟互相自创了甚么,同时切磋一下同时懂得两个范畴常识的需要性。好,让我们言回正传。
还记得2003岁首,我到了DELL公司练习,所承当的事情义务就是创建一个WebApplication供多个有亲切接洽的部门利用,以进步部门间的合作水平。在选择用甚么手艺来做这个WebApplication的时分,我保持了对照熟习的ASP,进而选择了ASP.NET。恰是做这个Project,我跟ASP.NET以致.NET结下了不解之缘。事先第一次打仗到ASP.NET,第一个感到就是,它比ASP很多多少了,不再用像写ASP那样在HTML嵌套着一堆堆的Scriptlet,静态内容的出现都包括在一个个办法中,如Page.OnInit()和Page.OnLoad()等等,这些办法让我看到Client端JS办法的影子。在开辟ASP.NET页面的过程当中,我必要做的就是在页面中引进分歧的WebControl大概是HTMLControl,这些Controls与HTML标签是多么的相似,除它有ASP的prefix和当时看起来如Magic一样平常的runat="server"。如许的类似性让熟习HTML和JS的我很快把握了ASP.NET的基础使用,而我也以极高的效力完成了公司分派给我的义务,只管我对诸如Request、Response、Session和Application如许的工具并非非常懂得。ASP.NET所带来的前进是反动性的,难怪有伴侣以为ASP.NET是.NET家属中最为乐成的产物了。我事先只是拿ASP.NET来跟ASP尴尬刁难比,其优胜性天然显现无遗,特别是在控件计划方面的上风。现实上直到厥后进进J2EE的开辟范畴,我仍然对ASP.NET的开辟体例欣赏有加。Microsoft在手艺的立异上一向秉承减弱范畴开辟特征的准绳,闪开发职员可以在分歧的开辟范畴中都能够轻松上手,熟能生巧。ASP.NET的呈现带来了WebForm,而在桌面程序开辟中则有WinForm,二者相通的中央到处可见,这让原本的桌面程序开辟职员能够光滑的过渡到WebApplication开辟中来;ASP.NET关于控件在计划和利用上的撑持可谓完善,也为网页计划职员进进ASP.NET开辟范畴打扫了很多的停滞。反不雅J2EE范畴,做Swing开辟的职员,假如要进修Web的开辟,原本的常识几近无用武之地了。在这团体气就是财产的年月,在必定层面上求同存异,闪开发职员可以一通百通,无疑是一个非常明智的做法。J2EE范畴也入手下手意想到了这一点,将Swing观点使用到Web开辟的WicketFramwork的公布实在是一个极年夜的前进啊。J2EE在下降Web开辟的难度,吸引进门级开辟职员方面必要向.NET好好就教一番了。
好,团体履历接着说。2003岁尾,我进进了一家软件公司处置J2EE的开辟事情。事先公司手艺部门卖力人在口试我的时分提到了我缺少J2EE的开辟履历的成绩,我信念满满的告知他,我做过.NET的项目,而.NET和J2EE都是专注在企业级使用上的,因而一定会很快上手,不会有甚么成绩。但是厥后的事情证实了平台之间的差别性是很年夜的,从.NET过渡到J2EE并非一件轻松的事变。没有了熟习的WebControl,取而代之的是大略的TagLibrary;没有了复杂易用的Event-Driven的办法,出现长远的是doGet、doPost、doHead和service如许看似丑恶的面目面貌。演变的历程是疾苦的,可是演变带来了退化。开辟体例的改动让我能够从一个加倍深切的层面往对待Web开辟,而我入手下手从头熟悉WebApplication。Web开辟的庞大性在很年夜水平上源于Http是一个无形态的毗连协定,WebServer不论你是Michael,仍是Jordon,只需你在扫瞄器上利用了不异的URL,就会失掉不异的资本。在这里,你必需分明URL究竟是甚么的缩写。大概你会站出来辩驳我方才所说的结论,可是这类情形在只要静态HTML网页的年月是相对准确的。跟着时期的开展,资本已不再范围于静态的HTML网页,随之呈现了所谓的静态网页。这里的静态不是指充斥Flash动画的网页,而是指网页的内容会依据分歧的Request而产生变更。固然Web的内容入手下手本性化了,可是仍旧没有离开Client发送Request,Server前往Response如许的形式。因为Http是一个无形态的毗连协定,为了可以辨认用户会见统一资本的形态,在J2EE的天下里,我们就得从Request、Response和Session如许的工具动手,把持这些工具的LifeCycle。因而,我们哪怕要举行最为复杂的Web使用程序,都必需对Request、Response和Session如许的工具有充实的懂得。存眷这些基础的工具,让我们关于使用程序的Flow有更加正确的掌控,可以更好地举行模块地分别,便于开辟职员举行合作。但是在.NET的天下里,对Request和Session如许的工具存眷远不如对Page的存眷,从振河兄的Post便可见一斑了。ASP.NET开辟下降了开辟难度,却在必定水平上拦阻了开辟职员对WebApplication的全体掌控,正如春鱼兄的Feedback中提到的,太过胶葛页面之间干系,“倒霉于体系全体架构的优秀计划”。J2EE的使用程序可让程序员在WebApplication的全体架构上有一个很好的表现,.NET仍是得好好勉力啊!倡议.NET的程序员可以实验着使用J2EE的手艺来开辟一个复杂的WebApplication,我信任如许的一个历程会让你对Web开辟有进一步的熟悉。
进进了J2EE的范畴,除开辟体例变了,buzzwords也随着改动了。两个利用频次极高的辞汇充溢着天天的事情,一个是MVC,另外一个则是Framework。我感伤于Pattern在J2EE中利用的普遍性,感伤于使用完成了MVC形式的Framework居然可让复杂的团队协同开辟一个Project。当时的我入手下手信任Pattern的普遍使用给软件开辟带来的变更是伟大而深远的,也入手下手浏览《CoreJ2EEPatterns》并从中获益。而在.NET的天下里,对Pattern的器重则远不如J2EE,只管如许的情形在改动。说到了MVC,不能不对如许一个分量很重的辞汇做些报告了。JSP的开展履历了两个阶段:JSPModel1和JSPModel2。在Model1中是JSP和JavaBean的分离,在必定水平上完成了MVC,可是Model与Control之间的耦合仍旧广泛存在;而Model2则真正完成了MVC:JSP作为Presentation层,卖力数据的显现;Servlet充任着一个RequestDispatcher的脚色,将Request分发至分歧的处置Business的模块中,它就是一个批示官,扛着Controller这面年夜旗;而VO则是一个数据的载体,是MVC三角中的Model。MVC的观点是进进J2EE开辟范畴必备的,从你做第一个复杂的使用程序入手下手,从你看第一篇关于J2EE开辟的文章入手下手,而丰厚的开源MVCFramework同样成为了我们进修MVCPattern的优秀课本。对J2EE有了开端的熟悉以后,就能够选择一些优异的MVCFramework来研讨了,比方WebWork和Spring。这关于进修体系全体架构计划方面是年夜有裨益的。
大概物极必反真的是一条稳定的真谛,J2EE范畴中关于开辟Framework的寻求可谓之猖狂,人人朝这里看:Wicket-Introduction。你会发明能够用来开辟WebApplication的Framework居然到达了55个,而且还在日趋增添。现实上J2EE开辟的软肋不在于Control这个层面,而是在View。很多天赋的精神都耗在反复打造轮子上,却没有想举措往完美一个大概多个Framework,这不能不让人感应痛心啊!在这一点,J2EE是否是得向.NET好勤学习一下呢?在.NET的天下里,最受存眷的应当是控件的开辟了,一个计划优秀,功效壮大的控件关于进步开辟效力无疑是极好的助推器。良多.NET的开辟职员都将精神花在计划控件上,.NET就像一个聚宝盆一样,不休会聚开辟职员伶俐结晶。在J2EE的天下里,为了削减这类资本华侈的情形,WicketFramework的呈现了。它夸大组件计划和组件重用,闪开发职员会合精神于组件的开辟,从而加强Framework的功效已易用性。希望,WicketFramework可以为J2EE天下带来少量的改动吧!
说着说着,真的有点野马脱缰的感到了。不晓得说了半天,人人是不是分明我真实的意图呢?在这个手艺云云Open的年月,.NET的程序员应当往懂得J2EE,反之亦然。我想,互相进修,配合前进这句再一般不外的话能够归纳综合这罗罗嗦嗦的数千字吧。
觉得J2EE好像有很多工具,比如servlet,jboss,tomcat,ejb什么的,可是微软的.NET怎么什么也没有啊? |
|