`
netfly
  • 浏览: 114615 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

web framework选型的困惑

    博客分类:
  • web
阅读更多
困惑的来由:
一直在用struts开发,虽然对struts进行了封装和改进,并使用其动态formbean,但是,还是有狂多的配置文件,狂多的jsp,狂多的action,太多的机械性重复,页面不可以复用,action也不可以复用,我受够了。
以前在C/S结构里,一个界面可以完成许多按钮动作,但是现在,却不得不一个按钮对应一个动作、一个界面,真是折腾人。

所以,我决定做出改变,从而提出理想的web framework的两个基本标准:
其一:组件化,能抽象出几个form,比如单记录form,主从记录form,查询form等
其二:异步处理,天然的异步交换,拒绝不停的刷新页面。

按第一个标准,就只有jsf和Tapestry可以选择,按第二个标准,就没有了。

后来考虑用dwr+qooxdoo+freemark,但是去网上一搜,发现大家都用得灰心丧气的,不但没有减轻开发,反而增加了很多麻烦。听说gwt不错,一看到它是从服务器端生成js代码,类似RPC之类的调用,我就没兴趣了。

想来想去,又回到mvc,在struts 2和webwork之间逗来逗去,struts 2要实现0配置还需要一段时间,要实现类似jsf和Tapestry那种组件化的计划都没有。

唉,我都不知道该如何办才好。
分享到:
评论
39 楼 zzsczz 2007-01-08  
0 jsp
标签库 资源多多啊;可以预编译;wtp对jsp的编辑支持不错;不使用预编译就可以热部署,但第一次编译花时间多多。


属于一次编写处处调试的;如果没设计工具支持而且一个人做就很痛苦;就算有美工,美工也很痛苦。


1 struts 1 +  tiles
这个是标杆。如果单干的话 view换成velocity会提高开发效率,像坛子里说的velocity指令和脚本写入html注释可以用可视化HTML工具编辑vm模板。


2 webwork2 + sitemesh
比上一个要进步,减少很多累赘比如actionform。测试简单。以后改名成struts 2。


webwork和struts需要xdoclet 生成配置文件来提高开发效率、减少出错机会。



3 tapestry
我正在玩版本4。组件式开发。使用组件非常简单。设计组件就要深入研究
除了文档数量,一切都满意
至于单元测试和javascript嘛,组件使用者不必管。
38 楼 ahuaxuan 2007-01-08  
这个智能化的action servlet我确实不太清楚,如果你很清楚的话不防写出来大家共享一下,我也想看看能智能到什么程度,现在一点概念也没有,ror一点都没有看过
37 楼 netfly 2007-01-07  
引用
action和service的职责是不一样的,怎么能混为一谈呢,action主要是负责控制,service是业务计算的地方,应该分开的

理解错了,或者是我表达错了,action主要是负责控制,service是负责业务,这个我清楚。
控制器有一个智能化的action servlet就够了,至于请求前从哪里来,请求后到哪里去,不必要用一个一个的action去做,能象RoR那样智能处理就行了。那么多个action,每个action都很简单的,完全可以抽象处理,用一个通用的东西处理掉,而不是什么继承dispatchAction,去一次又一次做请求前从哪里来,请求后到哪里去的重复工作。
struts 2.0.2已经开始解决这个问题了,这个我更清楚。
36 楼 ahuaxuan 2007-01-07  
action和service的职责是不一样的,怎么能混为一谈呢,action主要是负责控制,service是业务计算的地方,应该分开的
35 楼 netfly 2007-01-07  
引用
不同意这一个种说法;
如果让你页面直接调用业务层的东西,你乐意吗?也不太清楚netfly自身是怎样看待MVC的..

有个智能的actionServlet做control就行了,没必要写那么多没有什么作用的actoin,几乎是service方法的拷贝。
34 楼 lighter 2007-01-07  
netfly 写道

因为具体的service方法已经能处理各种具体的业务了,struts硬生生的加入了n多个action,去调用相关service方法,而实际应用中几乎所有的业务逻辑都用service实现,action还有什么用?

不同意这一个种说法;
如果让你页面直接调用业务层的东西,你乐意吗?也不太清楚netfly自身是怎样看待MVC的..
33 楼 netfly 2007-01-07  
引用
现在可以使用lazyform了,1。2。7之后的版本都是可以使用的,这样可以少配置点struts-config文件了,而且页面元素改了也不需要改struts-config,而action的重用需要继承dispatchAction,页面的重用可以使用tiles和sitemesh,这些都不是问题哦

因为具体的service方法已经能处理各种具体的业务了,struts硬生生的加入了n多个action,去调用相关service方法,而实际应用中几乎所有的业务逻辑都用service实现,action还有什么用?我看了springside对ation的封装,感觉应用起来还是需要写大量的ation,毕竟具体的业务不是简单的CRUD。
tiles和sitemesh就是把页面像瓷瓦一样拼起来,tiles是一个页面一个页面地配置,sitemesh可以一次配置一大堆。而我想,更好的方式是采用动态生成页面,整个系统的页面可以根据模板动态生成,这样才能真正达到简化重复工作的效果。
32 楼 ahuaxuan 2007-01-07  
引用
netfly 写道
困惑的来由:
一直在用struts开发,虽然对struts进行了封装和改进,并使用其动态formbean,但是,还是有狂多的配置文件,狂多的jsp,狂多的action,太多的机械性重复,页面不可以复用,action也不可以复用,我受够了。



现在可以使用lazyform了,1。2。7之后的版本都是可以使用的,这样可以少配置点struts-config文件了,而且页面元素改了也不需要改struts-config,而action的重用需要继承dispatchAction,页面的重用可以使用tiles和sitemesh,这些都不是问题哦
31 楼 CosmicWind 2007-01-07  
netfly 写道
困惑的来由:
一直在用struts开发,虽然对struts进行了封装和改进,并使用其动态formbean,但是,还是有狂多的配置文件,狂多的jsp,狂多的action,太多的机械性重复,页面不可以复用,action也不可以复用,我受够了。

对于Struts里的jsp不能复用问题,我觉得Struts里的tiles应该可以解决复用的问题吧。
30 楼 netfly 2007-01-06  
引用
其实你的framework需求也一样,明明是最基本的桌面应用,可大家偏要在WEB下实现,好了,您慢慢来吧,
我相信总有一天会做好的。只不过,还请大家不要一条路跑到底,有时间,也抬头看一下,看一看GOOGLE EARTH是如何实现的,再想想MS的SMART CLIENT的概念。

哈哈,说中要害了,我的两个标准就是目前web开发面临的困境,谁能完全的满足这两个标准,谁就能成为下一代web开发的王者。GOOGLE EARTH和gmail我都看过,的确很棒,只是用来做企业管理系统的开发,心中没底。
手机就不同了,那些技术都很成熟了,而且我的要求实现不难,相信大部分人也都有我这种需求,关键还是需求分析没有做到位。
29 楼 rtdb 2007-01-06  
netfly 写道
这世界到底怎么了!
mp3?我有专门的mp3,要它干嘛?
拍照?我有DV,呵呵,手机拍照,效果惨不忍睹,能跟DV比吗?
游戏?pc、node我都有,换xbox倒有点兴趣,在手机上玩游戏,太小儿科了。

可是我去市场上一问,发现能满足我这三个基本功能几乎没有,哦,天哪,这些手机厂商都干什么去了?最基本的功能都做不好?

可现实就是这样,我选个web framework,也就两条标准,没想到也那么难找!


手机的原因很简单,手机人手需要一个,可是同时再拿个MP3,DV和GAMEBOY就太夸张了,所以集成是必然之路,也是手机厂商的突破方向。按这个方向发展,过两年MP3和DC的市场还真不乐观,完全有可能被手机通吃了,就象收音机和BP机一样。

其实你的framework需求也一样,明明是最基本的桌面应用,可大家偏要在WEB下实现,好了,您慢慢来吧,
我相信总有一天会做好的。只不过,还请大家不要一条路跑到底,有时间,也抬头看一下,看一看GOOGLE EARTH是如何实现的,再想想MS的SMART CLIENT的概念。
28 楼 wl95421 2007-01-06  

以手机为例,不是没有做需求,而是说对于大部分人而言,这些功能并不重要,不必为此花钱,对于95%的人,如果让他们为使用不到的功能付出双倍的价钱,手机市场可能就让位给其它厂家了!所以说他们不是没有做需求,而是有需求定位,象你的手机要求,一个PDA手机就满足了,所以PDA手机是你的需求。象philps的手机,待机时间很长,但是在同等价位时,它的功能就少一些,因为它的定位不一样。

所以Web Framework也是一样,只不过它的重点不是功能,而是扩展性,毕竟手机不容易扩展,而程序相对容易。

所以选择Web Framework有两点:一是易用性,也就是它的学习曲线;二是它的扩展性。
个人浅见。
27 楼 netfly 2007-01-06  
衷心感谢各位的指点,让我看清楚了方向,我先试试Wicket。
26 楼 netfly 2007-01-06  
wl95421 写道
不是没有框架可选
而是因为可选的太多

象Wicket,Tapestry,Echo2都可以满足要求
只不过就看个人的喜好了

就象手机一样
你要的功能其实许多手机厂商都有
只不过要看你怎么选择了还有价钱的问题了


绝大多数手机只能说实现了我的部分基本要求,比如有自动关机但没有自动开机,有分时段闹钟却还要人工干预一下。

web framework也一样,绝大多数都只能满足其中一点。

真是搞不懂,这些都是最基本的需求呀,在设计之前就应该解决的问题呀,为什么会有那么多的产品都无法做到,真不知道那些需求分析是怎么做出来的?
25 楼 wl95421 2007-01-06  
我仍然推荐Wicket而不是ROR
可能是因为我个人的偏见,我觉得ROR的生命力不会很强
对于一般的系统可能很好用,但是如果深入一些内容,可能会有些力不从心

一家之言
24 楼 netfly 2007-01-05  
lighter 写道
netfly 写道

可现实就是这样,我选个web framework,也就两条标准,没想到也那么难找!

不知道你是为负责的项目选框架啊,还是自己想选定一个框架当作学习东搞西搞一点东西出来?
如果是后者,我自己的话会选择RoR。

我负责的项目已经ok了,是典型的SSI(ibatis),开发中发现struts太多的不足,甚至是bug,所以想为未来的项目先做个规划,RoR,下一个计划就是它了!
23 楼 wl95421 2007-01-05  
不是没有框架可选
而是因为可选的太多

象Wicket,Tapestry,Echo2都可以满足要求
只不过就看个人的喜好了

就象手机一样
你要的功能其实许多手机厂商都有
只不过要看你怎么选择了还有价钱的问题了
22 楼 lighter 2007-01-05  
netfly 写道

可现实就是这样,我选个web framework,也就两条标准,没想到也那么难找!

不知道你是为负责的项目选框架啊,还是自己想选定一个框架当作学习东搞西搞一点东西出来?
如果是后者,我自己的话会选择RoR。
21 楼 netfly 2007-01-05  
这世界到底怎么了!
手机服务6年了,该换了,于是我确立了买手机的三个基本标准:
1.自动开机、自动关机,我太懒,经常忘记了开关机,所以希望新手机能自己照顾好自己;
2.智能闹钟,上班时间和周末能设不同时间段,把自己从睡梦中给闹起来,当然,闹完也不要管,第二天会接着闹。
3.待机时间要长,我的电话不多不少,一个月充一次最好了,但至少得一个星期吧。

mp3?我有专门的mp3,要它干嘛?
拍照?我有DV,呵呵,手机拍照,效果惨不忍睹,能跟DV比吗?
游戏?pc、node我都有,换xbox倒有点兴趣,在手机上玩游戏,太小儿科了。

可是我去市场上一问,发现能满足我这三个基本功能几乎没有,哦,天哪,这些手机厂商都干什么去了?最基本的功能都做不好?

可现实就是这样,我选个web framework,也就两条标准,没想到也那么难找!
20 楼 karna 2007-01-05  
<p>自己写一个,想怎么爽就怎么爽</p>

相关推荐

    webframework

    在IT领域,"Web框架"(Web Framework)是开发者用于构建Web应用程序的一种软件框架。它提供了一种结构化的、高效的方式来组织和编写代码,以简化Web应用的开发过程。Web框架通常包括一系列工具、库和约定,能够帮助...

    Web Framework

    web framework, 网页设计, 网站建设,网络架构

    Extensible web attack framework

    乌云内部渗透测试工具Extensible web attack framework

    WebNMS FRAMEWORK 4.7-5.2补丁

    WebNMS Framework是一款强大的网络管理软件开发框架,主要用于构建企业级的网络监控和管理系统。它由AdventNet公司(现为Zoho Corporation的一部分)开发,提供了丰富的API和工具,使得开发者能够快速创建针对各种...

    Entity Framework 4.0 and Web Forms

    Entity Framework 4.0和*** Web Forms是微软公司推出的用于构建Web应用程序的技术,这本书主要讲述了如何使用Entity Framework 4.0在*** Web Forms应用程序中实现数据的显示和编辑。 Entity Framework是微软的.NET...

    org.springframework.web.jar

    在Java的Web开发领域,Spring框架是不可或缺的重要工具,其中`org.springframework.web.jar`文件是Spring框架的核心组成部分,主要用于处理Web应用程序的相关功能。这个JAR(Java Archive)文件包含了Spring Web模块...

    ExpressWeb Framework 1.6.1 <img src="/images/sunny.gif" alig

    《ExpressWeb Framework 1.6.1:构建高效网络应用的基石》 ExpressWeb Framework 1.6.1 是一款专为开发人员设计的高效、轻量级的Web应用程序框架,它提供了强大的功能和易用性,使得构建复杂的网络应用程序变得更为...

    web framework desc

    web framework desc, spring & spring MVC & hibernate & mybatis

    org.springframework.web的jar包.zip

    在本篇文章中,我们将深入探讨`org.springframework.web`包中的关键概念,特别是`ServerEndpointExporter`类在WebSocket服务器端点中的作用。 首先,让我们了解`org.springframework.web`包的基本构成。这个包主要...

    seven web framework in seven weeks

    Whether you need a new tool or just inspiration, Seven Web Frameworks in Seven Weeks explores modern options,...Seven Web Frameworks will influence your work, no matter which framework you currently use.

    基于.net Framework471搭建的WebAPI简单框架配套demo

    通过带着读者手写WebApi框架,了解 WebApi核心原理。在过程中会摘取整体框架中的核心逻辑,简化代码实现过程,了解Autofac+SQLSugar+Swagger-UI+EF的魅力所在,让读者爱上.net的框架。进而对.net的DDD设计模式有想更...

    Uliweb 快速易用的Python Web Framework

    Uliweb 快速易用的Python Web Framework

    autotest.web.framework-1.0.1-20160105

    autotest.web.framework-1.0.1-20160105

    phoenix.webui.framework, 基于WebDriver的WebUI自动化测试框架.zip

    "phoenix.webui.framework"是一个基于WebDriver的Web用户界面(WebUI)自动化测试框架,它为开发者和测试工程师提供了一套高效、稳定的自动化测试解决方案。这个框架的核心是使用WebDriver,这是一个跨浏览器的测试...

    autotest.web.framework-1.0.1-20160114

    autotest.web.framework-1.0.1-20160114

    spring-web-2.5.jar

    META-INF/MANIFEST.MF META-INF/license.txt org.springframework.remoting.caucho.BurlapClientInterceptor.class org.springframework....org/springframework/web/util/HtmlCharacterEntityReferences.properties

    A Simple Web Framework Extension For ThinkPHP With Workerman

    A Simple Web Framework Extension For ThinkPHP With Workerman

    开源项目-smallnest-go-web-framework-benchmark.zip

    在这个背景下,开源项目"smallnest-go-web-framework-benchmark"应运而生,它提供了一个对Go语言Web框架进行基准测试的工具集,旨在帮助开发者更好地了解各个框架的性能表现。 "smallnest-go-web-framework-...

    org.springframework.web.struts-3.1.0.M2.jar

    《Spring与Struts整合——基于org.springframework.web.struts-3.1.0.M2.jar的实践探索》 在Java Web开发领域,Spring框架以其强大的依赖注入和面向切面编程能力,以及丰富的模块支持,成为了广大开发者青睐的框架...

Global site tag (gtag.js) - Google Analytics