《{企业通用培训}金蝶BOS开发工程师基础认证培训Web框架》由会员分享,可在线阅读,更多相关《{企业通用培训}金蝶BOS开发工程师基础认证培训Web框架(82页珍藏版)》请在金锄头文库上搜索。
1、金蝶 框架,金蝶软件(中国)有限公司,目录,总体架构 开发调试,总体架构,金蝶开发平台基于开发,的底层技术为,表现层采用和,是什么,(, 或者 “”)是一个构建 应用的 框架;它基于社区流程 () 开发,并且成为J2 的一个组成部分。 的一个主要目标是为 应用开发领域带来 风格的应用开发,就像 和 一样。 提供一系列标准部件 (按钮、超链接、复选框等等),一个创建定制组件的模型,以及在服务器端处理客户端产生事件的方式,并且有良好的工具支持。你可以同步组件和相关对象的值,而不必编辑太多令人生厌的代码。 所有的 应用都构建于 之上,使用 进行通信,并且使用.之类的显示技术,与区别,包含什么,生命周
2、期,生命周期,构建复原组件树视图() 组件树用来构建和维护页的状态和事件。对于每个会话,将会构建一次树,并且当用户返回到该页时复用该树。在此阶段的末尾,当前请求的 实例的根属性反映由先前的“ 响应”生成的视图的已保存配置(如果有的话)。,生命周期,应用请求值 请求处理生命周期这一阶段的目的是使当前请求中包括的信息更新各组件的当前值(如参数、标题和 )更新到相应组件树中的每个组件。从这里我们可以看到,从客户端发过来的请求是么种意义上的纯文本信息,而组件对应的是实体,这里必然就存在了数据格式转换的问题。所以,在整个生命周期中,这个地方就成了数据转换发生的特定阶段(如:数据、日期显示格式)。,生命周
3、期,处理验证 为保证上一个阶段的数据正确,特定抽取了这个阶段作为数据校验。在这里作为创建此请求的视图的一部分,可以为每个组件注册零个或多个验证器实例。另外,组件类自身也可以在它们的 () 方法中实现验证逻辑。在此阶段的末尾,会完成所有配置的验证。,生命周期,更新模型值 如果到达了请求处理生命周期的这一阶段,就意味着入局请求根据所执行的验证在语法和语义上都是有效的,且组件树中每一组件的本地值都已被更新,这一阶段主要通过调用组建树的每个组件的()方法,递归更新每个组件树对应的应用程序的模型数据,生命周期,调用应用程序 如之前构建复原视图时所述,如果当前请求的视图是根据先前请求保存的状态信息重新构造
4、的,则 实现就能够确保通过在此 应用程序的“应用程序”对象上调用 。,生命周期,呈现响应 此阶段同时完成两项任务:使响应呈示给客户机,以及使响应的状态得到保存以供后续请求处理之用。在一个阶段中同时处理这两项任务的原因是在 应用程序中呈示响应的行为会导致在呈示页面时构建视图。因此,要在视图的状态被呈示给客户机之后才能保存该状态。,为什么要选用,对于 工具的四个层次, 定义了其中3 个:一个基础组件架构,一个标准的 部件集,以及一个应用基础架构。 的组件架构定义了一个通用的方式来建立 部件 有一个特定的目标:使 开发更快更容易。它允许开发人员以组件,事件, 以及它们之间的交互来进行思考,而不是基于
5、请求,响应和标记。换句话说,它掩盖了 开发的大量的复杂性,使开发人员能够集中于他们最擅长的事情:开发应用系统。,典型例子,,,非常适合 ,专为 设计的视图技术 是用来建立应用程序时的一个可供选择的表现层技术。提供了一个强有 力的模板化系统,让你使用样式的模板来定义的表现层,减少了组件整合进表现层时候冗余的代码,而不需要一个容器,有以下吸引人的特性: 模板化(像 ) 复合组件 定制的逻辑标记 表达式语言 对设计师友好的页面开发 创建组件库,用 进行模板化 (定义模版),创建 页面。 定义 的命名空间,导入对 的使用。 用 标记定义页面的逻辑区域。 用纯文本和 标记定义合理的默认值,用 进行模板化
6、 (使用模版),当页面调用布局模板时,需要指定模板的位置 使用 标记。为了把参数传递给模板,要使用 标记,它是 标记的子元素,复合组件,不要重复自己 把它的精华放在复合组件上,复合组件的创建,创建 标记库。 在 中声明标记库。 用命名空间导入标记文件,可以用来开发也即富客户端的应用,是一个用写 的,主要用于创建前端用户界面,是一个与后台技术无关的前端框架。因此,可以把用在、等各种开发语言开发的应 用中 由一系列的类库组成,一旦页面成功加载了 库后,我们就可以在页面中通过 调用 的类及控件来实现需要的功能,的类库由以下几部分组成 底层():底层 中提供了对 操作、查询的封装、事件处理、 查询器等
7、基础的功能。其它控件都是建立在这些底层 的基础上,底层 位于源代码目录的 子目录中,包括、 等文件,控件():控件是指可以直接在页面中创建的可视化组件,比如面板、选项板、表格、树、窗口、菜单、工具栏、按钮等等,在我们的应用程序中可以直接通过应用这些控件来实现友好、交互性强的应用程序的。控件位于源代码目录的 子目录中,实用工具: 提供了很多的实用工具,可以方便我们实现如数据内容格式化、数据解码或反解码、对、发送 请求、 管理、 管理等扩展等功能,组件,组件是由 类定义,每一种组件都有一个指定的 属性值,通过该值可以得到一个组件的类型或者是定义一个指定类型的组件。 组件体系,组件使用,组件可以直接
8、通过 关键子来创建,比如控件一个窗口,使用 (),创建一个表格则使用 () 组件的构造函数中一般都可以包含一个对象,这个对象包含创建组件所需要的配置属性及值,组件根据构造函数中的参数属性值来初始化组件,组件,每一个组件除了继承基类中的配置属性以外,还会根据需要增加自己的配置属性,另外子类中有的时候还会把父类的一些配置属性的含义及用途重新定义。学习及使用,其中最关键的是掌握 中的各个组件的配置属性及具体的含义,: ,金蝶中间件公司的开发框架 完整实现了1.2规范,同时,对1.2规范做了大量扩充,主要有支持、编程模型,架构图,对组件的扩展,标准的提供了与元素一一对应的组件,标准的 组件基本上不能满
9、足业务开发要求 在此基础上提供了一套基于 的 ,根据 所提供的客户端组件模型,提供了相应的服务器端组件模型、事件和组件渲染器,服务器端组件模型可以被复用,与具体的组件表现形式无关。而组件的渲染器可以自行以替换的方式进行扩展,对组件的扩展,组件使用方式 通过指定控件属性,可以用 在页面访问,约定优于配置,目前主流的一些框架如( 和)通过很多配置实现对象的依赖注入 中通过约定优于配置的规则,实现对象的注入,数据校验,简单校验 : 客户端校验 自定义校验 完整上下文校验,生命周期拦截,默认提供、的标注式拦截 其他生命周期可扩展,编程模型,对标准的进行了扩展 : 声明式定义 提供了、等一系列标签,可以
10、使用这些标签来以声明方式定义 通过注入其他,“ ” ,即“视图控制反转” 传统的编程模式 传统方式的设计中,所展现出来的数据通常位于中,上需要与用户交互的行为()也定义在中,在中通过表达式,将每个组件与中所持有的数据绑定起来。如:这是以视图为控制导向的一种设计模式,视图必须知道其所要绑定的及其属性和行为,这在一定程度上限制了的重用。,定义了一系列的标注用于将与上的元素对应,开发者通过在上声明这种对应关系,可以将视图上的元素与中的属性和方法对应起来 在编程模式下,组件只需简单的声明属性即可与进行关联,作用 开发平台的核心职能类似框架,是 产品开发的基础平台,跟应用框架共用 服务端组件,协同框架和
11、业务模型()实现模型驱动架构()。它提供统一的业务开发模型,简化开发逻辑,形成一致的开发模式,最大限度实现代码的重用机制,有什么 1. 应用框架体系 为业务单据提供复用体系 2. 通用处理 如交互、数据绑定、异常处理、通用查询等 3. 业务服务调用 如权限控制、工作流等 4.某些控件 如F7,枚举框,多语言控件,等,应用框架体系,序时簿,序时簿,列表界面( )从继承,请实现如下方法: () 要求返回查询当前列表数据结果的 () 要求返回列表对象对应的编辑界面的的名称 () 要求返回列表对象对应的编辑界面的 () 类似编辑界面的同样接口实现。该业务接口的获取可以通过注入方式实现,标签 本注释型负
12、责对 (以及 接口对象)进行统一的注入控制,以及屏蔽与服务端交互的复杂性 例如: ;,序时簿模版,定义了列表界面的布局模板,业务单据的列表界面视图从此模板继承,并提供相应的模板内容实现 具体使用可以参照章节,序时簿组件,封装了单据列表界面工具条部分的内容,提供了标准的操作按钮以及统一的绑定,相关业务使用此组件时只需设置组件的属性即可 例子: ,序时簿组件,封装了基础资料列表界面工具条部分的内容,提供了标准的操作按钮以及统一的绑定,相关业务使用此组件时只需设置组件的属性即可 例子: ,序时簿组件,封装了列表界面跟其他页面进行交互的载体,支持的弹出框(适用于通用过滤等),也支持其他通过脚本弹出的对
13、话框或新窗口(例如编辑界面或转换界面等) 例子: ,编辑界面类图,编辑界面,编辑界面( )从继承,请实现如下几个方法: :新增业务对象 :业务操作接口,该业务接口的获取可以通过注入方式实现 ,注入方式和类似 可选实现: 获取所选单据属性,子类可覆盖实现 单据若含有分录,更新分录,编辑界面模版,定义了编辑界面的布局模板,业务单据的编辑界面视图从此模板继承,并提供相应的模板内容实现,编辑界面组件,封装了编辑界面下方按钮部分的内容,提供了标准的操作按钮以及统一的绑定,相关业务使用此组件时只需设置组件的属性即可 例子: ,编辑界面组件,封装了分录的基本操作以及统一的绑定,相关业务使用此组件时只需设置组
14、件的属性即可 例子: ,编辑界面组件,封装了单据与其他单据相关常用功能的操作及绑定,例如上一个单据、下一个单据、单据转换等,相关业务使用此组件时只需设置组件的属性即可,编辑界面组件,封装了编辑界面下方按钮部分的内容,提供了标准的操作按钮以及统一的绑定,相关业务使用此组件时只需设置组件的属性即可 例子: ,通用处理数据绑定,体系本身提供了完善的数据绑定功能,不需要类似的及等自己处理。对于一些特定类型的属性绑定,框架提供常用的处理,包括、等。 支持表达式; 可以绑定简单数据类型(, , 等); 可以通过数据类型转换器绑定复杂数据类型(任意数据类型); 支持表格、F7的数据绑定;,通用处理多语言处理
15、,服务端多语言处理 框架基类提供了( )方法,从文件名等于类名的多语言文件中获取多语言文本; 提供了( , )方式更加灵活的获取多语言信息。 客户端视图标签多语言处理 通过表达式获取多语言信息:#资源键 客户端脚本多语言处理 对于视图,通过扩展的,实现把服务端资源文件动态生成客户端多语言脚本数组,然后在脚本中通过操作此数据来获取相应的多语言信息; 对于视图,需要通过扩展来实现一样的标签功能,对于视图部分使用上对开发者是一致的。 用法:在视图中申明 ,然后就可以在中使用“”即可获取对应的多语言字符。,通用处理应用上下文,通用处理异常处理,错误异常 包括用户访问的不存在、会话失效、访问拒绝等,框架
16、统一拦截,导航到统一的友好页面 系统异常 包括数据库取数出错、代码运行空指针等,框架统一拦截,如果是请求,弹出错误提示框;如果非请求,导航到统一页面 用户异常 主要是便于开发人员把自己认为的异常逻辑或者在应用中出现的问题展现出来,框架统一拦截处理,异常处理方式跟上面“系统异常”处理一样,通用处理通用过滤,通用过滤 默认过滤 只需要在实现()即可 自定义过滤页面 提供一个继承的,假如为,同时还有相应的视图,; 在序时簿里,覆盖()方法,返回上面的视图路径,例如: () ; ,业务服务调用,单据套打 框架已经提供默认实现,用户只需要定义套打模板即可 通过导出方式实现 网络互斥 数据互斥 避免同时编辑同一张单据 日志 框架默认已经提供,业务开发无需编码 色彩方案 目前支持蓝、绿、红、橙四种色彩方案,默认蓝色 支持扩展(增加相应的色彩方案目录结构),业务服务调用权限,权限控制 页面访问权限 页面按钮权限,业务服务调用编码规则,应用编码规则服务 定义相关编码规则,然后再单据里直接根据规则自