XJawa. The Ajax Software Saloon
  在线人数:  其中会员:  访问总人次:
会员总数:  今日注册:  注册  站内短信
[]!  更新信息  注销


当前位置: 首页 7wxAop开发框架 | 7wxAop 应用 | XJawa原创观点 | Ajax深入技术 | Ajax新闻(实验栏目,不再更新) | 7wxAop成功项目
简介

  是一个通用的JavaWeb应用开发框架,核心代码开发于2001-2002年间,最初也叫“中客户”模型(意为介于胖客户和瘦客户之间,参见早期理论文档《中客户WEB应用程序总体模型(2001)》,从中可以看出本框架的最初构想,个人认为该文档对富客户端的理论阐述不差于2005年初Jesse James Garrett对Ajax的阐述)。

  远在Ajax概念被普遍接受之前,7wxAop已经系统地归纳出一整套开发“非整页刷新的强交互Web应用程序”的方法论和实现模式,从最原始的7wxAop应用一直到2005年,7wxAop一直不使用任何JSP、Velocity等服务器端模板技术,所有界面全是静态的.html,动态数据全基于Ajax模式的异步获取和前台Render,可以说是最纯粹的Ajax应用。

  与目前绝大多数Ajax工具仅侧重于表现层,以“改善用户体验”为主要目标相比,7wxAop早已超越该目标,更看重的是Ajax模式下的整体应用架构,其中包括与传统Web应用大不相同的后端服务构造、编程模式、安全性、可调试性、需求分析方法、开发管理、运行管理等等,这些都源于对HTTP应用的深刻理解。

  7wxAop倡导的是Model/View模式的两层开发(不算数据层),在7wxAop中,控制层是隐含的,也不存在任何讨厌烦琐的配置XML。

  7wxAop看到,面向对象编程与RDBMS之间存在严重的不匹配。7wxAop认为,要么业务实体本身没有状态需要持久化,就像各种界面组件、Web浏览器程序;要么业务实体不依赖于RDBMS能解决自身状态的持久存储问题,就像Photoshop、Office等桌面应用,否则不要想方设法把业务实体设计成实体对象,再想方设法保证实体对象与RDBMS的一致性。7wxAop认为这种被称为OR Maping的努力是混杂的、低效的、徒劳的,再怎么发展也是没有前途的。7wxAop发现,与丑陋的EJBQL/HQL相比,被世人遗忘的SQLJ其实更有借鉴潜质,于是7wxAop将Http的Request、Response引入SQL其改造成SQLHTTP(框架中称为AutoSQL),简洁高效地在浏览器UI和DB之间建立了直通桥梁

  7wxAop还看到,基于Ajax的数据库应用中,HTTP Request是对业务代码的天然切割。观察此前各种结构的程序,在界面层有窗体之间的天然切割,在数据库层有表之间的天然切割,而在业务层不存在任何这种天然切割,所以我们要费劲地使用结构化方法或面向对象方法将业务代码进行切割,其本质目的是不让代码成为铁板一块,难于开发和维护。看到这一点,我们会发现Web应用其实应该比以往任何其他结构的程序都容易设计。7wxAop将Request抽象成Action,所有代码围绕Action编写,称为面向动作编程Action Orient Programming(简称Action OP)。

  基于上面的两点,7wxAop将Model层设计成以Http Request为基础的Actions集合,而Action 就是Action,不再分业务层、DAO、POJO...,因为一方面Action本身代码粒度适中(即一个Action的代码不会太多),另一方面绝大多数Action之间没有逻辑关系,代码之间自然解偶。在7wxAop中,Action本质上是无状态的,是UI层与DB层之间的简单桥梁;而SQL语句逻辑上也是无状态的,是用户与DB之间的桥梁,因此7wxAop设计了AutoAction/AutoSQL来支持数据库业务逻辑开发。

  7wxAop中,还有其他几项原创性技术,你可以在技术文档和代码中看到。就像中客户理论比Ajax理论早四年提出一样,7wxAop框架中的技术元素也要比你目前看到的其他Ajax框架要前卫不少,如果你想预先看到两三年内Ajax和RIA领域会有哪些进展,不防参考一下7wxAop。

  对于开发工作来说,7wxAop基于Action 的Model模型是健壮的、代码简洁的、易于开发+维护+测试的、程序员的工作量是可测量的、系统的复杂度是是易于评估的、给用户的项目报价是有谱的、开发进度是可控的、系统分析人员是不用占卜的、项目管理人员是不会两眼摸黑的、老板是不用发脾气的、客户是不会骂娘的,当然,信不信是由你的。

7wxAop是一个Ajax开发框架
7wxAop是一个MVnoC开发框架
7wxAop有自己的持久化模型(可选)
7wxAop有自己的安全(权限管理)模型(可选)
7wxAop内嵌应用服务器和数据库服务器(可选)
7wxAop内含基于Web的数据库管理工具、文件管理器
7wxAop带一个CMS系统和一个BBS(可选)

  • 7wxAop是一个Ajax开发框架

    • 7wxAop运行模型图,数据交换有点像JSON,但更简单,格式更自由

    • 7wxAop有一组自己的前端UI控件,称为“7WX”组件,组件可与Javascript结构数据绑定。

TabStrip 不依赖于图片,颜色、字体、字号、显示间距等等都可调

TreeView 可无刷新地动态加载下级子节点、动态加载子树,动态更新节点、动态删除节点,支持选择框、事件回调、上下文菜单

ListView 基于数据块绑定,支持点击标题排序、自动翻页处理,显示样式可自由定义

ProgressBar 支持耗时操作的进程显示,对multipart/form-data类型(即含文件上传表单)的提交,自动支持进程显示

 

  • 7wxAop是一个MVnoC开发框架

    • 相比Struts之类的MVC,更像一个WebService的架构

7wxAop的后端程序中,Controller不需要负责页面导航,其化功能完全被框架本身实现,用户程序看不到Controller,而只需实现Model 。7wxAop的Model以“面向动作Action Orient”的思路编程,简称“AOP”,与“面象对象”思维不同,AOP本质上是面向请求Request面向服务Service面向过程Process的,非常类似WebService的SOA模型。7wxAop的Model编程非常简洁,一个应用对应一个Java类,其中包含多个Action方法。

 

  • 7wxAop有自己的持久化模型(可选)

    • 7wxAop推荐持久化操作直接在Model中实现,持久化模型AutoSQL

AutoSQL是一个SQL Mapping,有点像iBATIS,但开发历史更早(2001),功能也比iBATIS要强很多,实现了批量更新、数据翻页、域值转换等等Web应用的实际需求,在现实的数据库应用中,绝大部分Action服务只需要编写AutoSQL,不用一行Java代码。

iBATIS

AutoSQL

 

  • 7wxAop有自己的安全(权限管理)模型(可选)

    • 7wxAop设计了可配置的安全模型,权限可授预人,也可授予角色;可实现对象级的授权,树形结构的对象,还支持权限继承。

对象级的授权:即不但可以授予某人(或角色)某个操作功能,还可以指定只对哪些数据条目。


  • 7wxAop内嵌应用服务器和数据库服务器(可选),可独立运行,适合开发软件产品

    • 基于7wxAop应用可以部署在符合标准的J2EE容器中,也可以独立运行,框架内嵌 Jetty 服务器。

对于不是特别特别关键的应用,7wxAop不建议采用重量级的应用服务器,采购和维护成本实在太高,没有必要。
另外纯Java的HSQLDB数据库,经过本人的长期使用,证明是十分可靠的:对于数据条目在100万以下,存储容量在1G以内的数据库,只要合理设计使用,完全可以胜任,而且性能优越。

  

 

  • 7wxAop内含基于Web的数据库管理工具、文件管理器,可用于系统远程维护

    • 远程数据库管理工具DBView,基于7wxAop开发

开发和维护数据库应用,都需要一个能浏览表、视图和数据的工具,但一般的DB客户端控制台或者PB,都只能在本地桌面使用,由于端口及安全的原因,对已经部署在远程的服务器无能为力。DBView使用常规WWW端口,可在远程直接管理应用服务器所在域的所有数据库。DBView 目前支持 DB2,Oracle,Sybase,MySQL,HSQLDB 等主流数据库。前端程序支持IE、Firefox。


    • 远程文件管理工具FileView,基于7wxAop开发

Web应用部署在服务器上,需要经常更新页面、图片之类的小文件,甚至程序更新,一般的做法是在服务器上开FTP服务,但多一种服务就多一个安全隐患,而且重新登录、帐号管理等等也麻烦。FileView使用常规WWW端口,可在远程直接管理应用服务器的文件系统。FileView 后端程序目前在 Windows/Linux/Unix等平台下都能正常运行;前端程序支持IE、Firefox。

 

  • 7wxAop带一个CMS系统和一个BBS(可选),可直接用于网站的构建

    • CMS系统 Kontent BBS系统 Fora 是商业软件,可在个人网站或非盈利组织免费使用,不得用于商业目的

 

OK,看了这么多,如果你感觉不错,不防下载一个7wxAop试试,也许你会发现一片Java Web开发的新天地:

下载7wxAop

7wxAop不喜欢J2EE自虐式的装库、部署、配置过程,解压后可直接运行,不会花费你太多时间

 


  阅读次数(今天):11860()   打印】 【关闭

 最新评论
2008-09-20 20:32:43   kerry   IP:58.62.42.*
lz十分之强悍,我希望站在巨人的肩膀上
呵呵

2008-09-19 01:38:33   匿名   IP:221.221.160.*
呵呵 有意思 我打算拿你的框架做个应用 到时发上来共享

2008-07-24 18:40:57   admin   IP:202.43.146.*
to 1111:

在服务器上,两次动作请求(http request)之间不传递任何数据。自动动作中的fieldmax修饰的id(自动产生的ID),会返回给前端;如下一个动作要用,则需前端重新传回后端。

在一个动作内,自动产生的ID会置入request 的 attribute,可以在动作处理的后续代码中直接引用。

2008-07-21 16:41:09   1111   IP:59.50.138.*
在进行保存一条数据后,怎样在自动编程中再次获取刚保存数据的id值

2008-07-19 16:01:07   admin   IP:221.222.181.*
to java_home:

佩服之致!那么重大的技术成果没有在业界推广太可惜了:)。

2008-07-15 09:13:41   java_home   IP:220.173.14.*
不错的思想,不过我在N年前也写了一套这样的开发平台,不过比你的这个更好。
从元数据,数据源,表单,工作流,树,page等等的,全都是可视化拖拉,设置即可,程序员(或者不是程序员)都可以使用,当然,使用者也是不用关心服务端如何实现的,只用实现其model即可,如果简单的模块,基本是0代码完成,连Model都不用写。
如你的tree构件,还要调用什么get_dires()这样的函数来回显,真是太笑话了,不得不说使用者还得写代码,我写的树实现构件,一行代码不用写。等等,不再举例
希望你能加把努力做得更好

2008-06-21 23:01:40   Ruby   IP:211.166.9.*
看起来不错,挺期待的,试用一下看感觉如何。

2008-06-20 18:48:04   admin   IP:202.43.146.*
to 1111 :

这是Kontent CMS模版功能,不是框架的组成部分。

2008-06-20 10:18:33   1111   IP:59.50.138.*
首页  7wxAop开发框架 | 7wxAop 应用 | XJawa原创观点 | Ajax深入技术 | Ajax新闻(实验栏目,不再更新) | 7wxAop成功项目 

这样的动态显示应该怎样进行显示??

2008-06-19 14:42:49   javaboy   IP:220.173.107.*
旺财勇士做的Ext接口是免费提供下载使用的吗?
下载来试用了。感觉挺不错的,就是文档太少了。

2008-06-19 11:39:52   rushio   IP:210.75.220.*
思路很好!准备试用!

2008-06-18 13:03:14   admin   IP:202.43.146.*
to kmlxk:

如果项目要在各种数据库之间迁移,是需要做SQl调整。

2008-06-17 00:05:12   kmlxk   IP:202.202.9.*
很不错的框架啊,只是和1楼一样对SQL语句有疑问,比如直接维护sql语句时,会不会面对类似于mysql和mssql这样的兼容性问题?不过Java上应该不存在这样的问题哈。。0.0

2008-06-16 22:39:49   admin   IP:125.34.217.*
to pen:

Ext接口旺财勇士已完成,只是没挂上

2008-06-08 05:25:11   pen   IP:116.60.103.*
很不错构思,不知Ext版进展如何?
BTW:DBVIEW和FILEVIEW很实用:) i like it

2008-05-05 22:09:20   admin   IP:125.34.216.*
to 小凫:

xjawa是项目总的名称,包括7wxAop框架及基于框架的各种应用。

2008-05-05 10:28:44   小凫   IP:124.16.138.*
xjawa和7wxAOP是什么关系?是7wxAOP的后继版本名称?

2007-08-01 17:22:57   admin   IP:210.82.103.*
to Logan:

你对Ajax和多层结构的理解有很大的偏差。Ajax实际上让表现层与业务层分割更清晰。

我不知道企业级系统、大型系统是怎么定义的,个人觉得对框架来说,只要功能分析到位,模块划分合理、子系统间偶合适度,大系统和小系统没有什么本质区别。7wxAop曾经用于开发有近千张数据表的国家部委中心软件系统,没有问题。

2007-07-28 15:04:47   Logan   IP:210.83.229.*
Ajax 本身就會違背3層或者n層的體系結構,當使用Ajax的時候,會造成業務數據無法控制,尤其對于大型企業系統來說,業務邏輯復雜,通過這樣的方式,提高了用戶體驗,混亂了業務邏輯。
對于你這套框架,小型應用會比較合適,企業應用可能無法套用,會造成開發人員整天維護業務邏輯,不斷編寫SQLHTTP。
不過,我想,你這套框架,本身也算是小型應用吧。

2007-05-14 09:58:16   匿名   IP:222.35.81.*
bucuo bucuo

共有 22 条评论 【更多评论

 发表评论
网名:  (不填则为匿名发布)   验证码:  必须输入
评论:
· 请尊重网上道德,遵守中华人民共和国的各项有关法律法规
· 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
· 本站留言板管理人员有权保留或删除其管辖留言中的任意内容
· 您在本站留言板发表的作品,本站有权在网站内转载或引用
· 参与本留言即表明您已经阅读并接受上述条款