讨论一下开源的J2EE Framework,Expresso

Expresso Framework(http://www.jcorporate.com)是一个以Apache Jakarta Struts 为基础的MVC开发框架,提供了O/R Mapping,DBObject,DBConnection Pool,Cache,logging,workflow,Unit Testing,Job等基础实现,是中小项目组的Web开发的理想选择之一,有没有朋友关注?

说一下题外话,个人意见:我还是比较关注使用完整J2EE(使用EJB)的源码,可惜这方面太少了,一些开源在纯Web上走得太远,也许他们已经走远了,无法回头,只好开源了。

四不像的东西!专又不专,标准又不标准,好像是把很多东西硬塞到一起去的,真是污染了struts。真的很怀疑有多少人会用这个东西来实现j2ee??
中小项目的话,用struts + hibernate或者干脆jsp+servlet已经足够了。用不了j2ee framwork吧。毕竟越复杂的framework需要越长的学习周期。

阁下是否熟悉Expresso,有没有花时间研究过它,否则,评论难以让人信服!

你希望使用 Expresso 在什N server 呢 ?
Tomcat ? Resin ? Jboss ? Weblogic ? IBM Websphere ?
那N你的用途是商I用 ? 是自己使用呢 ?

http://www.sys-con.com/java/readerschoice2003/liveupdate.cfm?BType=24

@是 JDJ 今年 2003 的 J2EE Application Development Framework 的排名r

如果我扣除商I用的 framework ,
IBM Websphere / BEA Weblogic / Oracle 9i / CA / Macromedia ...

Opensource j2ee framework 的排名
Expresso 是第一
SOFIA 是第二
realMethods 是第三

他作了一些 connection pooling / caching / work flow / logging 等等的功能
f真的, 我是一公司的技g肴T, 商I的考量下我不褂 expresso,
因楸容^起, websphere 及 weblogic portal framework 的作都h大於他.

如果和 SOFIA 比^, 我J expresso m然比^乾Q,
但是缺少了良好的_l工具, 必在@三x, 我反而o予 SOFIA 一票

最後, Expresso vs realMethods.
realMethods 比 Expresso 差的一c是 MVC Framework,
expresso 是裼 struts 作榛A, opensource 很多人使用就成好|西 ...
但是 realMethods 的 J2EE Design Pattern s比 Expresso 好太多了
今年 6 月, realMethods 才_l他的 source,
大家不妨可以拿他的 sourcecode 硌芯...

如果你已熟悉 struts 了, 那N, Expresso 可以p少你_l哪些部分呢 ?
(1) Connecton Pooling
(2) Caching
(3) XML Processing
(4) Workflow
(5) Login Module
等等s十功能

不^上面有一人也提到了, struts + hibernate 就可以M足 connection pooling / caching 等C制, 至於 xml processing / workflow / login module 等等,
你必先了解他的工作模式, 才能蚴褂盟,
段碚f, 我自己有_l相P的控制框架, 自己_l的, 也比^熟悉,
@是仁智的} ^^~, 你可以u估一下Wrg以及@得的效益 ...
而且你要u估, 他的 Flow Engine, login Module 是否夏泐A期...
如果都是你想要的, 那N, 就花rg去W吧....

至於前面那f expresso 四不像, 我倒不@NJ,
如果f struts 是缺少 model 的 MVC Framework,
o法一下子就喝到咖啡的香淳..

Expresso 就像是F成的饪s咖啡,
可以慢慢品他的庥粝阄..!

有一些书,看到书名就会涌起想买的冲动,而有些书,你看了书名之后再翻翻简介就会摇摇头放下。
我想这个情景对于技术的选择,同样也适用吧?

我没有用过expresso,也没有兴趣用。基于这个我说出expresso是四不象。当然会被
认为未精通expresso者言无谓。

不过请认识到这一点:一个真正精通expresso的人,或者可以说用expresso所有特性实现了一个成功
商业应用的牛人在评价expresso的时候会忘记得他和expresso交往的日日夜夜吗?他对expresso的
褒或贬有多少是离开了这个情感的作用呢?哦,当然不是说牛人的话都是王婆买瓜。只是请用自己
的眼睛去看看那些技术,不要人家一说好就拿来试一试。时间是宝贵的,在你学会了一个并不适合
你的frame的同时,也是失去了认识许多优秀者的时间。

技术不是时尚!那一篇文章(关于software tech fashion的)真真真一语中的!

我来说一下我对expresso的16个组建的看法

一.Database Objects(最不喜欢的):
按照Michael Nash的介绍,这个db objects是一个java bean加上一些CRUDS操作而构成。
他还说可以用一个叫DBMaint的servlet来生成一个可以CRUD一类db objects的HTML。
DataBase Object的优点:
a.Database Independance
晕,如果现在还有那个开源的o/r mapping没有这个特性,可以去自杀了
b.Automatic Connection Handling
同上。。。。。。。
c.Declarative Referential Integrity
就是把商业逻辑嵌入到这个object中,而且是database independance(他自己说得啊:business rules can
be integrated into the database object, so that all applications accessing the object are
assured of following the established rules.)
我怀疑这是一个基于j2ee的frame了
d.Multi-Level Validations
在数据层再来个validations,不知道实现怎么样
e.Avoiding embedded SQL
理由同a,b
f.Security, and much more.
说什么每一次和dataobject的交互是安全的保密的,没什么值得作为优点的地方吧??

二.Caching
按照Michael Nash的介绍,caching用来提高效率和防止out of memory,说这个
caching可以缓存诸如db objects,configuration parameters,没了?
说提供快速查找和加速查用数据操作,实现说是用Vector s(用ArrayList会快一点吧?)和Hashtable s

应该是很简单的设计,不知道效率会真正提高多少?

三.Configuration Values
把分在各层的XML中的配置信息集中管理(应用的,expresso的,数据库的等等)。
Expresso provides various degress of control in both the framework and the applications
既然是一个frame我想这一点算是强制性义务把?但是并没有提供什么与其他frame相比突出的特性啊!

四.Controller Objects
一个struts Action的子类。然后expresso不知廉耻的列出一罗优点,什么MVC,business tier
什么的。无语。。。。。证明struts确实不错啊

五.DB Connection Pooling
^_^! 这个。。。。。一个hibernate + DBCP 比那个加上商务逻辑的database object和这个要清晰,简练
吧?达到的效果没什么区别吧?效率方面我到替expresso担心了。。

六.Email Connectivity
这个应该把一个java mail的封装 用到一个应用中的简称吧?

七.Event Notification,Email Notification
目前基本只是一个报错工具来的。。。

八.Logging
就是一个Log4j,不错哦

九.Registration and Login
可能是expresso中自己实现的最复杂的组件了吧?如果说越大越复杂就是技术含量越高的,这个组件冠
expresso之首无愧。

十.Job Control
threads 的东西,用反射把thread类按照一定时间进行执行。

十一.Health Check
内建的performance测试,错误报告和检测。不知道是不是基于JMX的

十二.Security
强制性义务,没有什么闪光点

十三.Taglibs
struts好的坏的通吃啊

十四.Unit Testing Framework
junit

十五.Workflow and Forms
这个说实话还不错,但是因为没用过,只能说初看上去还好

十六.XML
真的没什么突出的地方啊


上面的16个组件应该是expresso之所以成为expresso的东西了把?
我真找不出有什么吸引我的地方,如果把16各放在一起,加上更加
复杂的配置和控制,学习新的API和流程,学习新的框架结构。
说他四不像不是很过分阿。

各位谁用过的说说他的优点阿!


还有哦,说struts是缺少m的mvc,应该是struts的优势把或者和我对
m的概念不一样,struts就是给与你一个机会,可以让你和无论什么样的
m打交道,ejb可以做struts的m,hibernate可以,jdbc也可以,普通的
servlet也可以阿。

经典的MVC是用在GUI上面的,M表示一个组件的数据,状态。也就是说
M可以用observe pattern直接和V交互,而http是没有办法实现的吧,你总不能
叫数据库自己和客户端的input box交互吧?
而web中的MVC就是web MVC或者MVC2,本来就不存在GUI上面的M阿。