Witrix开发平台
iteye_3445
这个作者很懒,什么都没留下…
展开
-
PageFlow: Managed Navigation
按照Tim Berners-Lee的原始设想,互联网的核心概念是超链接(hyperlink), 每一个可访问的资源都具有自己的URI(Universal Resource Identifier), 我们通过唯一的url可以访问到这些资源。从概念上说,每一个页面可以由一个两元组[title, url]来进行描述,title是url显示在界面上时的可读表述。在这一描述下,我们可以建立基本的页面浏览模型...2006-11-05 20:35:00 · 164 阅读 · 0 评论 -
[导入]meta-enhanced Map
hibernate等O/RMapping软件包中使用javabean来作为数据的载体, 但这些bean一般除了get/set等数据访问方法之外没有什么其它的业务方法。前一段时间有人认为这是所谓贫血的领域模型(Anemia Domain Model),引发了一场讨论。其实这些bean的作用仅是表达了领域内的数据关系, 本身并不可能作为完整的领域模型层存在。在数据层,我们所需要的是数据对外...2005-11-22 17:53:00 · 111 阅读 · 0 评论 -
tpl标签结构
witrix平台中的tpl模板技术的重点在于标签定义的设计, 在于如何最大限度的发挥xml格式的表达能力。 tpl自定义标签的基本结构如下: <Namespace:TagName tpl:tag="realTagName" tpl:noborder="${booleanExprInCompileContext}" tpl:ignore=...2005-11-22 23:09:00 · 767 阅读 · 0 评论 -
tpl标签定义
tpl自定义标签的设计目标之一是尽量减少配置说明项. 在tpl标签库中, 标签定义格式如下 <标签库名称> <自定义标签名 demandArgs="argA, argB" importVars="varA, varB" otherArgs="optionalArgA, optionalArgB" l...2005-11-27 20:32:00 · 1120 阅读 · 0 评论 -
[导入]tpl与FreeMarker的标签对比
witrix平台中的tpl模板技术是一种通用的xml动态标签技术,不仅可以用于文本生成,而且可以用于任何需要动态标签的地方,例如工作流引擎的配置和执行脚本。tpl模板引擎采用的不是jsptag的标准机制,而是重新设计并实现的。在开发的后期,因为jstl标准出现,我们对标签的命名作了一定的修改,以尽量符合标准的调用接口。tpl模板语言完全符合xml规范,其标签定义都是完全独立开发的。在开发tp...2005-12-12 22:18:00 · 335 阅读 · 0 评论 -
[导入]validate: javascript 客户端验证框架
在witrix平台中,validate.js提供了完整的客户端输入校验框架。其基本思想是为每个输入控件指定验证函数(validator属性),在提交Form的时候自动调用该验证函数即可。<form action="test.jsp"><input type="text" name="userName" validator="js.validate.checkNotEm...2005-12-12 22:26:00 · 121 阅读 · 0 评论 -
[导入]witrix平台中的ajax支持
web程序需要完成 html <--> java之间的映射,在界面越来越复杂,越来越多变的今天,这项工作也变得越来越困难。按照级列设计理论的观点,我们应该去寻求一些中间的过渡步骤。在witrix平台中,tpl模板引擎正扮演了这种中间角色。通过tpl模板我们实现了如下映射路径html <--> tpl <--> java 注意到这里html与tpl之间...2006-02-22 20:36:00 · 138 阅读 · 0 评论 -
静态描述与动态调整
描述所关注的是“what”,而运行所关注的是“how”。在现代软件开发中,描述信息作占的比重日益加大。甚至一种极端的倾向是把所有业务逻辑都写在各 种格式的配置文件中. 配置文件目前多采用xml格式,它的优点是自说明的:属性名直接标示了其基本含义,但是这也在一定程度上加重了命名的负担, 造成了配置文件的臃肿。因为在普通的程序语言中,可以用来传递信息的结构更加丰富,例如参数的相对位置,参数类型...2007-05-27 18:50:44 · 196 阅读 · 0 评论 -
BizFlow extends CRUD
CRUD(Create Read Update Delete)是一般应用程序中最基础的操作,但是用户的需求却很难直接映射到CRUD操作上。例如常见的需求如下: 1. 不同的业务处理处于不同状态的业务对象: 业务A处理状态为X的业务对象,而业务B处理状态为Y的业务对象 2. 业务对象处于不同状态的时候允许的操作不同: 状态处于X的业务对象允许操作U, 而状态处于Y的业务对象...2006-07-15 22:25:00 · 180 阅读 · 0 评论 -
报表引擎:结构生成与结构转换
传统上报表引擎主要完成两项工作:结构描述和结构转换。一般报表设计人员通过可视化设计工具完成对报表结构的描述,然后报表引擎根据这些描述生成不同格式的报表文件,如PDF格式,XLS格式等。这一图景中报表设计工具扮演着关键角色,因为它不仅仅是向用户提供一个直观的界面,更重要的是配置过程本身就是一种分步骤的结构构造过程。理想的情况是用户指定报表中具体有哪些单元格,表格具体有哪些列,而在运行期报表引擎...2007-09-02 09:43:36 · 154 阅读 · 0 评论 -
AOP的应用
AOP(Aspect Oriented Programming)早已不是什么新鲜的概念,但有趣的是,除了事务(transaction), 日志(Log)等寥寥几个样板应用之外,我们似乎找不到它的用武之地。http://canonical.iteye.com/blog/34941 很多人的疑惑是我直接改代码就行了,干吗要用AOP呢?AOP的定义和实现那么复杂,能够提供什么特异的价值呢?...2009-12-13 11:23:54 · 120 阅读 · 0 评论 -
HTML模型增强
html最早的设计目标只是作为某种多媒体文档展现技术,其设计者显然无法预料到今天Web应用的蓬勃发展,一些设计缺陷也就难以避免。特别是html规范中缺乏对于复杂交互式组件模型的支持,直接导致企业应用的前台开发困难重重。AJAX技术可以看作是对这种困境的一种改良性响应,它试图通过javascript语言在应用层创建并维护一系列复杂的交互机制。很多完善的ajax框架走得相当遥远,最终基本将ht...2009-05-30 00:42:10 · 139 阅读 · 0 评论 -
延迟加载的数据集合
在程序中需要返回一个数据集合的时候, 应该尽量选用标准的Java集合类接口,例如List, Map等.有时也见到有人选择返回Iterator对象, 一般情况下这不是很好的选择. Iterator对象的功能有限, 而且存在一种即时消费的特点,我们一般不能把一个Iterator保存起来留待以后使用. 而且JDK提供的集合类也不能从Iterato...2005-11-19 11:04:00 · 150 阅读 · 0 评论 -
[导入]交叉表:平面表的并置
交叉表(Cross Table)的基本特点是具有横纵两个自由延展的维度,而平面表结构只有一个可延展的维度,因为平面表的列名和列数是确定的。例如,地区的产品销售数量,在平面表中表达为district_id product_id sell_num如果表现为交叉表,则为 productA productBdistrictA sellNum sellNumdistr...2005-11-19 11:02:00 · 166 阅读 · 0 评论 -
[导入]Exportor: Visitor模式
数据导出的功能大致可以分解为三个部分: 1. 从数据源读取一条记录 2. 将一条记录导出为指定格式 3. 循环调用1和2首先我们需要一种机制来对外暴露数据源(一种Container)中的数据,Iterator模式恰能满足要求。其次,我们需要一种机制来对一系列数据进行处理,这对应于Visitor模式。第三,在组合Iterator模式和Visitor模式的处理过程中,我们需要表达出平面表数据集的...2005-11-19 11:01:00 · 191 阅读 · 0 评论 -
多版本支持
在商业产品开发中,如何有效的控制同一产品的多个衍生版本是一个非常重要的问题。客户的需求是多样化,差异化的。这些差异有些很小,可以通过参数配置,资源装载,skin切换等方式加以吸收,而有些则要求对界面布局和程序逻辑等作出较大调整。Witrix开发平台在系统基础架构方面为程序的客户化提供了有力的支持。 1. 多版本控制的关键首先在于系统良好的模块划分。因此Witrix平台的beans,au...2007-04-22 23:15:27 · 105 阅读 · 0 评论 -
[导入]SQL类:一件事一句话
在witrix平台中访问数据库最直接的方法是使用edu.thu.db.SQL类。基本用法如下:// 设定数据库连接参数, 连接可以通过java.sql.DriverManager 和//javax.sql.DataSource等多种方式建立,并支持数据库连接缓冲池。TransactionMode db = new TransactionMode("default"); // 设定数据库连接参数...2005-11-15 12:30:00 · 102 阅读 · 0 评论 -
[导入]jsplet:对Model 2模式的批判
在Jsp Model 2模型中, 用户的所有请求提交给Controller Servlet,由Controller进行统一分配, 并且采用推的方式将不同的UI显示给用户。这种推方式在很多人看来是一种优点,因为在Struts等MVC实现中具体推送的UI可以在配置文件中配置,配置完成后还可以通过一些可视化分析工具得到整个站点地图。在Model2模式中基本的访问格式为: acti...2005-11-15 12:31:00 · 98 阅读 · 0 评论 -
[导入]jsplet与webwork的概念对比
jsp本身提供的是一个有限状态机模型(FSM),Web访问模型直接体现了这一点: action?XXXX。 action对应于方法名,XXX是方法的参数。在这个访问模型中没有指出状态存储在什么地方,因为它假设后台是一个整体,构成一个巨大的状态集。 但这种模型注定是过分简化的,所以会有很多的发展。发展的方向就是逐渐精细化,识别出相关的部分,把它们组织到一起。其实可以从各个框架的开发过程来看出这种...2005-11-15 12:32:00 · 102 阅读 · 0 评论 -
[导入]关于jsplet的一些问答
引用:如果在Action Centric的框架,要避免两个访问点,可以这么定义。 view.do?&templateName=a &objectName=/@Demo&objectEvent=test 这种做法就是程序自己处理而不是框架支持了。我说过,工作就是那么多,只是框架做什么和程序作什么的分工而已。说jsplet是page为中心也不太准确,jsplet是以对...2005-11-15 12:33:00 · 150 阅读 · 0 评论 -
[导入]jsplet与IoC
关于jsplet中的object生命周期的管理以及使用拉模式,如果套用现在流行的设计术语,那就是涉及到所谓的IoC设计(控制反转) IoC的Container现在很受追捧,但真正的IoC设计思想并没有引起大家的重视。也许大多数人使用的都是成品吧,以至于把成品的功能等价于其所依赖的设计原理。Spring等所建立的IoC更准确的说法是DependencyInjection,只是IoC的一种体现...2005-11-15 12:34:00 · 80 阅读 · 0 评论 -
[导入]jsplet与OO
jsplet中的对象化并不是一种巧妙的trick,而是一种设计上的必然。现在大家言必称OO,可OO到底意味着什么,除了书本上的话语,你能不能用自己的话描述一下,能否体会到那种必然。OO如果是一个有效的概念,它在软件以外的领域是否有着对应。按照早期教科书的说法,OO是为了模拟现实世界,这种说法只是反映了设计上的一种困境,一种思想上的贫乏。面向对象最直接的意义在于标示了状态与行为之间的耦合,此后...2005-11-15 12:34:00 · 133 阅读 · 0 评论 -
[导入]tpl:将tag进行到底
tpl是witrix开发平台中的动态xml标签技术,其基本特点表现为如下三个方面:1. 执行能力 xml本身只是对数据的描述,而没有循环和判断的能力。 在tpl中<c:forEach>和<c:if>标签可以完成程序语言的执行功能,并定义了<c:tile>, <c:iif>等更方便的标签。2. 抽象能力 获得抽象能力,首要的一点是使得创建新概念的...2005-11-16 19:23:00 · 281 阅读 · 0 评论 -
[导入]关于session的使用
有人认为jsplet中使用session是个缺点,关于这一点,我想起一件以前听来的事情。我们都知道Linux的内核是常驻内存,不换页的(不知道最新的内核是否已经有所改变),Torvalds认为内核换页对系统性能有巨大影响,是愚蠢的想法,所以Linux内核不能换页。据陈榕说,NT内核是可换页的,而微软内部有一个小组,专门编写工具,对已经编译好的操作系统二机制代码进行优化,调整,最终结果是NT内核...2005-11-16 20:07:00 · 372 阅读 · 0 评论 -
[导入]TreeNode:长程关联
java中最常用的数据结构类型是Map和List,它们也是Container的两种基本模式,一个是根据特征值定位,一个是根据地址定位。它们共同的一个特征是表达了数据之间的直接的,短程的一种相关性。另一种常见的数据结构Tree则表达了数据之间的一种长程的关联:根节点与其所有层次上的子节点之间都存在着关联。 文件系统,组织机构, XML文档等都可以对应为Tree数据结构。在描述树形结构的时候,我...2005-11-19 10:59:00 · 342 阅读 · 0 评论 -
[导入]Pager: Bridge模式
分页的功能由两部分组成:取数据和计算分页。其中取数据的功能由IPageViewer接口实现interface IPageViewer{ int getTotalCount(); List getAll(); int listPage(int startPos, int maxCount);}Pager是用户调用时的接口class Pager{ public List getAll(...2005-11-19 11:00:00 · 75 阅读 · 0 评论 -
资源文件管理
html主要通过内置的<script>,<link>, <img>等标签引入外部的资源文件,一般的Web框架并没有对这些资源文件进行抽象,因此在实现组件封装时存在一些难以克服的困难。例如一个使用传统JSP Tag机制实现的Web组件中可能用到js1.js, js2.js和css1.css等文件,当在界面上存在多个同样的组件的时候,可能会生成多个重复的&l...原创 2010-01-17 17:48:08 · 153 阅读 · 0 评论