08年初开始接触Zkoss框架,到如今6年多的时间,不但本团队产品彻底转型到Zkoss平台,而且推荐给数家公司,都已将前端展现替换为该框架,开发效率提升至少2倍以上,并且对于Web系统的设计,代码规整有着很大的帮助。 前端
框架官网http://www.zkoss.org 后端
注:zkoss官网上的例子都是标签式开发,此种方式咱们未选用,咱们使用的是后端类Swing开发方式。 服务器
市面上相似的框架有很多,彻底使用服务器端语言开发,自动生成前端代码。
Java有表明性的包括:zkoss,vaadin ...
Php的有proda...
以上均可以再Web开发过程当中使用服务器端语言作到组件装配,事件驱动。以前公司产品使用ExtJs+PHP开发,用了3,4年,虽然组件很是丰富,可是新人上手周期较长,调试繁琐,而且本人很是不喜欢js代码的调试,用firebug之类的跟踪也不爽,后来自行仿照proda的开发方式,实现了一套相似的平台,只不过前端仍是基于Extjs,随着产品日趋复杂,客户化开发的需求的增多,平台的维护完善成本也在增长,所以尝试寻找一种现成完善的同类开发框架,在对N种框架尝试了预研性开发后,最终选定了Zkoss,实践证实,Zkoss框架很是不错。 框架
当时选型的目标彻底抛开语言限制,我的认为语言只是最基础的工具,无需拘泥。主要考虑:
1). 开发方式
2). 开发效率
3). 运行效率
4). 测试方式(自动化测试)
5). 部署方式(集群)
6). 框架扩展性(自行实现所需组件,自定义框架样式风格)
Zkoss基本都知足,Vaadin在美观程度上比较突出,可是事件驱动方式有点另类,Zkoss彻底是Swing的开发方式。 工具
产品开发框架转型后,主要达到了如下目标
1). 模块开发无需考虑前台界面绘制,专一于逻辑实现
2). 代码开发规整统一
开发仅使用Java语言沿用Swing界面开发方式
先后端代码无交织融合使用
全部模块代码封闭,客开彻底使用继承重载方式
3). 下降层级模块间的耦合性
按级别、分粒度继承封装
主要使用基于组件的开发方式,MVC为辅助
模块开发采用服务装配的方式
4). 人员分层次按平台功能开发
5). 下降客开人员开发调试难度 测试
具体的范例,演示,文档在此再也不细说,参见zkoss官网。 spa
下面附上开发风格代码: 设计