书籍详情
面向对象项目开发经验大成:基于.NET实现
作者:牛树长 等著
出版社:电子工业出版社
出版时间:2009-04-01
ISBN:9787121083983
定价:¥98.00
购买这本书可以去
内容简介
《“面向对象”项目开发经验大成:基于.NET实现》以.NET C#为实现环境,通过大量的“自定义”构件由浅入深地诠释了“面向对象”理念的完整实践。针对每个控件(或应用设计)翔实地解析了“需求分析→命题抽象→设计构思→设计实现(封装)→运行效果(截图、验证)”的全过程。题材选择经典、广泛、通用,构思清晰严谨,代码经过验证,很多题材都可直接用于项目设计。以此为基础可构造自己的“开发平台”,可提高编程效率达50%以上,设计复用度达到70%以上。这些设计构思与设计理念基本与语言无关,在其他编程语言、数据库基础上同样可以实现且效果良好。《“面向对象”项目开发经验大成:基于.NET实现》能快速提升技术资本价值,特别适合于编程、需求、架构、项目管理等从业人员借鉴,也可为企业的技术积累提供参考性方案。
作者简介
关于作者:应用软件的开发是个令人困惑的职业,在面对中小企业应用的时候,很多经典的理论并不能得到成本的支持,如何才能成功实现复杂的管理目标在低成本、短工期内完成并不是一件容易做到的事情。在这方面作者有20多年的软件项目经验,曾为很多企业的信息化建设成功设计了各种不同行业的应用系统。善于把握面向对象理念与软件项目的内在联系,并能结合开发过程得出自己的感悟,与读者分享这些经验是作者的愿望。
目录
第1章 需求分析要略
本章从经验的角度叙述中小企业项目“需求分析”过程中所遇到的具体问题及相应的应对策略。
1.1 概述
1.2 素材搜集
1.2.1 素材搜集
1.2.2 素材的局限性
1.2.3 素材评价
1.3 需求分析
1.3.1 把握大局
1.3.2 掌握规律
1.3.3 体系构造
1.3.4 需求分析样例
1.4 需求方案撰写
1.4.1 售前方案
1.4.2 需求报告
1.4.3 需求规格
1.5 需求与项目风险
1.5.1 来自用户的风险
1.5.2 来自开发过程的风险
1.5.3 需求分析与对象
1.5.4 提升需求分析的能力
1.6 总结
第2章 数据体系与规则
本章要解决表、主键、内键、外键、数据字段的命名规范,以及控件、属性、方法的命名规范。数据体系构建策略的优劣对项目影响重大,也是提高团队开发效率的关键。
2.1 概述
2.2 命名规范
2.3 表结构定义
2.3.1 物理表命名
2.3.2 字段命名
2.3.3 总体约束
2.3.4 命名小结
2.4 物理表分类
2.4.1 参数表
2.4.2 词汇数据表
2.4.3 基础数据表
2.4.4 业务数据表
2.5 物理表设计
2.5.1 主键
2.5.2 外键设置
2.5.3 内键设置
2.6 关于索引
2.6.1 建立索引
2.6.2 联合索引
2.6.3 索引应用
2.7 实现与版本
2.7.1 设计实现
2.7.2 数据版本
2.8 代码命名规则
2.8.1 规范的意义
2.8.2 规范的目的性
2.8.3 命名规则定义
2.8.4 对象命名
2.8.5 类与对象命名
2.8.6 自定义类的主题字注册
2.8.7 其他命名规则
2.9 代码书写规范
2.10 总结(规范的作用)
第3章 自定义按钮控件
本章以系统的“Button”类为例讲解自定义控件封装的实现步骤与方法,针对每个命题详细讲解归纳、抽象、构思、设计、应用的全部过程,最终形成具有通用价值的按钮类。
3.1 概述
3.1.1 解决代码复用
3.1.2 统一设计模式
3.1.3 统一设计风格
3.1.4 便于系统维护
3.1.5 封装的粒度
3.2 自定义类
3.2.1 对象与封装
3.2.2 类与继承
3.2.3 类的属性
3.2.4 接口
3.2.5 自定义类
3.3 接口应用
3.3.1 接口实现
3.3.2 接口的意义
3.3.3 接口继承示例
3.3.4 接口继承样例
3.3.5 接口应用样例
3.4 录入辅助按钮
3.4.1 自定义“Button”到“BTN_”基础类
3.4.2 自定义“BTN_展开”子类(辅助编辑)
3.4.3 自定义“BTN_只读”子类(状态控制)
3.4.4 自定义“BTN_浏览”子类(打开文件)
3.4.5 自定义“BTN_上传”子类(转储文件)
3.4.6 自定义“BTN_路径”子类(文件位置)
3.4.7 自定义“BTN_图片”子类(图片管理)
3.4.8 自定义“BTN_结构”子类(辅助编辑)
3.4.9 “BTN_”类封装小结
3.5 工具栏按钮
3.5.1 录入过程控制
3.5.2 实现录入控制的途径
3.5.3 自定义“ToolStripButton”到“TSB_”类
3.5.4 自定义“TSB_退出”子类(关闭窗体)
3.5.5 自定义“TSB_增加”子类(数据级联)
3.5.6 自定义“TSB_删除”子类(数据级联)
3.5.7 自定义“TSB_复制”子类(记录复制)
3.5.8 自定义“TSB_修改”子类(数据维护)
3.5.9 自定义“TSB_保存”子类(数据存储)
3.5.10 自定义“TSB_刷新”子类
3.5.11 自定义“TSB_查询”子类(激发条件合成)
3.5.12 “TSB_”封装小结
3.6 自定义“Label”到“LBL_”类
3.6.1 命题与构思
3.6.2 代码实现
3.6.3 应用示例
3.7 总结(掌握封装的理念)
第4章 自定义数据控件
数据采集过程最能令人困惑,情况各异的功能性变化遍布于系统之中。如何构造简单、标准且具有良好的通用性的自定义控件则是本章所要解决的问题。
4.1 概述
4.2 自定义“Textbox”到“TB_”类
4.2.1 命题提出
4.2.2 代码实现
4.2.3 自动绑定数据源
4.2.4 自动生成助记码
4.2.5 应用正则表达式
4.2.6 自动生成条件子句
4.3 由“TB_”封装的子类
4.3.1 自定义“TB_定位访问”子类
4.3.2 自定义“TB_定位插入”子类
4.3.3 服务:FRM_重码选择
4.3.4 自定义“TB_数值”子类
4.3.5 自定义“TB_统计”子类
4.3.6 自定义“TB_取值”子类
4.3.7 由“TB_”封装的应用类
4.3.8 小结
4.4 自定义“Textbox”到“TB_票号”类
4.5 自定义“ComboBox”到“CBX_”类
4.5.1 命题提出
4.5.2 设计构思
4.5.3 代码实现
4.6 自定义“CBX_”的子类
4.6.1 封装子类的意义
4.6.2 自定义“CBX_词汇”子类
4.6.3 自定义“CBX_集合填写”子类
4.6.4 自定义“CBX_物理表”子类
4.6.5 自定义“CBX_表字段”子类
4.6.6 自定义“CBX_Grid列”子类
4.6.7 自定义“CBX_Grid数值列”子类
4.6.8 自定义“CBX_颜色选择”子类
4.6.9 小结
4.7 自定义“Listbox”到“LB_”类
4.7.1 代码实现
4.7.2 自定义“LB_物理表”子类
4.7.3 自定义“LB_表字段”子类
4.7.4 自定义“LB_Grid列”子类
4.7.5 自定义“LB_同比”子类
4.8 服务:FRM_结构字符串
4.9 自定义“DateTimePicker”到“DTP_”类
4.9.1 命题与思路
4.9.2 代码实现
4.9.3 应用样例
4.10 自定义“CheckBox”到“CKB_”类
4.10.1 命题提出
4.10.2 设计构思
4.10.3 代码实现
4.10.4 应用样例
4.11 自定义“RadioButton”到“RB_”类
4.12 总结(封装的成本价值)
第5章 自定义Grid控件
封装Grid控件需要更多的经验、归纳、抽象与参数,封装向着功能化发展。经过完善、强化的Grid控件集中解决了数据编程的难点问题,同时提升了数据的表现能力与控制能力。
5.1 概述
5.2 自定义“DataGridView”到“GDV_”类
5.2.1 命题提出
5.2.2 总体构思
5.2.3 总体效果
5.3 数据装载
5.3.1 命题提出
5.3.2 设计构思
5.3.3 综合样例
5.4 样式与规则
5.4.1 命题提出
5.4.2 构思与实现
5.4.3 应用样例
5.4.4 正则验证
5.5 动态设置
5.5.1 左侧锁定(随机定义锁定)
5.5.2 主从联动(设置)
5.5.3 主从联动(撤销)
5.5.4 同步刷新(数据集联合动作)
5.5.5 字段隐藏(设置可见与次序)
5.5.6 卡片控制
5.5.7 字段值统计(随机统计计算)
5.5.8 增加选择列(全选与撤销)
5.5.9 悬停提示(辅助提示)
5.6 网格参数
5.6.1 参数表(局部)
5.6.2 窗体与代码
5.6.3 数据集命名
5.6.4 约束表达式(记录级验证)
5.6.5 警示表达式(记录级警示)
5.6.6 判重表达式(字段联合约束)
5.6.7 强调色表达式(强调网格行)
5.7 数据服务
5.7.1 批量查找(逐个定位)
5.7.2 联合排序(动态组合字段)
5.7.3 动态过滤(动态条件设置)
5.7.4 字段赋值(初始化辅助)
5.7.5 批量替换(按特征值替换)
5.8 总结(封装与服务)
第6章 数据对象服务
本章集中解决了一些几乎任何系统都会碰到的数据应用问题,这里尽量从通用的角度给出了解决相对经典的方案。
6.1 概述
6.2 格式化输出
6.2.1 打印样式管理方案
6.2.2 套用Excel样式
6.2.3 自定义图形展示
6.3 导入与导出
6.3.1 导出(窗体数据到Excel等文件)
6.3.2 导入(从Excel等文件导入数据)
6.3.3 方案化导入导出(电子票据辅助处理)
6.3.4 模式化的数据导出(财务接口辅助)
6.3.5 SQL直接导出(从查询导出Excel文件)
6.4 相关性的遍历
6.4.1 穷尽“谁与我相关”(对主键引用的遍历)
6.4.2 穷尽“我与谁相关”(对引用外键的遍历)
6.5 主键值替换(遍历式变更)
6.5.1 命题提出
6.5.2 解决思路
6.5.3 窗体与实现
6.5.4 应用样例
6.6 主从键值设置(内键关系设置)
6.6.1 命题提出
6.6.2 设计与实现
6.6.3 应用样例
6.7 数据审计(日志自动化)
6.7.1 问题提出
6.7.2 解决思路
6.7.3 审计历程
6.7.4 审计查询
6.8 数据体系初始化
6.8.1 命题提出
6.8.2 窗体与实现
6.8.3 应用样例
6.9 关于数据结构的文档
6.9.1 基于代码方式的实现
6.9.2 基于参数方式的实现
6.10 数据备份与恢复
6.10.1 实现方案
6.10.2 代码实现
6.10.3 应用样例
6.11 TSB_提交(按钮)
6.11.1 命题提出
6.11.2 设计构思
6.11.3 代码实现
6.11.4 应用样例
6.12 业务计算器
6.13 总结(功能抽象与实现)
第7章 设计模式与容器控件
本章将从具体实现向模式化实现过渡、从简单的控件封装向组件化封装过渡,从功能化实现向自动化实现过渡。本章的控件设计对复杂的应用系统将会起到至关重的作用。
7.1 设计模式
7.1.1 理解设计模式
7.1.2 运用设计模式
7.1.3 数据应用模式
7.1.4 实现的应用模式
7.2 数据衍生
7.2.1 自定义“BTN_冲红”子类(对冲衍生)
7.2.2 应用样例
7.2.3 自定义“BTN_拆解”子类(拆解衍生)
7.3 自定义“Panel”到“PNL_”类(数据绑定)
7.3.1 问题提出
7.3.2 解决思路
7.3.3 代码实现
7.3.4 应用样例
7.4 填充模式(标注项填写)
7.4.1 自定义“PNL_填充”子类
7.4.2 解决思路
7.4.3 代码实现
7.4.4 自定义“BTN_填充”子类
7.4.5 应用样例
7.5 查询模式(动态条件)
7.5.1 自定义“PNL_查询”子类(动态条件)
7.5.2 自定义“BTN_查询”子类(查询按钮)
7.5.3 准动态条件(条件辅助)
7.5.4 应用样例
7.6 分组模式
7.6.1 自定义“TreeView”到“TV_”类(随机字段)
7.6.2 命题提出
7.6.3 设计构思
7.6.4 参数表
7.6.5 代码实现
7.6.6 服务:“分组属性设置”
7.6.7 应用样例
7.6.8 小结
7.7 自定义“TreeView”到“TV_编码”类(结构化字段)
7.8 总结(功能中的自动化)
第8章 Form封装与应用模式
本章介绍了窗体的封装及窗体模板;同时介绍了两个重要应用:在线式的“帮助文档”撰写、编译及具有通用性的工作流程控制器,它们对项目的作用十分明细。
8.1 概述
8.1.1 Form封装
8.1.2 应用模式
8.1.3 自定义“FORM”到“FRM_”类
8.2 如何实现“应用功能”
8.2.1 数据采集
8.2.2 卡片模式
8.2.3 查询模式
8.2.4 查询模式与数据处理模式的结合
8.2.5 复杂应用模式
8.3 生成器模式与生成器
8.3.1 数据卡片“生成器”
8.3.2 自定义“FRM_卡片”子类
8.3.3 实现“字段?控件类”映射
8.3.4 “生成器”实现
8.3.5 “生成器”运用
8.3.6 编辑“生成器”结果
8.3.7 对生成结果的引用
8.3.8 “应用类”生成器
8.3.9 小结(生成代码的代码)
8.4 “在线帮助”生成器
8.4.1 帮助文档制作(常规方式)
8.4.2 帮助文档调用(常规方式)
8.4.3 命题提出
8.4.4 设计思路
8.4.5 关于HTML文件的粒度
8.4.6 自定义“CLS_HTML转换CHM”类
8.4.7 生成器窗体
8.4.8 参数文件生成
8.4.9 实现“在线帮助”
8.4.10 “在线帮助”部署
8.4.11 在线帮助样例(更新该样例)
8.4.12 支持“在线撰写”
8.4.13 在线撰写样例
8.4.14 支持“在线编译”
8.4.15 “在线编译”实现
8.4.16 小结
8.5 流程控制器
8.5.1 总体构思
8.5.2 问题提出
8.5.3 流程定义数据
8.5.4 流程目标数据
8.5.5 流程历程数据
8.5.6 节点上的策略
8.5.7 自定义“PNL_审批”类
8.5.8 流程管理的实现
8.5.9 流程构造样例
8.5.10 流程应用样例
8.5.11 小结
8.6 总结(设计时序与流程)
第9章 运行环境构建与部署
本章为应用系统的客户端构建了一个功能性较强的实现方案,这是有效实现项目复用所要依赖的基础。最后介绍了系统部署及部署中的一些常见问题。
9.1 概述
9.1.1 总体流程
9.1.2 原始形态
9.1.3 初步设想
9.2 实现步骤
9.2.1 关于App.config文件
9.2.2 自定义Main到“FRM_主窗口类”
9.2.3 全局变量(静态预置)
9.3 外部参数
9.3.1 命题提出
9.3.2 参数表与参数引用
9.3.3 几个类似的参数表
9.3.4 维护窗体
9.3.5 应用样例
9.4 身份认证
9.4.1 通行字验证规则
9.4.2 用户注册
9.4.3 权限委托
9.5 权限策略
9.5.1 授权策略综述
9.5.2 授权机制示意图
9.5.3 “功能”授权
9.5.4 “字段”授权
9.5.5 “控件”授权
9.5.6 “键字段”授权
9.5.7 小结
9.6 菜单管理
9.6.1 命题与构思
9.6.2 功能授权
9.6.3 菜单维护窗体
9.6.4 图形化菜单
9.6.5 小结
9.7 功能管理
9.7.1 问题提出
9.7.2 解决思路
9.7.3 运行效果
9.8 自定义ToolStripDropDownButton到“TSD_”类
9.8.1 命题提出
9.8.2 构思与实现
9.8.3 应用效果
9.9 辅助控件
9.9.1 主窗体辅助
9.9.2 一般窗体辅助
9.10 动态属性
9.10.1 自定义“PropertyGrid”到“FPG_”类
9.10.2 命题提出
9.10.3 设计构思
9.10.4 代码实现
9.10.5 窗体与代码
9.10.6 应用样例
9.11 风格管理
9.11.1 命题提出
9.11.2 设计构思
9.12 总结(作用与评价)
9.13 应用系统部署
9.13.1 实现部署的工具
9.13.2 部署策略的制定
9.13.3 发布ClickOnce应用程序
9.13.4 部署发布的样例
9.13.5 部署发布过程中的常见问题
9.13.6 版本更新过程中的常见问题
第10章 工作平台构建
本章重申上述设计形成开发平台的作用与意义。
10.1 概述
10.2 平台构建
10.2.1 确定目标
10.2.2 转变观念
10.2.3 制定规范
10.2.4 分步实现
10.2.5 示意图
10.3 效果与评价
10.3.1 改进需求分析
10.3.2 强化数据体系
10.3.3 代码与复用
10.3.4 可靠性
10.3.5 适应性
10.3.6 改进项目管理
10.3.7 合理支付成本
10.3.8 规范实施过程
10.3.9 提高综合效益
10.4 形成技术积累
10.5 持续与扩充
10.6 总结
附录A 方法代码汇编
本书各个设计方案中所引用的公共方法,这是实现控件设计的基础。
A.1 概述
A.2 方法库“CLS_公用方法”
A.2.1 方法库的形成
A.2.2 方法库框构
A.2.3 方法库代码
A.3 方法库“CLS_数据访问”
A.3.1 数据访问库的形成
A.3.2 数据访问库的框构
A.3.3 数据访问库的代码
A.4 公用变量
A.5 公用接口
A.6 总结(函数与方法)
编后语
本章从经验的角度叙述中小企业项目“需求分析”过程中所遇到的具体问题及相应的应对策略。
1.1 概述
1.2 素材搜集
1.2.1 素材搜集
1.2.2 素材的局限性
1.2.3 素材评价
1.3 需求分析
1.3.1 把握大局
1.3.2 掌握规律
1.3.3 体系构造
1.3.4 需求分析样例
1.4 需求方案撰写
1.4.1 售前方案
1.4.2 需求报告
1.4.3 需求规格
1.5 需求与项目风险
1.5.1 来自用户的风险
1.5.2 来自开发过程的风险
1.5.3 需求分析与对象
1.5.4 提升需求分析的能力
1.6 总结
第2章 数据体系与规则
本章要解决表、主键、内键、外键、数据字段的命名规范,以及控件、属性、方法的命名规范。数据体系构建策略的优劣对项目影响重大,也是提高团队开发效率的关键。
2.1 概述
2.2 命名规范
2.3 表结构定义
2.3.1 物理表命名
2.3.2 字段命名
2.3.3 总体约束
2.3.4 命名小结
2.4 物理表分类
2.4.1 参数表
2.4.2 词汇数据表
2.4.3 基础数据表
2.4.4 业务数据表
2.5 物理表设计
2.5.1 主键
2.5.2 外键设置
2.5.3 内键设置
2.6 关于索引
2.6.1 建立索引
2.6.2 联合索引
2.6.3 索引应用
2.7 实现与版本
2.7.1 设计实现
2.7.2 数据版本
2.8 代码命名规则
2.8.1 规范的意义
2.8.2 规范的目的性
2.8.3 命名规则定义
2.8.4 对象命名
2.8.5 类与对象命名
2.8.6 自定义类的主题字注册
2.8.7 其他命名规则
2.9 代码书写规范
2.10 总结(规范的作用)
第3章 自定义按钮控件
本章以系统的“Button”类为例讲解自定义控件封装的实现步骤与方法,针对每个命题详细讲解归纳、抽象、构思、设计、应用的全部过程,最终形成具有通用价值的按钮类。
3.1 概述
3.1.1 解决代码复用
3.1.2 统一设计模式
3.1.3 统一设计风格
3.1.4 便于系统维护
3.1.5 封装的粒度
3.2 自定义类
3.2.1 对象与封装
3.2.2 类与继承
3.2.3 类的属性
3.2.4 接口
3.2.5 自定义类
3.3 接口应用
3.3.1 接口实现
3.3.2 接口的意义
3.3.3 接口继承示例
3.3.4 接口继承样例
3.3.5 接口应用样例
3.4 录入辅助按钮
3.4.1 自定义“Button”到“BTN_”基础类
3.4.2 自定义“BTN_展开”子类(辅助编辑)
3.4.3 自定义“BTN_只读”子类(状态控制)
3.4.4 自定义“BTN_浏览”子类(打开文件)
3.4.5 自定义“BTN_上传”子类(转储文件)
3.4.6 自定义“BTN_路径”子类(文件位置)
3.4.7 自定义“BTN_图片”子类(图片管理)
3.4.8 自定义“BTN_结构”子类(辅助编辑)
3.4.9 “BTN_”类封装小结
3.5 工具栏按钮
3.5.1 录入过程控制
3.5.2 实现录入控制的途径
3.5.3 自定义“ToolStripButton”到“TSB_”类
3.5.4 自定义“TSB_退出”子类(关闭窗体)
3.5.5 自定义“TSB_增加”子类(数据级联)
3.5.6 自定义“TSB_删除”子类(数据级联)
3.5.7 自定义“TSB_复制”子类(记录复制)
3.5.8 自定义“TSB_修改”子类(数据维护)
3.5.9 自定义“TSB_保存”子类(数据存储)
3.5.10 自定义“TSB_刷新”子类
3.5.11 自定义“TSB_查询”子类(激发条件合成)
3.5.12 “TSB_”封装小结
3.6 自定义“Label”到“LBL_”类
3.6.1 命题与构思
3.6.2 代码实现
3.6.3 应用示例
3.7 总结(掌握封装的理念)
第4章 自定义数据控件
数据采集过程最能令人困惑,情况各异的功能性变化遍布于系统之中。如何构造简单、标准且具有良好的通用性的自定义控件则是本章所要解决的问题。
4.1 概述
4.2 自定义“Textbox”到“TB_”类
4.2.1 命题提出
4.2.2 代码实现
4.2.3 自动绑定数据源
4.2.4 自动生成助记码
4.2.5 应用正则表达式
4.2.6 自动生成条件子句
4.3 由“TB_”封装的子类
4.3.1 自定义“TB_定位访问”子类
4.3.2 自定义“TB_定位插入”子类
4.3.3 服务:FRM_重码选择
4.3.4 自定义“TB_数值”子类
4.3.5 自定义“TB_统计”子类
4.3.6 自定义“TB_取值”子类
4.3.7 由“TB_”封装的应用类
4.3.8 小结
4.4 自定义“Textbox”到“TB_票号”类
4.5 自定义“ComboBox”到“CBX_”类
4.5.1 命题提出
4.5.2 设计构思
4.5.3 代码实现
4.6 自定义“CBX_”的子类
4.6.1 封装子类的意义
4.6.2 自定义“CBX_词汇”子类
4.6.3 自定义“CBX_集合填写”子类
4.6.4 自定义“CBX_物理表”子类
4.6.5 自定义“CBX_表字段”子类
4.6.6 自定义“CBX_Grid列”子类
4.6.7 自定义“CBX_Grid数值列”子类
4.6.8 自定义“CBX_颜色选择”子类
4.6.9 小结
4.7 自定义“Listbox”到“LB_”类
4.7.1 代码实现
4.7.2 自定义“LB_物理表”子类
4.7.3 自定义“LB_表字段”子类
4.7.4 自定义“LB_Grid列”子类
4.7.5 自定义“LB_同比”子类
4.8 服务:FRM_结构字符串
4.9 自定义“DateTimePicker”到“DTP_”类
4.9.1 命题与思路
4.9.2 代码实现
4.9.3 应用样例
4.10 自定义“CheckBox”到“CKB_”类
4.10.1 命题提出
4.10.2 设计构思
4.10.3 代码实现
4.10.4 应用样例
4.11 自定义“RadioButton”到“RB_”类
4.12 总结(封装的成本价值)
第5章 自定义Grid控件
封装Grid控件需要更多的经验、归纳、抽象与参数,封装向着功能化发展。经过完善、强化的Grid控件集中解决了数据编程的难点问题,同时提升了数据的表现能力与控制能力。
5.1 概述
5.2 自定义“DataGridView”到“GDV_”类
5.2.1 命题提出
5.2.2 总体构思
5.2.3 总体效果
5.3 数据装载
5.3.1 命题提出
5.3.2 设计构思
5.3.3 综合样例
5.4 样式与规则
5.4.1 命题提出
5.4.2 构思与实现
5.4.3 应用样例
5.4.4 正则验证
5.5 动态设置
5.5.1 左侧锁定(随机定义锁定)
5.5.2 主从联动(设置)
5.5.3 主从联动(撤销)
5.5.4 同步刷新(数据集联合动作)
5.5.5 字段隐藏(设置可见与次序)
5.5.6 卡片控制
5.5.7 字段值统计(随机统计计算)
5.5.8 增加选择列(全选与撤销)
5.5.9 悬停提示(辅助提示)
5.6 网格参数
5.6.1 参数表(局部)
5.6.2 窗体与代码
5.6.3 数据集命名
5.6.4 约束表达式(记录级验证)
5.6.5 警示表达式(记录级警示)
5.6.6 判重表达式(字段联合约束)
5.6.7 强调色表达式(强调网格行)
5.7 数据服务
5.7.1 批量查找(逐个定位)
5.7.2 联合排序(动态组合字段)
5.7.3 动态过滤(动态条件设置)
5.7.4 字段赋值(初始化辅助)
5.7.5 批量替换(按特征值替换)
5.8 总结(封装与服务)
第6章 数据对象服务
本章集中解决了一些几乎任何系统都会碰到的数据应用问题,这里尽量从通用的角度给出了解决相对经典的方案。
6.1 概述
6.2 格式化输出
6.2.1 打印样式管理方案
6.2.2 套用Excel样式
6.2.3 自定义图形展示
6.3 导入与导出
6.3.1 导出(窗体数据到Excel等文件)
6.3.2 导入(从Excel等文件导入数据)
6.3.3 方案化导入导出(电子票据辅助处理)
6.3.4 模式化的数据导出(财务接口辅助)
6.3.5 SQL直接导出(从查询导出Excel文件)
6.4 相关性的遍历
6.4.1 穷尽“谁与我相关”(对主键引用的遍历)
6.4.2 穷尽“我与谁相关”(对引用外键的遍历)
6.5 主键值替换(遍历式变更)
6.5.1 命题提出
6.5.2 解决思路
6.5.3 窗体与实现
6.5.4 应用样例
6.6 主从键值设置(内键关系设置)
6.6.1 命题提出
6.6.2 设计与实现
6.6.3 应用样例
6.7 数据审计(日志自动化)
6.7.1 问题提出
6.7.2 解决思路
6.7.3 审计历程
6.7.4 审计查询
6.8 数据体系初始化
6.8.1 命题提出
6.8.2 窗体与实现
6.8.3 应用样例
6.9 关于数据结构的文档
6.9.1 基于代码方式的实现
6.9.2 基于参数方式的实现
6.10 数据备份与恢复
6.10.1 实现方案
6.10.2 代码实现
6.10.3 应用样例
6.11 TSB_提交(按钮)
6.11.1 命题提出
6.11.2 设计构思
6.11.3 代码实现
6.11.4 应用样例
6.12 业务计算器
6.13 总结(功能抽象与实现)
第7章 设计模式与容器控件
本章将从具体实现向模式化实现过渡、从简单的控件封装向组件化封装过渡,从功能化实现向自动化实现过渡。本章的控件设计对复杂的应用系统将会起到至关重的作用。
7.1 设计模式
7.1.1 理解设计模式
7.1.2 运用设计模式
7.1.3 数据应用模式
7.1.4 实现的应用模式
7.2 数据衍生
7.2.1 自定义“BTN_冲红”子类(对冲衍生)
7.2.2 应用样例
7.2.3 自定义“BTN_拆解”子类(拆解衍生)
7.3 自定义“Panel”到“PNL_”类(数据绑定)
7.3.1 问题提出
7.3.2 解决思路
7.3.3 代码实现
7.3.4 应用样例
7.4 填充模式(标注项填写)
7.4.1 自定义“PNL_填充”子类
7.4.2 解决思路
7.4.3 代码实现
7.4.4 自定义“BTN_填充”子类
7.4.5 应用样例
7.5 查询模式(动态条件)
7.5.1 自定义“PNL_查询”子类(动态条件)
7.5.2 自定义“BTN_查询”子类(查询按钮)
7.5.3 准动态条件(条件辅助)
7.5.4 应用样例
7.6 分组模式
7.6.1 自定义“TreeView”到“TV_”类(随机字段)
7.6.2 命题提出
7.6.3 设计构思
7.6.4 参数表
7.6.5 代码实现
7.6.6 服务:“分组属性设置”
7.6.7 应用样例
7.6.8 小结
7.7 自定义“TreeView”到“TV_编码”类(结构化字段)
7.8 总结(功能中的自动化)
第8章 Form封装与应用模式
本章介绍了窗体的封装及窗体模板;同时介绍了两个重要应用:在线式的“帮助文档”撰写、编译及具有通用性的工作流程控制器,它们对项目的作用十分明细。
8.1 概述
8.1.1 Form封装
8.1.2 应用模式
8.1.3 自定义“FORM”到“FRM_”类
8.2 如何实现“应用功能”
8.2.1 数据采集
8.2.2 卡片模式
8.2.3 查询模式
8.2.4 查询模式与数据处理模式的结合
8.2.5 复杂应用模式
8.3 生成器模式与生成器
8.3.1 数据卡片“生成器”
8.3.2 自定义“FRM_卡片”子类
8.3.3 实现“字段?控件类”映射
8.3.4 “生成器”实现
8.3.5 “生成器”运用
8.3.6 编辑“生成器”结果
8.3.7 对生成结果的引用
8.3.8 “应用类”生成器
8.3.9 小结(生成代码的代码)
8.4 “在线帮助”生成器
8.4.1 帮助文档制作(常规方式)
8.4.2 帮助文档调用(常规方式)
8.4.3 命题提出
8.4.4 设计思路
8.4.5 关于HTML文件的粒度
8.4.6 自定义“CLS_HTML转换CHM”类
8.4.7 生成器窗体
8.4.8 参数文件生成
8.4.9 实现“在线帮助”
8.4.10 “在线帮助”部署
8.4.11 在线帮助样例(更新该样例)
8.4.12 支持“在线撰写”
8.4.13 在线撰写样例
8.4.14 支持“在线编译”
8.4.15 “在线编译”实现
8.4.16 小结
8.5 流程控制器
8.5.1 总体构思
8.5.2 问题提出
8.5.3 流程定义数据
8.5.4 流程目标数据
8.5.5 流程历程数据
8.5.6 节点上的策略
8.5.7 自定义“PNL_审批”类
8.5.8 流程管理的实现
8.5.9 流程构造样例
8.5.10 流程应用样例
8.5.11 小结
8.6 总结(设计时序与流程)
第9章 运行环境构建与部署
本章为应用系统的客户端构建了一个功能性较强的实现方案,这是有效实现项目复用所要依赖的基础。最后介绍了系统部署及部署中的一些常见问题。
9.1 概述
9.1.1 总体流程
9.1.2 原始形态
9.1.3 初步设想
9.2 实现步骤
9.2.1 关于App.config文件
9.2.2 自定义Main到“FRM_主窗口类”
9.2.3 全局变量(静态预置)
9.3 外部参数
9.3.1 命题提出
9.3.2 参数表与参数引用
9.3.3 几个类似的参数表
9.3.4 维护窗体
9.3.5 应用样例
9.4 身份认证
9.4.1 通行字验证规则
9.4.2 用户注册
9.4.3 权限委托
9.5 权限策略
9.5.1 授权策略综述
9.5.2 授权机制示意图
9.5.3 “功能”授权
9.5.4 “字段”授权
9.5.5 “控件”授权
9.5.6 “键字段”授权
9.5.7 小结
9.6 菜单管理
9.6.1 命题与构思
9.6.2 功能授权
9.6.3 菜单维护窗体
9.6.4 图形化菜单
9.6.5 小结
9.7 功能管理
9.7.1 问题提出
9.7.2 解决思路
9.7.3 运行效果
9.8 自定义ToolStripDropDownButton到“TSD_”类
9.8.1 命题提出
9.8.2 构思与实现
9.8.3 应用效果
9.9 辅助控件
9.9.1 主窗体辅助
9.9.2 一般窗体辅助
9.10 动态属性
9.10.1 自定义“PropertyGrid”到“FPG_”类
9.10.2 命题提出
9.10.3 设计构思
9.10.4 代码实现
9.10.5 窗体与代码
9.10.6 应用样例
9.11 风格管理
9.11.1 命题提出
9.11.2 设计构思
9.12 总结(作用与评价)
9.13 应用系统部署
9.13.1 实现部署的工具
9.13.2 部署策略的制定
9.13.3 发布ClickOnce应用程序
9.13.4 部署发布的样例
9.13.5 部署发布过程中的常见问题
9.13.6 版本更新过程中的常见问题
第10章 工作平台构建
本章重申上述设计形成开发平台的作用与意义。
10.1 概述
10.2 平台构建
10.2.1 确定目标
10.2.2 转变观念
10.2.3 制定规范
10.2.4 分步实现
10.2.5 示意图
10.3 效果与评价
10.3.1 改进需求分析
10.3.2 强化数据体系
10.3.3 代码与复用
10.3.4 可靠性
10.3.5 适应性
10.3.6 改进项目管理
10.3.7 合理支付成本
10.3.8 规范实施过程
10.3.9 提高综合效益
10.4 形成技术积累
10.5 持续与扩充
10.6 总结
附录A 方法代码汇编
本书各个设计方案中所引用的公共方法,这是实现控件设计的基础。
A.1 概述
A.2 方法库“CLS_公用方法”
A.2.1 方法库的形成
A.2.2 方法库框构
A.2.3 方法库代码
A.3 方法库“CLS_数据访问”
A.3.1 数据访问库的形成
A.3.2 数据访问库的框构
A.3.3 数据访问库的代码
A.4 公用变量
A.5 公用接口
A.6 总结(函数与方法)
编后语
猜您喜欢