InfoQ

技术访谈

曹晓钢谈企业应用开发框架

受访人 Jason Lai 发布于 2007年10月23日 下午6时52分

社区
Architecture
主题
故事和案例分析,
Web框架,
富客户端/桌面
标签
服务组件架构,
Hibernate,
JBoss Seam,
Spring框架,
性能和扩展性
概要
在采访中,曹晓钢首先对当前流行的Web应用开发框架,如Spring、JBoss Seam、Hibernate等进行了比较分析,然后根据自己的实际工作经验和经历指出在企业应用开发中如何选择并合理地使用这些框架,另外他还对未来一段时间开源框架的发展前景进行了展望。

个人简介
曹晓钢,满江红开放技术研究组织创始人,在软件开发方面有着多年的经验积累,热衷于开源理念与开源软件的推广。此外他还有多本译作及原创书籍出版,如《深入浅出Hibernate》、《深入Java虚拟机》、《J2EE Development Without EJB中文版》等,曾是《Dr. Dobb's Journal》中文版编委会常任委员。

感谢上海卡内基信息科技有限公司提供场地支持!
请评价目前市场上流行的企业应用开发框架。
如果在企业应用中使用开源框架,今后的趋势又是怎样的?
那用于企业开发的这些Java开源框架之间各自存在哪些优势和劣势?
那么像纯的这样的HTML的组件库,在企业应用开发中是怎么样的一个应用情况呢?
那你觉得就是在企业开发中这个业务组件的重用,今后会不会是一个比较大的一个方向呢?
刚才你就提到这个用组件化来实施项目的这样的一个思想,那么就是说在你现在具体实际项目实施当中,你是怎么去实现这样的一个思想的呢?
假如今后你有无限的时间和精力的话,你要解决这样的一个项目中出现的问题,你会怎么样去选择呢?
show all  show all

相关赞助商

InfoQ中文站架构社区,关注设计、技术趋势以及架构师所感兴趣的话题,通过新闻、文章、视频访谈和演讲以及迷你书等为中国架构社区提供一流资讯。

8 条回复

回复

没有太多说服力 发表人 hong lin 发表于 2007年10月23日 下午8时46分
Re: 没有太多说服力 发表人 sw pollux 发表于 2007年10月25日 上午2时49分
Re: 没有太多说服力 发表人 zheng xin 发表于 2007年10月28日 上午2时35分
Re: 没有太多说服力 发表人 霍 泰稳 发表于 2007年10月29日 下午9时6分
没有噱头 发表人 fan fan 发表于 2007年10月29日 下午6时59分
Portlet 发表人 Chushu Gao 发表于 2007年10月29日 下午8时53分
实在听不下去了!来点实在的行不。。。工作offer 发表人 kai zhang 发表于 2007年11月7日 下午6时6分
组件化始终是程序员不懈的追求 发表人 gx li 发表于 2008年5月27日 上午3时39分
  1. 返回顶部

    没有太多说服力

    2007年10月23日 下午8时46分 发表人 hong lin

    感觉业务建模是框架该做的还是以需求而设计的,你举的那个"显示客户信息"的例子实在没有什么说服力,我还没有深入seam,不过我想业务建模也应该不可避免的见于需求,你可以向页面传递尽可能多的信息(一个信息丰富的模型,你的“你的那些用户信息”必然在模型中)。

  2. 返回顶部

    Re: 没有太多说服力

    2007年10月25日 上午2时49分 发表人 sw pollux

    同意!另外在和spring和jboss系列做比较的时候,比较简单,没有深入下去。说spring是一个草根框架等等,让我感觉太随意了。其实作者自己的项目中不也还在用spring那套嘛!再说spring的未来还是比较明朗的。

  3. 返回顶部

    Re: 没有太多说服力

    2007年10月28日 上午2时35分 发表人 zheng xin

    我觉得,seam和业务逻辑的开发仍然没有什么关系,只不过是another framework,对于实际的复杂的业务逻辑开发,seam也解决不了什么问题。 我觉得这种说法很肤浅,很没有深度,也没有准备好,不应当出现在infoq的网站.

  4. 返回顶部

    没有噱头

    2007年10月29日 下午6时59分 发表人 fan fan

    没有噱头

  5. 返回顶部

    Portlet

    2007年10月29日 下午8时53分 发表人 Chushu Gao

    首先声明,本人并无大量企业应用开发经验。以下看法更多来自学术观点。 从曹晓钢的访谈中可以看出,他对业务模型如何穿透映射到页面表示尤为关注。在学术领域中,不乏学者通过建立页面表示模型,利用MDD中的技术与成果,一方面进行工作流模型到页面表示模型的转换,一方面进行页面表示模型到具体表示通道的转换或映射。Portlet可以看作一种运行于容器中的页面内容表达途径。因此,一些学者选择Portlet载体进行这类转换与映射。不知道这是否会是软件工程实践者亦会尝试的途径。

  6. 返回顶部

    Re: 没有太多说服力

    2007年10月29日 下午9时6分 发表人 霍 泰稳

    参与讨论就是一种美德,你的问题对其他朋友是很好的启发。

  7. 返回顶部

    实在听不下去了!来点实在的行不。。。工作offer

    2007年11月7日 下午6时6分 发表人 kai zhang

    实在听不下去了,特意注册一个账号跟大家讨论一下。我不是Professional programmer也没有用过JSP 0.8什么的,不过这个谈话不是矛盾就是空洞还有太多错误。这个网站做得挺好的啊,怎么。。。sign 首先,好像你主要想要一个component based framework, 你拿Spring来说当然没前途。。。因为他根本不是走这个路线的,你可以拿JSF等相关的东西来说说他们的具体缺陷,和你整合时候遇到的问题而不是找些不相及的东西开刀。J2EE Development without EJB如果没有记错是对Spring核心技术的解释,应该就已经透露这个框架是用来支持你想整合的其他框架其中包括你不断重复的控件之类的,还有就是你正在用的hibernate等等。而且Spring 的IOC 精髓, AOP的支持 让POJO这样的简单object实现了EJB的declarative transaction 等等, 而又不强迫你重写,重建一大堆方法和object. Spring主要在支持你在任何一个层面上更好的设计和控制你要做的事情。你要求的那个server side validation(JSP里面的小红标志表示验证失败), Spring里面有阿还很多种呢 比如 @spring.validator type="required"。。。 而分层是为了更好的处理这个层的任务,在你的那个多个页面需要类似客户信息的例子里,你需要考虑的是怎么样得到一个model在presentation layer下面的那个层然后转给一个view(额外的抽象出来的好东西)去interpret,这个在presentation layer 的 view,是interactive designer or expert的美学领域的工作,他们需要考虑如何把这个页面渲染的像个样子(用传过来的model)。具体技术上的就是sitemesh这种页面布局小模块的用处。 .net 是用钱堆出来的,表现层能差吗?你扔给interface21几十个亿,就要什么控件有什么控件了。这些框架的好处是你可以用一个方法控制你的代码而不是帮你把UML Diagram直接变成JSP的。 小小的意见是:框架的英文名字说得慢一点,或者拼出来一下,也许可以让别人在你启发后发现更多东西,起码有机会google一下。 如果你真想谈,应该谈谈你如何用Spring, hibernate 还有前端的XXX没听清楚来实现你的component based design, 比如你完全可以用JSP TAG实现你的那个每个页面都有的什么什么客户信息。。大家都忙 指东说西也就罢了 总的来点实在的啊。。。 最后最后这个给网站的:也许用一下AJAX 让用户在发言回复的时候不会重新播放stream. 如果哪位同仁感觉我说得更偏激 欢迎讨论adjure_study@hotmail.com , 另外 我正在找合作的伙伴,主要是B2B的webshop之类的,将会用到Spring等等 暂时还在给老外打工,所以最好会外语的 如果技术很强也成,我做interface了:)有兴趣的联系 谢谢

  8. 返回顶部

    组件化始终是程序员不懈的追求

    2008年5月27日 上午3时39分 发表人 gx li

    晓刚这些发言的核心还是在于“组件化”。 其实这个问题很多年来正是众多程序员不懈的追求。见子打子的程序大家都会写,真正追求是业务逻辑的重用。于是从过去的COM、CORBA、EJB,到如今的WS、REST、SOA等等。 可惜,业务逻辑组件化这样的想法几乎快演变为玄学了。 经过多年观察和实践,老实说本人对这个追求开始产生了悲观情绪。或许这种追求本身便是程序员的西西弗斯悲剧? 而且可笑的是,B/S经过好多年的折腾之后,仍然没有达到当初VB、Delphi、PB那样高生产力的程度。虽然说B/S仍是必经之路,但要有多久,要如何做才能达到如C/S时代的易用度和高产?届时什么样的技术和框架经得起时间的考验?Spring、Seam、Grails、PHP、RoR、ASP.NET?

独家内容

构建的可伸缩性和达到的性能:一个虚拟座谈会

这个由业界主要专家们参加的座谈会探究了在使应用程序具备尽可能好的伸缩性及性能的过程中所面临的挑战和思考过程。

OpenSocial的分析与实现

本视频主要对OpenSocial进行了分析,并对实现的方式进行了介绍。其中包括:OpenSocial的开发经验、Container Provider的技术准备、平台的构成要素、具体的规范、以及对未来的展望。

缓存系统MemCached的Java客户端优化历程

Memcached在大型网站被应用得越来越广泛,但是Java客户端并不多,本文作者基于现有的开源客户端进行了封装优化,并翔实记录了这一过程。

超越SOA:动态业务应用的新企业应用框架(2)

在他们文章的第二部分,作者探讨了动态业务应用的架构并介绍了资源容器的概念。他们示范了如何在JEE之上构建这个架构,以及它如何影响实现生产力。

使用ClickOnce细分发布版本

ClickOnce让WinForms应用程序的部署轻而易举。David Cooksey演示了如何在ASP.NET中编写一个HttpHandler来实现对ClickOnce部署的版本细分。

敏捷教练,从A到Z

敏捷带来了新的领导者角色,“敏捷教练”。它是不是跟“部门经理”或“技术领导”一样,只是换汤不换药呢?教练Pat Kua在这篇启蒙文章中对敏捷教练一职做了概述。

利用Ruby简化你的Java测试(进阶篇)

本文是Productive Java with Ruby系列文章的第二篇,通过上一篇的介绍,我想大家对如何利用Ruby进行单元测试有了一个基本的了解,从这里开始,我将和大家一起讨论一些利用Ruby进行单元测试时的高级话题。

书评:《应用SOA》

《应用SOA》是由四位一流SOA专家合著关于SOA的新书,其主旨是帮助你成功地实施SOA。尤其是,这本书将帮助你把你的SOA项目与企业架构、IT治理、核心数据和BPM项目结合起来。