DotNet VS J2EE ? NO !

来源:互联网 发布:android网络通信 编辑:程序博客网 时间:2024/04/28 23:34

前次我写了一篇《企业级应用为什么首选J2EE》的文章,想不到是一篇回复与争论最多的文章。定我惊讶的是大家争论的焦点不是我文章中的观点而是题目——企业级应用究竟首先的应该是J2EE还是DotNet?

我上google搜索了一下".net j2ee比较",基本上从DotNet发布到现在这样的争论就没有停过, 获得约 663,000 条结果!

说实话,我也是Microsoft与Windows的忠实用户,我从九十年代在大学中使用Microsoft C/C++7.0(那时好象Microsoft公司还没有发布Visual C/C++)开始,到现在都十几个年头了;2001年Microsoft Visual Studio 7.0(也就是DotNet2001)发布时,公司还派我们去参加发布会并进行短期速训。相比之下,我接触J2EE要晚些,九十年代末才学习Java语言进行项目开发。我写《企业级应用为什么首选J2EE》的文章也没有想到过要将DotNet与J2EE进行比较,不过争论事实上已经产生,我就先谈谈我对DotNet与J2EE的看法。

在企业应用软件开发领域,往往存在两种选择,那就是J2EE和DotNET。DotNET和J2EE各有特长,两者都是十分优秀的开发平台,都非常成熟和稳定。

DotNET来自于微软,是一套全能的框架平台,支持C++、C#、J++、VB、ASP等语言,能够解决C/S、B/S和单机等结构的软件开发需求。DotNET平台将这些语言编译成CLR语言,使它们可以无差别的运行在DotNET Framework上。DotNET框架入门门槛较低、使用方便,并且微软对其提供了良好的文档支持和在线服务。Microsoft在技术的创新上一直秉持削弱领域开发特性的原则,让开发人员能够在不同的开发领域中都可以轻松上手,游刃有余。ASP.NET的出现带来了WebForm,而在桌面程序开发中则有WinForm,两者相通的地方随处可见,这让原有的桌面程序开发人员可以平滑的过渡到Web Application开发中来。优异的用户界面反应速度以及与Windows的整合度,可以使软件人员较快地构建出用户界面比较好的应用程序。在DotNET的世界里,最受关注的应该是控件的开发了,一个设计良好、功能强大的控件对于提高开发效率无疑是极好的助推器。很多DotNET的开发人员都将精力花在设计控件上,DotNET就像一个聚宝盆一样,不断汇聚开发人员智慧结晶。ASP.NET对于控件在设计以及使用上的支持堪称完美,也为网页设计人员进入ASP.NET开发领域扫除了不少的障碍。DotNET注重开放工具功能的日趋强大和丰富,简单易学,界面友好,然而只能在Windows系统上运行,不支持开源代码。

准确来说J2EE并不是框架,而是许多技术规范的集合。SUN公司1995年推出Java语言,其先进的理念、优美的语法、完善的面向对象思想、强大的语言特性、对微型设备和网络的良好支持,使得Java语言受到了世界上很多程序员的喜爱。随着经济发展,大型的分布式系统,远程协作访问系统,电信金融等行业软件企业软件需求越来越大,SUN公司不失时机的组成了JCP组织,通过联合世界上一些先进的软件公司和技术领导者,来定义JSR规范,逐渐形成了以Java语言为核心的J2EE技术群,已经推出近300项规范,涵盖软件开发的各个方向,大有做到无所不包之势。由于参与制定规范的公司,譬如IBM、富士通、BEA、ORACLE等公司技术实力雄厚,并且对规范都提供了软硬件支持,加上其平台无关性及开源作品繁多可选择性较强等特点,这些支持都是企业软件开发领域的支柱级作品。J2EE代表的是一个公开的标准,开放性是J2EE的一个重要特点,这也是Java发展的生命源泉。由于Java的开放性特点,很多厂商都会创建自己的开发工具,这些都决定了开发工具是少不了的。J2EE领域中对于开发Framework的追求可谓之疯狂,用来开发Web Application的Framework我知道的就竟然达到了55个,并且还在日益增加。J2EE依托于开放的工业标准,注重开源代码,强调跨平台的应用。

总结来说:DotNET技术来自于一家公司,支持多种语言,软硬件均需要付费,仅支持Windows操作系统,以框架开发者为主导的设计,门槛很低,使用方便,学习成本较低,新技术更新较慢。J2EE技术来自于多家公司,支持一种语言,开源产品众多,免费框架居多,硬件和中间件需付费,平台移植性好,支持所有操作系统,开源社区活跃,很多规范都是一线人员自己做出来的或者大量听取一线开发者的意见,门槛较高,由于多且杂,需要开发人员花费很长时间才能熟悉整个体系,技术更新很快,新技术新标准层出不穷,适合技术爱好者。

至于选择哪种开发平台,除了要看软件项目团队开发人员对语言的掌握能力及个人喜好,也要根据开发内容和企业具体情况、具体需求而定。

对于软件开发人员来说,不必在这方面太过于敏感,一听说DotNet或J2EE就必需争个高低之分。一方面,DotNet与J2EE本来就各有所长、各有所短,没有高低死活之分,所谓存在即理由,争来有什么结果?有什么意义?另一方面,单学习哪种语言都不会找不到工作,一旦选择一方作为开发工具,惟"精实"才是惟一的出路。无论DotNet还是J2EE毕竟都是手中的工具,即使有个高低死活之分也不能代表使用该工具的所有人员是一定会高人一等,就如同《倚天屠龙记》中的屠龙刀在金毛狮王谢逊的手中又起了多大作用?最后,在精实的基础上更应该放开心怀,去不断尝试新东西,取长补短。

对于企业来说,DotNET和J2EE都有自己相对稳定的用户群。虽然这两个开发平台在很多方面都有很多相同或者相似的特性,但是不等于就可以互相替换,因为双方毕竟还有许多本身的独到之处,可称为是"独门绝技"。一般认为,在中小企业中,微软的开发平台将继续成为主流的产品。而在大中企业中,特别是那些使用UNIX系统或者具有多个操作系统、业务环境和IT环境十分复杂、对业务要求十分苛刻的大型企业中,J2EE将继续占有较大的市场。