Michael Chen's Blog

World in my view is a word of my view.
随笔 - 74, 评论 - 375 , 引用 - 375

Web框架选型思考

经过漫长的商务折磨,终于确定了自己平台规划负责人的角色,任务非常明确:采用开源技术进行组装,开发一个具备业务含义、能够进行快速开发的软件平台。

现有项目的运行情况让我认识到了一点:在持久层与业务逻辑的相对成熟的情况下,WEB层的工作最为繁重,哪怕是引入了Tiles改善布局也如此。Struts天生的缺陷,让整个项目中WEB层显得笨拙不堪,成为整个系统中bad smell最重的的区域。从软件技术大会回来的同事说,很多同行都认为B/S系统中WEB端的工作量是整个系统的瓶颈。这一点看来已经得到了业界的普遍认可。

而现有的这个平台一定是持续使用的。如果不在WEB开发上进行改善,那么这个平台显得毫无意义:在依托面向对象技术的Java平台下,大部分其它的东西都有现成并且健壮的,对我而言都是熟悉的;而在WEB层,一定要有一个具备重用、珍惜每一个可重用WEB组件的框架在支撑。由于我们这个行业的特殊性,再带宽上也应当有所考虑。

基于这些特征,我首先想到的就是面向组件的WEB框架。这里的组件一定是网页上可见的组件,能够天生穿透Java/Javascript/Html,而不是笨拙的在JSP中import javascript;或者采用不堪的JSP tag. 这么看来,具备这一特征的、成熟的框架只有Tapestry了。

然而我对tapestry还有所保留,原因有两点:一个是对大型系统的支持不足。我们要面临的系统达到十几个子系统,3000多种交易。而Tapestry模块的支持区分不足,这一点上,WebWork来的要自然的多,Struts也提供了支持(我实在是难以出口这个词,虽然Struts将我引入了MVC的门,但是我对其丑陋的设计,臃肿的配置文件充满了憎恶)。

第二是Tapestry难以理解的URL,总让人觉得诡异(刚开始觉得挺有意思),不便于书签。好在有成功的项目证明进行修改是可行的,这个工作量也应该不大。

如果我的AMOWA概念有实现,那么我一定会选择Amowa的实现。因为Amowa中异步的概念刚好满足了系统带宽的要求。Web框架的选择过程让我了解到,组件式的web框架在知识积累上有多么重要。试问一下,我们以前做的WEB应用中,web端有多少能够自如的重用?

纵然Tapestry不尽人意,我还是决定选择Tapestry来作为平台的WEB框架(有人会说Tapestry不便于测试,试问又有多少合理的项目会将业务逻辑写在XXXPage中?),对其进行一些改造是必需的,比起持续使用与知识积累带来的好处,这么点工作量算不了什么。

发表于 2004年12月7日 21:46

评论

# re: Web框架选型思考

我们现在也面临着对 Web 表现层框架的选择问题。

不知你对使用 Tapestry 的学习成本和开发时的方便程度是怎么考虑的?毕竟与 Tapestry 思想类似的 ASP.NET 是有强大的 VS.NET 可视化开发支持的,而 Struts 等传统框架在开发和调试工具方面也占有一定优势。Java Web Component 相对 Struts/WebWork 到底能带来多大优势?还是说根本就只是两个思路而已。
2004/12/9 0:42 | Flier Lu

# re: Web框架选型思考

不同意"Struts开发和调试工具方面占有优势"这种说法。Struts开发工具多数集中在配置文件的管理上,而Struts的配置文件非常讨厌,在多人、大项目时表现尤为突出,结合tiles更加明显。另外,由于前台UI采用JSP+Struts tag, 没有任何HTML编辑器能够派上用场;更要命的是,任何在JSP中写好的东西,换到另外一个项目,积累的知识马上蒸发,得重新开始。

Tapestry在以上几个方面都有不错的表现:纯HTML模板,可以用任何熟悉的HTML编辑器来编写;配置文件基本上不相干;我更看好的是tapestry“面向组件的框架”的概念,可以有效的将知识传递下去。这对于一个平台而言是非常重要的。
2004/12/9 9:57 | Michael Chen

# re: Web框架选型思考

这也是我头疼很久的问题:),web框架的选型目前要考虑的问题确实太多了,Tapestry确实不错,但总感觉培训起来有些费劲,不如WebWork更让人易于理解,表现层虽也是tag-lib,但是由于支持ognl表达式而变的很强大。
Amowa的方式是我特别感兴趣的,这种方式来说客户体验会更好。虽然系统中已经开始使用这种异步方式,但是仍然没有抽象到Amowa所需要的方面:)
2004/12/10 12:49 | 清风

# re: Web框架选型思考

to Michael Chen:

请问“在持久层与业务逻辑的相对成熟”?
是指spring + hibernate 吗?
2004/12/21 16:35 | seeu

# re: Web框架选型思考

Java Web Component 相对 Struts/WebWork 到底能带来多大优势?还是说根本就只是两个思路而已。
这句我同意 ,tapestry 和 webwrok 应该说 根本 是两个方向
我想 应该是两个不同的方面 ,如果有一种 框架
既有webwork 的 较好 , 拦截器 , 脱离 request ,这样的思想
又有对像 tapestry web 表现层 组件化的 能力 ,
如果能够 再加上 asp net 那样的工具支持 ,我想 这就是 终极framework 了
2005/2/28 13:00 | green_girl

# re:Web框架选型思考

^_~,pretty good!
2005/4/20 0:12 | 滤纸

# re:Web框架选型思考

^_~,pretty good!csharpsseeoo
2005/5/18 10:08 | 测厚规

# re:Web框架选型思考

Web框架选型思考ooeess
2005/6/16 0:30 | 一氧化碳测定仪

# re:Web框架选型思考

Web框架选型思考ooeess
2005/7/16 5:50 | 红外热像仪

# re: Web框架选型思考

dbforms用过吗?
这个框架只要配置xml就实现了普通的CRUD操作,但是这个框架本身是模板式的,所以可以写自己的模板jsp文件

既然式模本,必然通用性不是很强;对于业务简单的任务来说,还是一个可以选择的框架
有兴趣
可以访问我的blog
blog.csdn.net/pbnow
2006/3/12 18:22 | pbnow

# re: Web框架选型思考

Its nice to view your blog.Thanks and keep up your good work.
2011/7/20 12:49 | Toronto Criminal Lawyer

# re: Web框架选型思考

Thanks a lot for enjoying this beauty article with me. I am appreciating it very much! Looking forward to another great article. Good luck to the author! all the best!
2011/7/28 12:18 | eulogy

# re: Web框架选型思考

Thanks a lot for enjoying this beauty article with me. I am appreciating it very much! Looking forward to another great article. Good luck to the author! all the best!
2011/7/28 12:21 | eulogy

# re: Web框架选型思考

Interesting post and I really like your take on the issue. I now have a clear idea on what this matter is all about. Thank you so much.
2011/8/18 17:27 | Indian Restaurants

# Chicago Moving Company

This kind shoes are very comfortable wearing. What's more, it have the function to protect knee. At the same time, it is also good for our body shape correction.free online dating.Thanks..
2011/8/20 14:46 | bgt@gmail.com

# re: Web框架选型思考

Thanks for the interesting read. The web is so full of garbage it's becoming difficult to find exactly what you are looking for nowadays. Do you have feed on this site..
2011/8/20 14:47 | Chicago Moving Company

# re: Web框架选型思考

It's hard to imagine being fired by your doctor, especially just before giving birth.
2011/8/20 14:50 | Roofing products

# re: Web框架选型思考

It's hard to imagine being fired by your doctor, especially just before giving birth.
2011/8/20 14:53 | Roofing products

# re: Web框架选型思考

I have been reading your articles during my lunch break, and I have to admit the whole article has been very valuable and very well written.
2011/8/21 4:20 | local moving companies

# re: Web框架选型思考

I was stuck on where to start with or what to include in my letter to the property manager and then I ran into your sample letter and all I had to do was fill in the blanks.
2011/8/29 18:53 | Commercial construction

# re: Web框架选型思考

It seems to be a nice gadget... I am sure that you will improve it, or at least upgrade it.
2011/8/29 18:55 | Gold & Silver Coin Dealers

# re: Web框架选型思考

I just started posting comments for blog and facing problem of lots of rejections. I think your suggestion would be helpful for me. I will let you know if its work for me too.
2011/8/29 18:58 | Silver Bullion Prices

# re: Web框架选型思考

Do you have feed on this site.. . The web is so full of garbage it's becoming difficult to find exactly what you are looking for nowadays.
2011/8/30 2:32 | electric cigarette

# re: Web框架选型思考

个方面都有不错的表现:纯HTML模板,可以用任何熟悉的HTML编辑器来编写;配置文件基本上不相干;我更看好的是tapestry“面向组件的框架”的概念,可以有效的将知识传递下去。这对于一个平台而言是非常重要的。
2011/8/30 19:55 | jeux de casino en ligne

# re: Web框架选型思考

That is really useful. I would like to request if it would be all right if I state some of that on my personal cheap car insurance weblog.

# re: Web框架选型思考

这个框架只要配置xml就实现了普通的CRUD操作,但是这个框架本身是模板式的,所以可以写自己的模板jsp文件
2011/10/7 21:33 | Mail Forwarding

# re: Web框架选型思考

Web框架的选择过程让我了解到,组件式的web框架在知识积累上有多么重要。试问一下,我们以前做的WEB应用中,web端有多少能够自如的重用?
2011/10/11 22:00 | seo

# louis vuitton outlet

很高兴地看到你的博客分享有价值的信
2011/10/15 10:42 | louis vuitton outlet

# re: Web框架选型思考

Nice notes to follow on writing websites, thanks for the post...
2011/10/27 15:43 | retro football shirts

Post Comment

主题  
姓名  
主页
校验码  
内容   
京ICP备 05050892号