孙福林ID:jdlsfl
28815次访问,排名4003好友90人,关注者123
软件
jdlsfl的文章
原创 92 篇
翻译 0 篇
转载 53 篇
评论 39 篇
福林天下的公告
If If you can keep your head when all about you Are losing theirs and blaming it on you; If you can trust yourself when all men doubt you, But make allowance for their doubting too; If you can wait and not be tired by waiting, Or, being lied about, don’t deal in lies, Or, being hated, don’t give way to hating, And yet don’t look too good, nor talk too wise; If you can dream - and not make dreams your master; If you can think - and not make thoughts your aim; If you can meet with triumph and disaster And treat those two impostors just the same; If you can bear to hear the truth you’ve spoken Twisted by knaves to make a trap for fools, Or watch the things you gave your life to broken, And stoop and build ’em up with 5)worn-out tools; If you can make one heap of all your winnings And risk it on one turn of pitch-and-toss, And lose, and start again at your beginnings And never breathe a word about your loss; If you can force your heart and nerve and sinew To serve your turn long after they are gone, And so hold on when there is nothing in you Except the Will which says to them: “Hold on !”; If you can talk with crowds and keep your virtue, Or walk with Kings - nor lose the common touch; If neither foes nor loving friends can hurt you; If all men count with you, but none too much; If you can fill the unforgiving minute With sixty seconds “worth of distance run”Yours is the Earth and everything that’s in it, And - which is more - you’ll be a Man !
最近评论
chenjiehong:
chenjiehong:我也不成功 也有迷茫过 不过我才不听什么李开复,王开复放P呢 叫他拖掉博士的马甲 他连扫垃圾都不够资格 所以我到觉得 花时间看这些白痴随便的定论 还不如自己想想下一步怎么走
我也迷茫过 不过还是坚持走程序员的路 虽然脑子不聪明 也不怎么灵活 虽然目前还是没工作 但我还是一步一步的去补上原来的漏洞 目前我正在一家超市打工 赚来的1500元除了补贴家用 就是买书看了 我依然对程序热爱 ……
chenjiehong:我也不成功 也有迷茫过 不过我才不听什么李开复,王开复放P呢 叫他拖掉博士的马甲 他连扫垃圾都不够资格 所以我到觉得 花时间看这些白痴随便的定论 还不如自己想想下一步怎么走
我也迷茫过 不过还是坚持走程序员的路 虽然脑子不聪明 也不怎么灵活 虽然目前还是没工作 但我还是一步一步的去补上原来的漏洞 目前我正在一家超市打工 赚来的1500元除了补贴家用 就是买书看了 我依然对程序热爱 ……
chenjiehong:我也不成功 也有迷茫过 不过我才不听什么李开复,王开复放P呢 叫他拖掉博士的马甲 他连扫垃圾都不够资格 所以我到觉得 花时间看这些白痴随便的定论 还不如自己想想下一步怎么走
我也迷茫过 不过还是坚持走程序员的路 虽然脑子不聪明 也不怎么灵活 虽然目前还是没工作 但我还是一步一步的去补上原来的漏洞 目前我正在一家超市打工 赚来的1500元除了补贴家用 就是买书看了 我依然对程序热爱 ……
chenjiehong:我也不成功 也有迷茫过 不过我才不听什么李开复,王开复放P呢 叫他拖掉博士的马甲 他连扫垃圾都不够资格 所以我到觉得 花时间看这些白痴随便的定论 还不如自己想想下一步怎么走
我也迷茫过 不过还是坚持走程序员的路 虽然脑子不聪明 也不怎么灵活 虽然目前还是没工作 但我还是一步一步的去补上原来的漏洞 目前我正在一家超市打工 赚来的1500元除了补贴家用 就是买书看了 我依然对程序热爱 ……
文章分类
收藏
    相册
    IT
    csdn(RSS)
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    转载 J2EE和.NET有什么差别?收藏

    新一篇: .NET和J2EE该相互学习什么 | 旧一篇: 什么是J2EE?

    很多人对J2EE和.NET的认识不是很深入。有时候搞不清两者之间的差异和优劣。下面我们来看看他们的介绍。

    作为彼此竞争的应用平台,J2EE和.NET开发平台在目标和体系结构上极其相似,但在实现上又完全不同。平台的体系架构是支撑平台的基础,平台各方面的性能也会因平台架构实现的不同而有差异。对两个平台产生至关重要影响的三个方面是:系统平台基础构造、三层/多层体系结构和移植/性能/扩展。J2EE是一个平台规范而非产品,对等而论,在这里述及的.NET也专注于该平台的架构规范,而较少地涉及到具体产品,尽管对.NET而言有时候这方面并不能被区分得很清楚。

    类似的平台基础构造


    一个平台在语言编译、代码执行、编程支 持等基础构造方面往往会对平台的可用性、生产性、移植性等产生重要的影响,也是我们评判一个平台是否适合特定应用的重要依据。J2EE和.NET两个平台 在底层的执行引擎都源于托管的虚拟机概念,但.NET的CLR沿着Java虚拟机(JVM)走得更远。CLR在借鉴了JVM的自动垃圾收集、异常处理等机 制的同时,又为.NET平台添加了多语言支持、组件自描述等新的特性。


    在.NET和 J2EE平台上,程序的编译都经过两个类似的过程。首先特定高级语言编译器将C#(及其他.NET语言)和Java源代码分别翻译成中间语言(IL)和字节代码(ByteCode)。.NET在中间语言设计时通盘考虑了多个主流高级语言,在这一层面实现了.NET平台的跨语言承诺。J2EE的基石是Java语言,它最典型的特征是:一次编写,多次运行。跨平台是J2EE一直引以为豪的关键,这是通过JVM来实现的。


    其 次,在执行时,中间语言被即时编译器(JIT)编译成特定平台的二进制代码,字节代码则通过JVM解释执行,完成各自语言的指令功能。鉴于微软在 “Wintel平台”上的代码优化功底,.NET代码的执行速度较之于Java有明显的优势是不争的事实。但在Unix/Linux平台上,由于.NET 迟迟未能实现其跨平台的承诺,J2EE几乎成了惟一的选择,执行效率的比较也就无所谓。在代码执行的同时,通用语言运行时和Java虚拟机也都提出了异常 捕捉、类型安全、内存分配、垃圾收集等自动化内存管理工作,大大减轻了现代软件的内存泄漏问题和程序员繁重的负担。


    面向对象程序设计在J2EE和.NET平台中都获得了直接的支持,单根继承加多接口实现是它们共有的特征。但在面向对象之外,.NET对现代组件编程提供了直接支持。当然,当下的很多企业中间件都是基于J2EE平台的,只是.NET从设计、编码、配置到运行给予了组件编程更多、更直接的支持。


    一个能够为编程提 供广泛服务的、可复用的API类库对于现代软件平台非常重要。从基础的集合、字符串操作到企业级的API接口,如JMS、JDBC、JAX、JNDI等, 可以看到J2EE在这方面有着非常坚实的结构。微软.NET框架类库也不示弱,提供了从图画、网络、线程到ADO.NET、ADSI、Windows表 单、ASP.NET等一系列的API。在这些基础的和企业级的服务上两个平台很难一决高下,而且对功能集合的支持很多时候是一个时间问题,往往是一个平台 推出了某一子功能集,另一个平台马上推出类似的功能集。


    除去API类库的无缝的功能复用外,对本地平台的调用操作也是值得关注的一点。CLR和Java虚拟机都支持本地方法的调用。在异构平台方面,J2EE更钟情于IIOP(Internet InterORB Protocol),而.NET则使用SOAP。


    相同的三层/多层体系


    基于三层/多层分布式计算结构已毋庸置疑地成为当今企业应用的主流模式,也是两个平台较量的着力点。


    在 客户端,表示层负责用户与系统的交互。对于不同的处理要求,.NET和J2EE都提出了基于桌面的应用程序和基于浏览器的Web应用的开发组件:Java Application与Windows表单、Java Servlet/JSP与ASP.NET双双形成犄角之势。但Windows表单依赖微软桌面系统的天然优势,不管在交互速度还是在界面的表现性能上都较 Java Application稍胜一筹。Servlet/JSP与ASP.NET是目前企业在“瘦客户端”应用的重点,两者都基于HTTP请求/响应模型,通过 HTML浏览器页面完成用户交互。虽然ASP.NET声称在底层通过编译执行获得了相当高的处理速度,以及服务器方控件的浏览器自适应能力,但目前并没有 这方面的硬性数据,很难据此而论高下。在缓存、状态优化等方面两者可谓旗鼓相当。另一个和客户端应用相关的技术是ActiveX与Applet,但从目前的趋势来看,它们在两个平台上的地位逐渐边缘化,也不为大多数企业所接受。


    在中间层,分布式业务组件负责企业应用的商业逻辑部署。由于这些业务组件经常负责处理数据库连接、网络资源、线程等高昂的资源,所以一直是三层/多层架构的 关键和企业应用的核心。J2EE的EJB是一个成熟的、得到业界广泛支持的大型企业级组件框架,而.NET组件则是建立在新型的COM+服务之上,两者在 组件与操作系统的交互、客户端资源共享等方面都有很好的支持。EJB的核心是容器,容器是一个为组件提供服务的运行时环境,负责为组件提供诸如事务处理、 持久性、安全性、组建状态自动化管理等服务,它分离了商业逻辑和系统底层逻辑,使开发人员的工作大为简化。.NET则通过元数据支持自描述性的组件开发、XCOPY部署以及多版本共存,而无需注册表和描述文件,对企业客户有一定的吸引力。


    在后端数据层,两个平台都为数据库连接量身定做了一套数据存取模型:J2EE的JDBC和.NET的ADO.NET。它们在支持传统SQL数据源的同时,也都支持新型的XML数据源。这方面由于更多地涉及到具体的数据库产品,很难说那种数据模型更有优势。


    值得指出的是,在打造三层/多层体系结构的同时,Web服务作为新一代企业计算模型也得到了J2EE和.NET平台相当的关注,在后面的文章会有这方面的详细评述。


    不同的移植、性能和扩展


    在移植性方面,微软通过.NET 通用语言运行时来消除编程语 言的差别,而J2EE则通过Java虚拟机来消除平台差别。“选择.NET平台就意味着选择Windows”,这句话至少在可预见的一段时间里仍然是一个 基本事实。跨平台是J2EE的一大卖点,也是在选择企业应用开发平台时的一个重要参考因素,几乎所有的主流操作系统都提供了对J2EE的支持。实际上如果 要搭建跨Unix、Windows等多个操作系统平台,J2EE平台几乎是惟一的选择。J2EE更关注跨平台而不是跨语言。但微软认为,如果企业的应用都 能通过标准协议以Web服务的方式发布,那么平台都是中立的。跨平台甚至是微软所不想的。为了吸引更多的开发者和鼓励广大企业厂商转到.NET平台,微软 提出了多语言支持,希望用跨语言的交互性来平衡跨平台的互操作。


    性能是J2EE和.NET喋喋不休的话题。二者之间著名的论 战是一个关于宠物店的范例应用。宠物店是Sun一度以来作为J2EE典型应用的展示范例,但.NET“自告奋勇”地在自己的平台上实现了该宠物店应用,且 声称代码行是J2EE的1/3,效率却是J2EE的30倍。但Sun的理由是这个范例根本不适合用来做性能比较,该范例实现也没有做针对性能的优化,而且 指责微软通过后端数据库优化和缓存虚抬了.NET平台的效率。这样的争吵当然不能作为我们判断的依据,目前也没有见到更客观的第三方评测报告。在“Wintel平台”上我们也许没有理由怀疑.NET的性能,而至于非Windows平台,.NET和J2EE也不再具有可比性。


    在平台的成熟度方面,两者也有一拼。J2EE在1999年形成了其成熟的架构, 并且到今天已经有相当成熟的经过检验的企业应用系统。而.NET究其渊源是源自微软以前开发企业应用程序的平台DNA(Distributed Network Architecture),其中包括了许多已经被证实的技术,并且这些技术已经在产品中得到实现,包括微软的事务服务器、COM+、消息队列、SQL Server数据库等。而对于扩展性,广为业界接受的事实是.NET平台的扩展思想是基于软件的横向扩展,而J2EE平台的扩展思想则是基于硬件的纵向扩展。这也符合微软和Sun各自的产品利益。


    J2EE另一个重要特征就是它的架构开放性,它本身是一系列规范,而不是产品,任何符合这一规范的产品都是J2EE兼容的。这使得J2EE从制订之初就得到了广泛的支持。BEA、IBM、Oracle等都相继开发了符合J2EE的应用服务器,它们的产品相互之间甚至可以兼容。而.NET在设计之初就紧紧地把平台规范与产品胶合在一起,虽然.NET架构的一小部分具有开放性(如C#语言、通用语言基础构造CLI 和Web服务标准),但至少目前很难想像会有一个非微软的.NET实现。

    发表于 @ 2008年05月05日 16:12:00|评论(loading...)|收藏

    新一篇: .NET和J2EE该相互学习什么 | 旧一篇: 什么是J2EE?

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 福林天下