"图形化的Struts"——Web开发框架WebPage3
(原作在
www.webpagev.com)
WebPage3是基于组件的、可视化的、轻量级的Web层开发
框架。WebPage3开放组件设计接口,可以
自由开发能在WebPage3中使用的组件,而且开发组件非常简单。WebPage3能大大提高Web层的开发速度。
有人戏称WebPage3为“图形化的Struts”,也有人说是简化版的Struts + 图形化的Tapestry。
WebPage3基于MVC模式,重点解决View的部分,达到可以可视化开发和最大限度的复用。
对整个Web层开发提供全方位的开发帮助,做到:
(1)Web层开发可视化,简单化
(2)Web层开发组件化,重用化
(3)Web层开发通用化,通用功能的封装
(4)开放式框架,结合和集成更多的功能
从而构建简单易用、功能强大、可视化开发、最大限度重用的Web层开发平台,大大提升Web层开发的效率。
WebPage3基于标准技术,有极好的稳定性和可扩展性。主要使用:Java、Jsp、Servlet、Html、Javascript、Xml等技术,
不使用TagLib技术,简单易用。
特色功能
1:基于组件的Web开发框架
2:可视化开发,所见即所得
3:页面和逻辑完全分离
4:开放组件接口,开发新组件非常简单
5:组件基于Java,功能更强大,运行更稳定
6:已有大量常用组件
7:同时支持廋客户端和富客户端
8:支持无刷新数据交换
9:自动生成基本主界面、基本子表界面、基本查询界面、基本列表界面
10:支持多界面组合
技术特点
1:完全B/S结构,简单易用
2:采用MVC模式构建,界面操作和处理逻辑相分离
3:动态的数据类型解析技术
4:动态的界面组装技术
5:页面及时生成技术
6:功能模板动态实例化技术
WebPage3对开发提供哪些帮助
WebPage3对整个Web层开发提供全方位的开发帮助,具体的开发过程请参见《如何选择Web开发框架》 |
1:通过WebPage3的界面设计工具,定义好数据结构后,WebPage3提供自动生成初始化页面。 |
2:然后可以可视化的选择组件,界面的具体表现形式由组件自行提供,WebPage3还提供可视化的布局。 |
3:页面基本表现形式设计好过后,就要具体设计每个组件的属性,WebPage3提供可视化的配置, |
提供访问其他组件的方式。 |
4:对组件数据来源,提供多种方式,目前有:从数据库中取值,从request的参数中取值,从request的 |
属性中取值,从session中取值,从程序运行中取值。 |
5:页面上的权限控制,WebPage3提供可视化的配置,可以指定组件是否显示、是否可修改、是否 |
只读模式、是否被删除等等 |
6:页面取值和页面权限控制也提供编程式控制,可以在程序里面动态的控制页面组件的值,也可以动态 |
控制组件的权限,如:可编辑或是不可编辑。 |
7:页面提交或是页面事件触发,提供客户端事件处理,提供客户端数据检测等的客户端控制 |
8:数据提交到后台,WebPage3提供把数据从request里面封装到任意的数据model的工具,同时根据请求 |
的ActionCommand来选择合适的Action响应。 |
9:逻辑层处理完成后,WebPage3提供统一的控制方式,把数据传递到客户端,并根据逻辑数据,进行 |
客户端事件响应和新的页面展示 |
10:WebPage3还提供预实现的增删改查等功能,包括主子表的操作等,可以辅助进行快速开发。 |
11:WebPage3对应用中需要提示的例外信息,或是操作提示等,提供统一的消息服务,可以通过配置 |
消息文件来改变这些信息。 |
12:WebPage提供通用的数据操作功能,再加上可视化的开发方式,使得WebPage可以从讨论用户需求时 |
开始使用。一边跟用户讨论,一边进行基本页面开发,可以更深入的理解用户需求。由于用户能够直观 |
的看到软件界面,更容易确定和准确提出真实的需求,从而大大减少后期的需求变更。我们的使用经验 |
是需求讨论完毕,基本的程序功能界面就都有了,而且是经过用户确认的。 |
|
|
WebPage3.0的定位、理念、目标
一:WebPage3.0的定位 |
开放的、轻量级、基于组件的Web开发框架 |
解决目前Web开发,尤其是功能页面开发中,出现的问题。目前Web开发方面的问题主要集中在: |
开发工作量大,重复劳动多,开发效率低下、维护困难、页面和逻辑相混杂等。 |
二:WebPage3.0的理念 |
让Web开发更简单、更快捷、更高效 |
三:WebPage3.0的目标 |
成为Web开发框架的主流,为更多的Web应用提供简单、高效的解决方案。 |
四:WebPage3设计的特点 |
1:WebPage3基于MVC模式,但又不死板的报着MVC不放,通过改良和辅助工具类,提供更灵活的架构 |
和更多的开发帮助。 |
2:完全基于组件,开放式框架,框架本身没有任何组件,所有的组件都是按照组件定义的规范来开 |
发,然后加入到框架中使用。这样就使得组件功能可以随意的扩展,而且对组件所使用的技术没有多少 |
限制,所有现在Web层能用的技术都可以在组件里面使用。也就是WebPage3框架找组件,然后组件自运 |
行。这使得WebPage3具有更强的生命力,可以兼容已有的技术积累,也能使用最新的开发技术。 |
3:WebPage3对Web开发的客户端和服务端都提供相应的帮助,全方位的为Web层开发的各个环节 |
提供帮助 |
4:关于可视化设计器,目前是基于IE来开发的,它只是用来加快开发的速度。事实上,完全可以 |
手工的配置WebPage3框架所需要的资源,当然,也可以开发Swing版的IDE。 |
WebPage3.0与JSF、TapeStry的异同和优势
基于组件的Web开发框架,是下一代Web开发框架的主流,目前国际上有名的基于组件的Web开发框架 |
有JSF和TapeStry。 |
WebPage3.0也是基于组件的可视化Web开发框架,所以这里重点比较一下与JSF和TapeStry的异同, |
主要从技术实现上面进行比较: |
比较项
|
JSF
|
TapeStry4
|
WebPage3.0
|
结论
|
页面开发
|
TagLib标签技术
|
Html+TapeStry属性
|
纯粹的Html
|
WebPage3.0更简单,更通用,更容易与美工等结合
|
Java编程模型
|
在JSF应用中没有页面定义文件,它只有一个全局的配置文件,命名为:faces-config.xml,里面通常都定义了一堆"managed beans"。这些managed beans都是带有属性和事件监听器的定义良好的java bean。在faces-config.xml中定义的后端bean都有三个参数:一个标识符、一个java类名、一个bean的生存周期,生存周期可以是request、session、application中的一种。
|
主要是三个部分:用于显示的页面模板(一般就是html),带有相关属性和方法的java类,用于定义页面模板上的控制元素和java类的关系的页面定义文件
|
分做服务端和客户端,在服务端主要是三个部分:用于显示的页面模板(纯粹的Html,可视化开发,不需要手工写)、页面数据模型定义(自动生成,不需要手工写)、页面事件响应Action类(如果使用自动数据处理,不需要写。否则相当于Struts中的Action,自行写处理代码)
在客户端:每个页面对应的script文件
|
WebPage3.0的编程模型更全面,考虑到Web开发的特殊性和实现的合理性,全面考虑,提供客户端模型和服务端模型。
在服务端模型结合了多种框架的优点,同时还提供了一些通用的功能实现,为快速开发提供帮助。
|
请求生命周期控制
|
单一的生命周期模型
|
生命周期依赖于调用的引擎服务,同时可以自己定制生命周期
|
同TapeStry4
|
WebPage3和TapeStry4的生命周期控制更灵活
|
页面导航
|
必须同时利用代码和配置文件来控制页面跳转流程
|
页面跳转逻辑定义在代码中,而不是写在配置文件中
|
页面跳转逻辑定义在页面组件的属性中或者在代码中
|
页面跳转逻辑是跟逻辑结果相关的,WebPage3的实现方式能更好的兼顾配置和代码定义的实现
|
易用性
|
十分困难
|
困难
|
十分简单
|
WebPage3.0的易用性是最好的
|
学习曲线
|
高
|
较高
|
十分低
|
WebPage3.0只需要基本的Java开发和基本的Javascript和基本的Html技术即可。一个Web开发人员1-2天内即可以掌握
|
与其它技术的包容性(如结合AJAX)
|
十分困难
|
困难
|
十分简单
|
WebPage3.0是一个纯粹的组件框架,对组件的技术实现限定非常小,通常只需要实现一个抽象父类即可,其它技术任意加
|
对已有资源的利用上(如:每个公司在多年的开发中已经有了很多的实现积累,想要把他们包装成组件进行使用)
|
没有好办法,基本上需要重新按照JSF的框架重新做
|
没有好办法,基本上需要重新按照TapeStry的框架重新做
|
非常容易,可以很简单的包装成一个可在WebPage3.0中使用的组件
|
WebPage3.0充分考虑到与已有实现的结合,能够有效保护已有的知识积累
|
技术支持
|
困难
|
十分困难
|
容易
|
WebPage3.0的开发团队可以随时为您提供技术指导、技术资源、技术培训、技术服务
|
|
|
|