我个人是非常不喜欢EJB.所以如果不是一定要使用在分布式上面那就一定不会使用EJB.我个人是觉得O/R Mapping 比较好,但其实如果是的SQL基础比较好而且比较熟练的话直接使用JDBC又有什么问题???那些get/set 方法的bean有IDE可以自动生成,操作数据库的方法其实写起来很快的。而且不大要太多的技巧。但前提是对SQL比较熟悉。使用JDBC,对象的颗粒度也是一个要仔细考虑的问题。其实技术是为了解决问题,在一个比较好的架构下,有一定的约定使用JDBC也许是一种解决办法。
再说说和Struts结合的问题,我使用Struts时间比较的长,2年多了,我一直觉得Struts最有智慧的东西是ActionMapping, ActionForm,struts1.0以后把tiles加了进来。所以个人觉得Struts最可取的是ActionMapping, ActionForm,Tiles,ActionMapping实现了业务逻辑的控制,ActionForm实现的Http 端数据的封撞,Tiles实现了页面的拆分和组合,可以理解为Tiles 把HTML页面作为对象来处理。但我看了ofbiz的实现以后我对Struts的看法有些改变,基本上使用Struts,V 会使用jsp ,有人喜欢用很多的Taglib 我对此持保留意见,我更喜欢使用象Velocity,freemaker等的模板语言而ofbiz正是这样做的。

在中/大型项目开发中,CMP非常简单,CMP(有过一定的使用经验)的使用可以节省很大的工作量(在同一种版本的app server上),它忽略了许多操作数据库的细节,稳定性也不错。虽然性能不怎么样,但项目中最重要的是时间,再加上现在的硬件条件提高,App Server的提高,性能也不会成为项目的瓶颈,只会成为招标时的砝码。因此在项目开发过程中使用,我认为是比较好。

至于用于产品开发中,好像就失去它本身最大的特点,成为了鸡肋。

我比较同意robbin所说的,是两种方案的比较,关键取决于你的应用以及你对技术的掌握程度。

EJB是框架,但框架也提供API,不知道Banq所说的API代表什么意思?可能是说Library。

>>>>>
EJB是框架,但框架也提供API,不知道Banq所说的API代表什么意思?可能是说Library。
<<<<<<

Banq的帖子看多了,根本不知道他想说什么?(给人夸夸奇谈的感觉)
不知道Banq 丰富的理论是从项目中来, 还是从书上看来的。

》Banq的帖子看多了,根本不知道他想说什么

如果连Library和Framework都分不清楚,说明对Java还没有什么感觉。

To Banq

<<J2EE Core Patterns 来解决很多EJB中的性能

我的确说的有点偏激了。

Java 领域内有很多东西,新的,旧的,太多的东西摆在我们面前,这里面还有很多政治的因素,这的确令我们在选择的时候有点盲然的感觉。

技术讨论无所谓偏激,反过来说,不偏激别人可能看不懂你在说什么。

在《设计模式》一书中,将软件分为三类:工具箱API、应用程序和框架软件。

框架主要将可重复使用的系统包装起来,这样适合多个系统反复使用,类似Hibernate、Struts都是框架系统。

我看书不多,就《设计模式》这本反复的读,所以,程序员杂志上次关于“设计模式”约稿时,让我写目前设计模式书籍的书评,我说真没法写,除了《设计模式》我都没读过。

> 技术讨论无所谓偏激,反过来说,不偏激别人可能看不懂你在
> 凳裁础?>

:)

hehe,gutianyang?

本人对EJB体系和技术大概接触了4年多,从1.1到2.0,规范性和实用性的进步有目共睹,虽说感觉2.0在有些方面比如EJB-QL对各种数据库SQL内置函数的实现上等等还有些缺陷,但制定完毕的2.1规范和已经出来的某些厂家的AppServer已经出来了,在性能、开发难易程度和稳定等各方面做的越来越不错了,我还是劝大家不要盲目的抛弃EJB(主要是CMP)而去追逐没有什么规范、看起来有些随意性的东西………… :-) 金玉良言,Robbin不要板砖砸我啊

没有最好的技术,只有最适合的技术。也许CMP最适合你吧。我用CMP做大项目失败过,一旦数据库表关系复杂到一定程度,一旦查询复杂到一定程度,一旦数据量大到一定程度,目前没有哪个App Server上的CMP能够让我觉得容易实现。至于开发难易程度更加不必提起,我写程序唯一不得不用IDE开发工具的就是JBuilder,否则根本做不出来。我不熟悉App Server集群,不知道是否CMP对于集群来说很有用,但是就我个人而言,用CMP对我来说项目风险太高了。

呵呵,robbin兄到很坦率哦。我总感觉JBuilder某些地方做的太傻瓜化了,比如开发EJB,先建个EJB Modual,再用UML 2.0 Designer做各个Bean,在对象比较多的情况下又慢错误又多,实在是不敢恭维。兄弟我推荐你不妨用一下Eclipse等等。

现在我开发的J2EE的一个项目,用的Sun ONE Studio 5 + ONE AppServer 7,因为工具与应用服务器集成的非常好,开发过程非常的舒适,效率奇高。现在已经接近尾声了,总结起来项目开发的整个过程真是完美。

效率奇高,不是说开发效率吧?

如果是运行效率,快是可以理解的,毕竟,APPSERVER有那么多obj的pool,对于oltp来说的确不错。

但开发起来,如果你的表很多,表单比较大,那对程序员来说真是不可想象,set、get还不得写死,用反射?

效率奇高,不是说开发效率吧?

如果是运行效率,快是可以理解的,毕竟,APPSERVER有那么多obj的pool,对于oltp来说的确不错。

但开发起来,如果你的表很多,表单比较大,那对程序员来说真是不可想象,set、get还不得写死,用反射?

从来没有用过Sun ONE Studio 5 + ONE AppServer 7,到也无从评价了,如果真如你所说那样好,那么看来 J2EE的IDE工具和 Visual .net Studio值得一拼了。我用过Weblogic Workshop和Weblogic结合的IDE,那真是令人赞叹不绝。

Eclipse用过,它不支持CMP的GUI开发,只要不是CMP,我的最锋利的武器就是: UltraEdit + Ant,

Eclipse对我来说没用。

当然是开发效率了!30几个表,CMR关系复杂性一般,有几个一对多的关系。CMP基本上自动用工具从DB映射过来的,需要手工填写一些ejbCreate实现,对应EJB-QL的支持上,ejbFind和ejbSelect功能也十分丰富,开发过程简单。另外jar和ear打包过程灵活,自由配置,工具比JB好多了。另外AppServer7的稳定性也无可挑剔,至少我还没碰到什么问题――我用过不少server,象JBoss、WebLogic等,就总是有点麻烦。