(公司.NET技术框架)总体设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(公司.NET技术框架)
总体设计
一、目标和范围
二、适用对象
三、专业术语和关键词定义
四、项目总体概述
4.1背景及要求
4.2设计思路
4.2.1框架技术结构图
4.2.2主要模块的设计方案
角色权限设计
角色系统图:
平台的角色只负责对导航菜单、权限进行管理;通过用户处理类和页面基类可以查询到角用户可用的权限、菜单;权限使用开发给工程师进行功能实现。
权限表中PageCode字段标记为ALL的权限视为全局可用权限;保级为页面名称的视作当前页面的权限。
角色配置关系图:
用户桌面设计
每个用户都可以根据工作任务不同配置并显示不同的组件,便于工作;也可以根据需要改变桌面的布局。
工作流表单设计
表单通过AnalysisFile 解析生成表单文件,在运行时表单的事件统一由AnalysisPage 来处理。
报表系统设计
主要分成以上四个模块,所有的报表由解析类ReportFile 生成报表文件;再通过ReportPage 类进行数据绑定和图表数据的解析。
而ReportCreater 负责保存布局设置和读取布局设置。
4.3 运行环境
目前未测试64位操作系统,请使用32位操作系统。
开发环境:
操作系统:windows professional xp/windows professional 7/windows server 2003/windows server 2008
软件环境:
Oracle9i/10g 或 SQLServer 2005/2008
MS VS2008 SP1 ( 2.0)
MS VSS 2005/2008
MS Office 2003/2007
PLSQL(安装Oracle则安装)
硬件环境:
CPU 2GHZ 2GB 双核
硬盘 250GB
网卡
客户端环境:
操作系统:windows professional xp/windows professional 7/windows server 2003/windows server 2008
软件环境:
MS Office 2003/2007
IE6/8
硬件环境:
CPU 2GHZ 2GB 双核
硬盘 250GB
网卡
服务器环境:
操作系统:windows server 2003/windows server 2008
软件环境:
Oracle9i/10g 或 SQLServer 2005/2008
.NET Framework 3.5 SP1 ( 2.0)
MS Office 2003
硬件环境:
CPU 16GB
硬盘 1.5TB
网卡
4.4开发规范
主要分为三个部分对开发进行规范(分别见文档):
1.数据库设计规范
2.C#编码规范
3.界面及脚本编制规范
4.5数据库设计
4.5.1基础表设计
T_BASE_APPLICATION表
应用程序管理表
T_BASE_APPCONFIG表应用配置管理表
T_BASE_DICTYPE表字典类型表
T_BASE_DICITEM表字典表
T_BASE_SUPERMAN表实施用户表
T_BASE_SYSLOG表
系统日志表
T_BASE_OPERHISTORY表用户日常操作表
T_BASE_TOKEN表
SSO票据控制表
T_BASE_USER表
用户表
T_BASE_USERINFO表
用户基础信息表
T_BASE_DEPARTMENT表机构表
T_BASE_USERDEPART表用户机构关系表
T_BASE_ASCX表
桌面组件表
T_BASE_USERHOMEPAGE表用户桌面管理表
T_BASE_HOLIDAYSET表
假日管理表
4.5.2角色权限表设计
T_BASE_MENU表
导航菜单管理表
T_BASE_PRIVILIGE表
应用权限管理表
T_BASE_ROLE表
角色基础信息表
T_BASE_ROLEMENU表
角色导航菜单关系表
T_BASE_ROLEPRIVILIGE表
角色权限关系表
T_BASE_USERROLE表
角色用户关系表
4.5.3工作流表设计
基础表
T_FLOW_FLOWINFO表
工作流基础信息表
T_FLOW_NODEINFO表
任务节点信息表
T_FLOW_TARGETLINE表
任务连接线表
T_FLOW_NODECUSTOMRULE表节点自定义规则表
T_FLOW_NODERULE表
节点(节点、办理人)规则表
T_FLOW_NODEGROUP表
节点分组规则表
T_FLOW_NODEUSER表
节点承办人列表
T_FLOW_UPFILETYPE表
工作流附件定义表
T_FLOW_EVENTTRUST表
事务委托处理表
T_FLOW_CHILDFLOW表子流程表
T_FLOW_CASETABLE表业务表与流程的关系表
案卷表
T_CASE_FLOWCASE表Case流转状态表
T_CASE_NODECASE表
Case流转任务历程表
T_CASE_NODEUSER表
Case流转承办人办理历程表
T_CASE_ACCESSORY表
Case附件表
T_CASE_CTRL表
Case督办情况表
T_CASE_HANDUP表Case挂起情况表
T_CASE_UPFILETYPE表Case上传文件定义表
T_CASE_USERORDER表
Case处于串行办理任务节点时记录承办人办理顺序
T_CASE_OPINION表
Case办理意见单表
T_CASE_OPINIONEX表
Case办理意见表
4.5.4表单模块表设计
基础表
T_FORM_ASCX表
组件管理表
T_FORM_CONTROL表
控件管理表
T_FORM_ENTITY表
实体表
T_FORM_KEY表
实体主键表
T_FORM_PROPERTY表
实体属性表
表单设计
T_FORM_PAGE表
表单设计表
4.5.5报表模块表设计
T_REPORT_PAGE表
报表设计表
4.5.6视图设计
基础部分
V_BASE_NODEPUSER视图
没设置部门的用户
V_BASE_ROLEMENU视图
角色菜单对应关系
V_BASE_ROLEPRIVILIGE视图
角色权限对应关系
V_BASE_USERDEPART视图
用户机构对应关系
V_BASE_USERTREE视图
用户机构树关系
V_BASE_USERHOMEPAGE视图
用户桌面组件
V_BASE_USERMENU视图
用户可用的导航菜单
V_BASE_USERPRIVILIGE视图
用户可用的应用权限
工作流部分
V_FLOW_NODEUSER视图
工作流编辑器中选择承办人的用户树结构V_CASE_CASEHISTORY视图
Case办理历程
V_CASE_CURCASETASK视图
待办Case集合
V_CASE_CURCASETASK_GROUPCASE视图
待办Case集合按任务汇总
V_CASE_DONECASETASK视图
已办Case集合
V_CASE_GOONBOX视图
移交窗口信息
V_CASE_HUPCASETASK视图
挂起Case集合
V_CASE_NEWCASETASK视图
新办的Case集合
V_CASE_VIEWCASEHISTORY视图
案卷遍历经过的任务和表单信息
表单部分
V_FORM_FLOWENTITY视图
工作流对应实体集合
V_FORM_FLOWPAGEBASEINFO视图
工作流对应表单的树状结构
4.5.7函数设计
公共部分
函数名CREATEGUID
创建一个全球唯一标识符4.6模块功能介绍
4.6.1子系统及模块划分
4.6.2BSI.Enterprise介绍
目的
本文档编写目的是让使用此类库的程序员和测试人员了解类库中对象及其方法的使用规范和注意事项,有效的制定开发计划和测试计划。
帮助开发人员使用功能库中的对象及方法,使代码规范化,增加代码可读性和可控性。
类库拓扑图
BSI.Enterprise主要是负责蓝星信息公司基于.NET开发的软件项目中的数据库访问、数据提取和处理、字符串处理、反射处理等基本功能的类的集合,含有一个类库工程和一个工具。
拓扑图如下:
功能说明
mon
此命名空间下的类,主要包括如字符处理、反射处理等比较复杂而又相对基础的通用功能。
Invoker
主要功能是.NET反射处理。
1.反射方法的可见度属性:
图:反射方法的可见度属性
2.根据动态库引用和类名获取引用类型:
图:根据动态库引用和类名获取引用类型
3.根据动态库地址和类名获取引用类型:
图:根据动态库地址和类名获取引用类型
4.获取动态库内部类型:
图:获取动态库内部类型
图:获取反射对象的方法
6.获取反射对象的方法:
图:获取反射对象的方法
7.调用反射对象的方法:
图:调用反射对象的方法
8.获取反射对象的属性值:
图:获取反射对象的属性值
9.获取反射对象的属性集合:
图:获取反射对象的属性集合
图:获取反射对象的属性值11.设置反射对象属性的值:
图:设置反射对象属性的值12.设置反射对象属性的值:
图:设置反射对象属性的值13.获取反射对象的字段值:
图:获取反射对象的字段值14.设置反射对象字段的值:
图:设置反射对象字段的值
15.获取反射对象的构造函数:
图:获取反射对象的构造函数
16.创建反射对象的实例:
图:创建反射对象的实例
17.创建反射对象的实例:
图:创建反射对象的实例
18.创建反射对象的实例:
图:创建反射对象的实例
19.获取对象数组的对应类型数组:
图:获取对象数组的对应类型数组
20.为反射对象绑定一个事件:
图:为反射对象绑定一个事件
21.将指定的事件从绑定的事件中移除:
图:将指定的事件从绑定的事件中移除StringUnity
主要是字符串数组处理。
1.通过符号间隔字符串数组:
图:通过符号间隔字符串数组
2.通过符号间隔字符串数组:
图:通过符号间隔字符串数组
3.通过符号间隔对象属性数组:
图:通过符号间隔对象属性数组
4.通过代号间隔对象属性数组
图:通过代号间隔对象属性数组
5.通过代号间隔对象属性数组
图:通过代号间隔对象属性数组
6. 过滤SQL特殊字符
图:过滤SQL特殊字符
BSI.Enterprise.DB
此命名空间下的类,主要包括提供及处理数据库连接、提取及处理数据、常用命令字符、命令参数、数据分页处理、数据实体和实体属性等数据库操作的基础方法。
BSI.Enterprise.DB.Handler
1.MetaDataHandler类
主要功能是数据连接解析、创建数据提供程序和初始化实体集合;不能被实例化。
1.1获取实体集合:
1.2获取或设置连接字符串:
1.3获取或设置数据连接类型:
1.4获取指定的实体:
2.数据库类型枚举
BSI.Enterprise.DB.Provider
1.实体操作类型枚举
2.Database类
主要功能是数据库中对象的数据提取和操作。
2.1获取数据库访问对象:
2.2创建命令:
2.3创建命令:
2.4获取数据库连接:
2.5获取数据库连接并尝试打开:
2.6根据Handler提取的字符串创建数据库连接:
2.7根据Handler提取的字符串创建数据库连接并尝试打开:
2.8通过SQL语句创建Command:
2.9获取分析器:
2.10获取实体操作工厂:
2.11关闭命令的数据库连接:
2.12关闭数据库连接:
2.13关闭事务的数据库连接:
2.14开始事务处理:
2.15开始事务并设置事务等级:
2.16关闭事务处理:
2.17添加实体对象到数据库:
2.18更新实体对象到数据库:
2.19从数据库删除实体对象:
2.20获取第一行第一列的值:
2.21获取DataTable:
2.22由查询器创建分页器:
2.23使用Entity集合执行事务:
2.24使用SQL语句集合执行事务:
2.25使用Command集合执行事务:
2.26加载Dataset:
2.27加载Dataset:
2.28加载Dataset:
2.29加载Dataset:
2.30执行Command得到Dataset:
2.31执行Command得到DataTable:
2.32执行Command得到Dataset:
2.33执行Command得到第一行第一列的值:
2.34执行Command得到第一行第一列的值:
2.35执行Command并返回影响行数:
2.36执行Command并返回影响行数:
2.37执行Command并返回DataReader:
2.38执行Command并返回DataReader:
2.39执行存储过程并返回DataReader:
2.40执行存储过程并返回DataTable:
2.41执行存储过程并返回Dataset:
2.42执行存储过程并返回影响行数:
3.DatabaseEngine类:
主要功能是对Database类的封装和初始化,是开发时操作数据库的主要类。
3.1 Database属性:
3.2初始化Database对象:
3.3初始化Database对象:
3.4初始化Database对象:
3.5初始化DatabaseEngine:
3.6初始化DatabaseEngine:
3.7初始化DatabaseEngine:
3.8获取数据操作类:
3.9开始事务处理:
3.10开始事务处理并设置事务等级:
3.11关闭事务处理:
4. DbProviderFactory类
主要功能是创建数据提供程序。
4.1创建数据提供程序:
4.2获取默认的提供程序:
4.3创建数据提供程序:
5. DbProvider类
主要功能是建立数据库连接,所有数据提供程序的基类。
5.1获取连接字符串属性:
5.2获取创建提供程序的工厂:
5.3解析BSI的SQL命令:
5.4解析BSI数据参数:
5.5生成实体操作类:
5.6发现SQL中的参数集合:
5.7创建参数名:
5.8创建列名:
、5.9查找最后一个新增的实体操作:
5.10获取参数前缀:
5.11获取左操作符:
5.12获取右操作符:
6. IPageSplit接口
主要功能是建立分页记录处理器。
6.1获取分页器一个页面显示的记录数:
6.2获取当前参与分页的记录总数:
6.3获取分页的页总数:
6.4获取当前页面的显示记录集:
6.5当前分页器采用的数据操作类:
6.6当前分页器采用的查询分析器:
7. PageSplit类
IPageSplit接口的实现类,所有分页记录处理器的基类。
7.1页面分页的SQL命令:
7.2获取记录总数的SQL命令:
8. IStatementFactory接口
主要功能是通过实体产生SqlModule类型。
8.1创建查询类型的SqlModule:
8.2创建插入类型的SqlModule:
8.3创建更新类型的SqlModule:
8.4创建删除类型的SqlModule:
9. StatementFactory类
IStatementFactory接口的实现类,所有实体操作工厂的基类。
10.蓝星信息数据参数结构
BSI.Enterprise.DB.Provider.Oracle
1.OracleDbProvider类
实现Oracle数据库下的DbProvider中的方法。
2.OraclePageSplit类
实现Oracle数据库下的PageSplit中的方法。
3.OracleStatementFactory类
实现Oracle数据库下的StatementFactory中的方法。
BSI.Enterprise.DB.Provider.SqlServer
1.SQLServerDbProvider类
实现SQLServer数据库下的DbProvider中的方法。
2. SQLServerPageSplit类
实现SQLServer数据库下的PageSplit中的方法。
3.SQLServerStatementFactory类
实现SQLServer数据库下的StatementFactory中的方法。
BSI.Enterprise.DB.Builder
1.EntityInfo类
主要功能是记录一个实体的信息。
1.1实体表名:
1.2操作类型:
1.3根据名称获取实体属性:
1.4获取实体的属性集合:
1.5获取实体主键集合:
1.6为实体添加属性:
1.7获取实体的列名全名:
1.8获取实体字段的代码类型:
1.9获取实体的字段名:
1.10获取实体字段的数据库类型:
1.11获取实体字段是否主键:
1.12获取一个实体:
1.13获取一个实体并赋值:。