banq
2008-05-29 18:06
>Webwork2的精髓在于TypeConverter、Ognl、极具扩展性的插件机制、UI模板

这些精髓有几个是拿得上桌面的呢?Struts1.x的简单Ognl就够用了,Ognl太复杂就有SQL脚本之嫌疑,难于理解和维护,强大Ognl在TapestryN多年前早就为其特点,而且和Tapestry的事件触发结合,非常完美,所以Tapestry非常适合做工作流软件,从Struts2的努力中看出它也想从中分一杯羹。

我向来重视扩展性,就拿“极具扩展性的插件机制”,真是因为“极具”就是过分了,有人提出扩展性两面性讨论,其实也反应了设计过度的问题:

http://www.jdon.com/jivejdon/thread/34128.html

在表现层我们需要什么扩展性,我同意楼上"发展方向应该是UI逻辑和数据分离,browser端使用RIA实现UI,而Server端只提供数据和业务逻辑"观点,但是这个观点和Struts2提供的这个扩展性是背道而驰的,Struts2作为服务器端的一个表现层框架,要那么复杂做啥呢?

其实我们就需要MVC将UI逻辑和数据分离即可,剩余的我们都是基于html在browser端实现即可,这些都和你服务器端表现层极具扩展性的插件没有关系或者关系不太大。

看看Struts2中那么plugin.jar,好像可以把全世界表现层技术都纳入其中,越是这样,我就越反感它,就像楼上看到我谈Jdon框架就反感一样。我的经验告诉我只能相信专业状元,而不是所谓全才状元。

再看看Struts2复杂的引入拦截器Inteceptor这样AOP,AOP在业务层做做还可以,表现层本来就有一个ServletFilter已经能够应付大多数拦截器任务,如果使用者在表现层实现拦截器,我看是诚心鼓动用户把开发重点放在表现层,而不是业务层。

>事件驱动的UI组件应该在Browser端实现而不是被JSF包装起来搞的性能极差。

事件驱动是一个方向,至于是象JSF那样包装起来,还是使用AJAX都值得试验,可能后者更适合一些,这些都是次要的,关键是:如果我们的界面不实现事件驱动,我们的Browser就不可能完全替代专有语言开发的胖客户端,你看看J2ME+Polish的客户端开发起来多么方便,一个Form继承以后,只要实现事件激发的commandAction,各种命令只要放入这个UI container就可以,其余界面展现只要用CSS实现就可以,这才是高效率的表现层技术啊. 我相信将来在B/S结构中会出现这样好的事件驱动框架.

[该贴被banq于2008-05-29 18:09修改过]

[该贴被banq于2008-05-29 21:36修改过]

cscs31
2008-05-30 09:40
我来说说我的看法,我觉得一种技术或者框架的存在都是有其意义的,如果没有意义,那么设计者也许就不会设计出来了,都是包含一些设计者的思想的,当然不排除占领市场的想法。

所以我对所有框架和产品都是抱着一种学习和借鉴的态度吧,我觉得实用是最重要的,再好的框架也需要我们做实际系统的时候做封装做二次开发,才能用,当然在架构的层面可能要考虑的事情更多了,我现在可能还看不到那么多。

jiyanliang
2008-05-30 10:19
struts2使我彻底的从get set中解放出来。

suzhj
2008-05-30 15:59
所有的框架都想从对手那里分一杯羹吧!

极具扩展性的插件机制,对我来说是很有必要的,是很适度的设计。

"发展方向应该是UI逻辑和数据分离"这并不是说现阶段完全能实现,目前最佳实践是不同的表现形式使用不同的表现层Result,比如我想要html那就返回html的Result,想要json/xml/pdf/exl/report/img/txt/word等等都可以。目前的Browser端功能限制还是很大,所以还是需要Server端做些事情的。所以这方面提供良好的扩展性是非常好的,而且并不复杂。Struts2在这方面是状元,而且它并不试图实现所有的技术,只是提供良好的扩展性来更容易的包容更多的技术。

Struts2引入拦截器Inteceptor这样AOP,上面说过这是历史原因,开始没有现成的优秀易用的AOP框架,现在当然是完全可以使用Spring来替代的。表现层也是需要拦截器的,Filter与Inteceptor拦截的目标不同,用户当然可以根据情况选择使用哪个。

事件驱动是一个方向,我很赞同。但JSF、Tapestry的方式还有待商榷吧,至少现在我不认同,要是10来年前出现那是非常好的。

freebox
2008-05-30 20:37
一个框架应该只做好它应该做的事,弄个拦截机制放在view实在感觉不出有什么好。

struts1本身立足于MVC,提交一个表单动作,并不把web组件放在一个高度去处理,这点和JSF就不同了,JSF纯粹就是view层次的。

如果struts1能够再简化些(formBean,action-execute(...)),配置再少点,不要弄太多的webwork那套机制,应该会更好吧。

猜你喜欢
7Go 上一页 1 2 3 4 5 6 ... 7 下一页