中国开发网: 论坛: 程序员情感CBD: 贴子 690681
haitao
有人用java也搞了一套架构。。。。。。。。。
http://www.javaeye.com/topic/185839
http://www.xjawa.org/xjawa/kontent/80039.html

B端和S端彻底分开,分别有自己的框架,“UI层与系统其他层面的东西的唯一联系应该是"数据" ,UI层应该是在后台系统不变的情况下可切换的”,这种架构策略完全可行,而且实际代码上也比JSF/asp.net等“server page”变种优雅,本人已经在N个项目中实践过:

http://www.xjawa.org/xjawa/kontent/10020.html

使用这个7wxAop框架(浏览器端7wx + 服务器端Aop),有个朋友喜欢用Ext做前端,他就把7wx替换成Ext, 照样跑得很好:

http://www.deepsoft.com.cn/ext-aop/demo.html


那些不理解fins得同学,可能是没做过ajax开发,或者ajax用的比较少,或者思想已经被“server page ”方式禁锢。虽然本质上 jsf 还是“server page”,但确实比jsp、tag强很多;但是比起B/S完全分开得架构,jsf还是很丑陋。 我们公司有个项目组用得是SAP得WebDynpro,和jsf类似,要比jsf成熟,但实际开发起来也是很多问题。

个人认为,fins设想的这种架构之所以未被普遍关注,是因为它损害了J2ee大厂商的商业利益,因此他们控制的主流IT媒体不愿宣传。想想:如果Server只是用来接受数据->处理逻辑->返回数据,服务器端将非常Lightweight和Performance,大厂商的J2EE服务器还有高性能硬件还会有几个项目需要?

====================================

。。。正如我前面提到的,不理解fins的人大多是思想被“server pages”禁锢者,总认为浏览器只能负责 html render,其他一切都应该在服务器上完成,就如IT业早期的主机-字符终端模式。这种思想本质上是把浏览器看作21世纪的字符终端,完全忽略和闲置了目前运行浏览器pc的强大计算功能。

。。。在一个server和UI无关的模式下(下面称为“server business”,与“server pages”对应),server只是一个business logic server(只接受UI请求改变或查询系统的state),大致相当于砍掉了J2EE的Web层,Lightweight是肯定的了,至于Performance,除了节省处理
'UI layer'(NOT ONLY 'presentation layer') 的CPU开销,更重要的是大量节省服务器的出口带宽开销。

。。。“server business”模式(SB)与“server pages”模式(SP)本质上是不同的,SP下的'presentation layer'概念并不适合SB模式。

。。。将ajax单纯地视为transition technology本身也没什么错,虽然Ext等前端组件已经超越了这一概念。用Javascript framework称呼基于浏览器的“全功能UI Layer"并不适当,后者 = HTML + DHTML(DOM) + JS,JS只是一个粘合剂,Ext等前端组件本质上只是扩展了HTML Element,假设HTML 6.0包含了功能强大的TreeView、ListView(GRID)等通用UI组件,则JS将回归为单纯的DHTML API操纵语言。 至于RIA(javaFx or Flex),我认为它是侧重多媒体表现的“全功能UI Layer"的等价物,它的发展前景取决于厂商对它的定位,如果你认同RIA,就没有理由不认同“全功能UI Layer"的思路。


在正真的B-UI应用中,Browser自己负责界面构造和界面跳转,Server只负责提供business logic 访问,也就是说Server上根本就不需要S-UI的Web层(虽然还是HTTP访问),没有所谓的Controler,也就是说MVC不再是真理,Spring MVC/Struts之类的Web层框架完全没有必要。

“server pages”开发者理解B-UI时最大的思路陷阱就是“Web层”,MVC。

B-UI(Ext等界面组件+HTML+JS+ajax)是S-UI(jsp,jsf,asp,asp.net)的完全等价物,不存在什么功能jsf能做, B-UI不能做的问题。

jsf需要结合Ext、ajax,只能说明jsf实现某些功能很费劲,只好借用B-UI的现成技术。



世界上只有B系统和S系统.(谁说的?引用一下)
搞B/S系统的都不是真正意义上的数据和表现分离.
真正意义上的数据和表现分离在后台应该只看到DB数据的操作(当然还有业务逻辑了)
看不到一行html或生成html的控制.
页面表现应该在前台有html/css/javascript来完成,这才是真正意义上的分离!



你的理解完全正确,在首贴我已经指出“话题由来”,我100%支持fins的“世界上只有B系统和S系统”。

可以很不谦虚地告诉你,这种方案本人在6年前就已实现,而且经过N多项目的实践,欢迎各位实地考察:

http://www.xjawa.org/xjawa/kontent/80039.html



再不谦虚一点,本人的方案还做到了,实现同样的功能:

1、该框架所要的代码量远小于绝大部分(其实剩下的极少数我也没发现)java Web开发方式;
2、开发人员所需的培训和学习成本远小于各种主流框架。
3、开发人员的劳动生产率远高于各种主流框架。
4、所开发的应用系统的运行效率远高于各种主流框架。
5、所开发的应用系统的部署维护成本远低于各种主流框架。
。。。。

当然,上面的描述看起来像天方夜谈;但是,在我看来,很多年来,J2EE社区的各种时髦技术大多数也很荒唐。


1、普通的培训是3个小时,深入一点的需要6个小时;HTML/JS、Java需要较好的基础。

2、框架整体开源免费。

3、生产率我无法量化(因为我构思中的Web系统复杂性量化模型还没最终完成),只知道很快。

4、一个系统开发多少小时?无法量化,原因同3,

谢谢关注"专有技术":-) 虽然有点离题了,感觉在卖假药 (呸呸,俺怎么就学不会IBM传道士忽悠水平的1%?)



简介

  是一个通用的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开发框架
我的blog:http://szhaitao.blog.hexun.com & http://www.hoolee.com/user/haitao
--以上均为泛泛之谈--
不尽牛人滚滚来,无边硬伤纷纷现 人在江湖(出来的),哪能不挨刀(总归是要的)
网络对话,歧义纷生;你以为明白了对方的话,其实呢?

您所在的IP暂时不能使用低版本的QQ,请到:http://im.qq.com/下载安装最新版的QQ,感谢您对QQ的支持和使用

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录