请输入您要查询的百科知识:

 

词条 .Net软件设计新思维
释义

该书从。NET企业商务管理软件新思维设计角度出发,以C#编程语言为基础,采用XML组件即插即用的方式来开发管理软件。XML在这套方法中起到灵魂作用,它就好像一种胶,把所有的DLL粘到一起,真正运行的还是DLL。该书包括两部分,第一部分是“商务新星。NET2008”(Business4.0)商务应用开发平台部分(管理软件开发平台),可进行“即插即用”傻瓜式的企业管理软件的开发;第二部分是底层平台部分(XmlDesigner2008设计器),商务新星。NET2008应用开发平台部分是完全基于底层平台的支持,来实现即插即用快速开发MIS应用等业务功能的。

图书信息

作 者:陈俊先,高阳著出 版 社: 电子工业出版社

出版时间: 2009-9-1

页 数:428页

开 本: 16开

I S B N :9787121093784

定价:69.00元(含光盘1张)

内容简介

读者通过学习这种新思维开发模式,可以快速适应数据库结构变化、业务逻辑变化及程序界面变化,而且使用本书所提供的可视图形化设计器,无须编码就可以改变数据库结构、用户界面,以及自动生成程序源代码和DLL。也可以掌握如何将一个XML组件任意插到现有的程序中,开发程序的过程就像搭积木一样用一块块积木构建出整个系统。通过本书的学习,读者可以轻松掌握这种原理和开发技巧,从而开发出各个行业的商务企业管理软件。

本书既可作为大专院校相关专业师生的教学参考书,也可供计算机及其相关领域的工程技术人员查阅和开发毕业论文参考之用。对于.NET程序员和普通计算机爱好者,本书也不失为帮助他们开拓思维和开发应用商务企业管理软件的一本深入浅出的计算机读物。

前言

一个真实的故事

1996年10月,一套经历了2年多时间开发出来的商务管理软件终于问世了,它带给我们无限的喜悦。2年多辛苦努力,800多个不眠之夜,终于换来了令人欣慰的成果!客户开始接受这套系统,销量也开始增多,从1个、2个、10个,…,100个……

1999年,经过3年的努力,我们的商务管理系统在市场上销量大增。可是这并没有给我们开发人员带来喜悦,正相反,带来的却是沉重的负担。面对这么多的客户,有一个问题很突出地摆在面前:

每个客户都会有些特殊的需求,这些需求不改动系统是无法满足的;如果改动系统,由谁来做?

怎么做?

版本怎样维护?

要多少个版本才能够用?

一个版本升级了,是否其他版本也要升级?

一个一个问题摆在开发人员的面前。开发人员从最初1个人、2个人,20个人……这样发展下去要多少人能满足需要呢?

随着人员的增加,开发成本急剧上升,但没有迹象表明这种状况什么时候会停下来。客户多不是好事却成了负担!这是开始没有想到的。

对于这些问题,每一个开发人员都非常清楚,但谁也没有办法解决。针对这些问题,我们召开了全体开发人员大会,笔者提出了开发管理软件开发平台的想法。所谓的平台就是从众多的需求中抽象出不变的东西,在这个平台的基础上再分别开发特定需求的应用。想法却遭到了全体开发人员的反对。他们认为:想法是好的,却实现不了。也难怪,那时所用的开发工具还只是VB!

对于不同行业的应用可以用同一套程序吗

有经验的开发人员都知道,对于不同行业由于需求差别巨大,不可能使用同一套程序。即使同一行业,不同企业的需求也是有差别的,这是目前在国内开发企业管理软件应用所面临的局面。很难想象一家服装企业与一家医药企业对管理软件的要求是一样的。退一步说,即使要求相同,那么底层数据库结构也是不同的。比如,医药企业可能要求有批号、生产日期等,而服装企业则要求有尺码、颜色等,这显然是不同的。那您能把数据库表的结构设计成既包含批号、生产日期又有尺码、颜色等字段吗?显然是不能的,这违反了数据库冗余约束不说,更重要的是对于不同行业需要设计多少个字段?而这些字段又是什么类型?对于一个未知的需求,你无法设计。

开发不同行业的管理软件,从数据库底层到界面表示层都是不同的,都要发生变化,这些变化要求开发人员自底向上各个层面都要改动程序。因此,开发出同一套程序适用不同行业的需求是开发人员的梦想。那么能不能开发出一套程序适用于不同企业或行业呢?如果能又将怎样才能做到呢?

积木的启示

2001年,3岁的儿子在玩积木,他把积木拆了搭,搭了拆,摆出各式各样的形状图案,有木马、桥、汽车、高楼、城堡……看着不断变化的形状,笔者心里在想,软件开发是否也能像搭积木一样任意搭建自己想要的系统呢?如果能那样该多好啊!这种想法已经有三年了,但有好的想法,却很难实现,正像同事们反对的那样:“想法很好!实现不了!”

2001年,笔者看到了Microsoft Visual Studio2002测试版,就开始试用,这不就是要找的开发工具吗!用它可以实现那个平台了!可是又怎样才能像搭积木那样搭建软件系统呢?软件系统的积木又是什么呢?一个偶然的机会在报纸上看到了介绍XML。XML是什么?XML能做什么?带着这种疑问开始了XML探寻。经过研究探索,发现XML正是要找的软件系统的积木!

成果

有了XML这种积木,借助于.NET和XML技术,就可以实现程序的即插即用了。经过几年的努力,笔者成功地开发出了基于XML组件的即插即用的《俊先管理软件开发平台》。用这套平台可以快速开发出自己想要的管理系统,并且也能随着用户需求的变化而快速修改系统,并不会对系统造成影响。

本书也是这一平台的衍生物,它详细地介绍了这种快速开发新模式,以让更多人受益。

本书的主要内容

本书共包括15章,每章的主要内容如下:

第1章“体验软件开发新思维”,让你感受一下“软件开发新思维”下的软件开发过程。通过引入销售订单的例子,介绍了怎样建立数据集文件(xsd)、界面文件(xml),体验XML组件的即插即用功能。

第2章“XML组件即插即用的机理”,介绍了XML组件的概念,以及.NET组件的属性和事件的XML表示及处理机制。同时,阐述了数据绑定和本书的数据存取机理。也介绍了本书最重要的一个类XmlForm和本书的特色:“解析表达式和Where绑定”。

第3章“构建.NET窗体设计器最佳实践”,介绍了.NET Framework 2.0 的 Form设计器原理、XML文件的读/写,以及源代码生成和编译源码为DLL文件等。

第4章“打印报表设计器基础”是打印报表设计器的基础知识准备,介绍了打印报表设计元素、设计元素的属性替代对象、数据绑定,以及这些设计元素的内存结构表示。另外,也介绍了打印报表与界面的关系。

第5章“打印报表设计器最佳实践”,介绍了打印报表设计器的实现过程,以及打印设计元素的打印输出转换、分页打印、客户自定义打印、卡片式打印。

第6章“新思维之商务管理系统体系结构”,介绍了在软件设计新思维下,一个管理软件《商务新星.NET》的架构,也介绍了《商务新星.NET》的服务程序、配置文件等。

第7章“像搭积木一样搭建软件最佳实践”,比较完整地介绍了采用软件开发新模式开发管理软件的全过程,包括构建档案、单据、查询等。

第8章“新思维下的数据存取”,介绍了一种通用的与数据库无关(SQL Server 或Oracle)、与业务逻辑无关的数据(数据库访问)存取方式。

第9章“数据转换与生成最佳实践”,介绍了一张单据或查询生成另一种单据的过程,例如,由销售订单生成出货单等。

第10章“远程数据交换最佳实践”,介绍了主要解决连锁企业各分公司或部门(比如药店)与总部之间远程数据交换问题。由于每个部分都存在独立的数据库和管理系统,因此需要通过导入导出数据的方式来交换数据。本书中导入导出的文件采用XML数据格式。

第11章“数据备份与恢复”,介绍了采用SQL Server Management Objects(SMO)实现数据库备份与恢复原理,也介绍了一些相关SMO对象。

第12章“业务逻辑设计最佳实践”,介绍了《商务新星.NET》的一些主要的业务逻辑(存储过程)的实现,有进货业务、销售业务、收款业务、付款业务等。

第13章“自扩展商务管理系统”,介绍了对于已经开发完成的管理系统,如何在需求发生变化时扩展或修改原系统,以满足用户的要求。

第14章“Web客户端程序设计基础”,主要介绍了Web客户端程序基类XmlPage类、WebForm的数据绑定、数据更新机制、WebForm的事件处理机制等。

第15章“构建Web页最佳实践”,介绍了采用软件设计新思维方式构建一个WebForm页。

如何阅读本书

在阅读此书前,读者应当熟悉.NET编程和XML技术。

全书分两大部分。

第一部分(第1~5章)是基础部分,但并不是说非要阅读不可(除第2章外)。对于一些对如何实现Form设计器感兴趣的读者可以深入学习第一部分。但对于第2章“XML组件即插即用的机理”,不管你是否想了解Form设计器都应该仔细阅读,因为这章是后面的基础。

第二部分(第6~15章)是《商务新星.NET》管理软件的部分,如果你是为客户开发管理软件的读者或是做毕业设计的本科生或硕士研究生,你都要认真阅读这部分。

致读者

经过几个月的努力,今天终于完成了《.NET软件设计新思维——像搭积木一样搭建软件》的全部书稿,在此先要感谢支持和鼓励我的朋友!

网上很多朋友对《商务新星.NET》非常关注,多次问什么时间能发布《商务新星.NET》新版本?《商务新星.NET》3.0版还是于2005年在网上发布的,几年来由于种种原因一直没有升级。《商务新星.NET》3.0版是用Microsoft VisualStudio2003开发的,它适应.NET Framework 1.1,而目前Microsoft VisualStudio2008已经发布很长时间了,所以《商务新星.NET》3.0迫切需要进行升级。最新版《商务新星.NET》4.0是使用MicrosoftVisual Studio 2008开发的,它是基于.NETFramework2.0的。《商务新星.NET》4.0是对3.0的全面升级,并且有重大改进(把XML编译为DLL)。

为了感谢关心和支持《商务新星.NET》的朋友,在本书出版的同时,本人贡献了《商务新星.NET》(Business 4.0)和《俊先管理软件开发平台》(XmlDesigner2008)的全部源码。全部源码超过30万行(C#),可供感兴趣的朋友学习之用。

目录

第一部分

第1章 体验软件开发新思维 2

1.1 从一个实例开始 3

1.2 数据库表结构设计 4

1.3 采用传统软件开发模式构建 8

1.3.1 构建数据源 8

1.3.2 构建程序界面 11

1.3.3 修改绑定源 14

1.3.4 修改SQL语句和数据集 15

1.3.5 编写程序 16

1.3.6 体验开发成果 20

1.4 采用软件开发新模式构建 20

1.4.1 构建数据集 21

1.4.2 体验XML组件即插即用 24

1.4.3 建立SQL的绑定 28

1.4.4 建立数据的绑定 29

1.4.5 事件挂接处理 32

1.4.6 体验新模式成果 34

1.5 软件开发新模式的优势 34

1.6 小结 35

第2章 XML组件即插即用的机理 36

2.1 概述 37

2.2 .NET组件 39

2.2.1 什么是组件 39

2.2.2 属性 40

2.2.3 事件 43

2.2.4 数据绑定 46

2.3 XML组件即插即用 48

2.3.1 什么是XML组件 48

2.3.2 组件属性的XML表示 49

2.3.3 组件事件的XML表示 54

2.3.4 如何实现即插即用 54

2.4 组件标签定义文件 56

2.5 表达式文法 62

2.6 属性处理机制 63

2.6.1 属性基本值 64

2.6.2 属性默认值 64

2.6.3 动态属性值 64

2.7 事件处理机制 66

2.7.1 签名事件处理 66

2.7.2 非签名事件处理 67

2.8 数据模型 68

2.8.1 数据集和数据存取定义 68

2.8.2 数据绑定模型和XML表示 70

2.9 数据模型 74

2.9.1 数据存取机制 75

2.9.2 解析表达式和Where绑定 80

2.10 加载Form.dll 83

2.11 小结 84

第3章 构建 .NET窗体设计器最佳实践 85

3.1 .NET设计时概述 86

3.1.1 服务和容器 87

3.1.2 设计器宿主 89

3.1.3 设计器图面 89

3.1.4 设计器加载器 90

3.2 构建设计器图面 91

3.3 设计器宿主编程 96

3.4 设计器加载器设计 96

3.4.1 读取XML文件 100

3.4.2 写XML文件 107

3.5 设计时服务设计最佳实践 113

3.5.1 选择服务处理 113

3.5.2 组件改变服务处理 114

3.5.3 命名创建服务处理 114

3.5.4 菜单命令服务处理 118

3.5.5 工具箱服务处理 122

3.5.6 事件绑定服务处理 124

3.5.7 属性窗口服务处理 126

3.6 Undo引擎控制最佳实践 128

3.7 设计器复制/粘贴编程实践 130

3.8 设计器快捷键设计 133

3.9 源代码生成最佳实践 136

3.9.1 代码对象模型 136

3.9.2 数据集源代码生成 143

3.9.3 数据表和数据列源代码生成 152

3.9.4 SQL源代码生成 153

3.9.5 属性默认值和动态属性值的代码生成 154

3.9.6 快捷键源代码生成 155

3.9.7 事件源代码生成 157

3.9.8 数据绑定源代码生成 158

3.10 编译源代码最佳实践 159

3.11 小结 161

第4章 打印报表设计器基础 162

4.1 概述 163

4.2 打印设计元素 164

4.2.1 标签元素 164

4.2.2 检查框元素 169

4.2.3 线段元素 172

4.2.4 矩形元素 173

4.2.5 图形元素 175

4.2.6 网络元素 177

4.3 数据绑定 179

4.3.1 标签元素和检查框元素的数据绑定 182

4.3.2 网格元素的数据绑定 182

4.4 设计元素内存结构 182

4.4.1 打印标签描述文件 182

4.4.2 打印设计元素标签结构 185

4.5 小结 190

第5章 打印报表设计器最佳实践 191

5.1 图形系统概述 192

5.2 系统初始化 194

5.3 读/写XML 200

5.3.1 基本属性格式 201

5.3.2 图形格式 202

5.3.3 数据绑定格式 202

5.4 属性 204

5.4.1 属性默认值 204

5.4.2 动态属性 205

5.5 打印方式 205

5.5.1 分页打印 206

5.5.2 卡片式打印 207

5.5.3 客户自定义打印 210

5.6 打印标记类 211

5.7 转换标签并输出到打印机 214

5.7.1 标签元素的转换 216

5.7.2 检查框元素的转换 219

5.7.3 线段元素的转换 221

5.7.4 矩形元素的转换 222

5.7.5 图形元素的转换 223

5.7.6 网络元素的转换 223

5.8 页面设置 224

5.9 打印设置 225

5.10 打印方法调用 227

5.11 小结 229

第二部分

第6章 新思维之商务管理系统体系结构 231

6.1 商务管理系统的设计目标 232

6.2 商务管理系统的组成 233

6.3 客户端应用程序的基本概念 233

6.4 商务管理系统架构 235

6.5 服务程序 237

6.6 服务器程序 240

6.6.1 服务器程序启动流程 240

6.6.2 服务器配置 242

6.7 客户端程序 242

6.7.1 客户端程序启动流程 243

6.7.2 心跳信号 244

6.7.3 客户端配置 245

6.7.4 程序模块 246

6.8 小结 248

第7章 像搭积木一样搭建软件最佳实践 249

7.1 商务管理系统主界面 250

7.2 构建档案 251

7.2.1 建立数据集 251

7.2.2 设计档案窗体 252

7.2.3 运行客户档案 259

7.2.4 设计档案打印报表 259

7.3 构建查询 261

7.3.1 建立数据集 261

7.3.2 设计查询 263

7.3.3 设计查询打印报表 267

7.4 小结 269

第8章 新思维下的数据存取 270

8.1 数据存取机制概述 271

8.2 数据存取代理 271

8.3 DataAccess类 272

8.4 User类 275

8.5 小结 275

第9章 数据转换与生成最佳实践 276

9.1 概述 277

9.2 转换与生成源和目的 277

9.3 转换控制 281

9.4 小结 282

第10章 远程数据交换最佳实践 283

10.1 远程数据交换原理 284

10.2 数据导出实践 285

10.3 数据导入实践 287

10.4 小结 296

第11章 数据备份与恢复 297

11.1 数据的备份与恢复概述 298

11.1.1 连接 299

11.1.2 默认的Windows认证连接 301

11.1.3 SQL Server登录 301

11.1.4 仿冒其他Windows身份 302

11.1.5 作业和日程 302

11.2 数据备份 303

11.2.1 手工完全备份 305

11.2.2 自动完全备份 306

11.3 数据恢复 308

11.4 小结 310

第12章 业务逻辑设计最佳实践 311

12.1 进货业务逻辑设计 312

12.2 付款业务逻辑设计 314

12.3 出货业务逻辑设计 315

12.4 收款业务逻辑设计 318

12.5 小结 319

第13章 自扩展商务管理系统 320

13.1 在原有业务基础上扩展 321

13.1.1 改变数据库结构 321

13.1.2 调整数据集结构 322

13.1.3 调整界面与打印格式 322

13.2 增加新业务 324

13.3 小结 324

第14章 Web客户端程序设计基础 325

14.1 Web客户端程序基础 326

14.2 WebForm的基类XmlPage 327

14.3 Web客户端程序数据模型 329

14.3.1 数据集及数据存取定义 329

14.3.2 WebForm的数据绑定 330

14.3.3 数据更新机制 336

14.4 Web客户端程序数据模型 337

14.5 虚拟目录与配置 337

14.6 小结 339

第15章 构建Web页最佳实践 340

15.1 实现一个编辑型的Web页基类 341

15.2 创建Web项目 341

15.3 定义数据集 343

15.4 创建Web页 343

15.5 建立数据绑定 346

15.6 建立事件绑定与数据更新 347

15.7 建立SQL绑定 349

15.8 Web用户及注册 350

15.9 查看运行结果 352

15.10 小结 356

第三部分

附录A 组件描述语言(Component Markup Language,CML) 358

A.1 根标签 359

A.2 属性 359

A.2.1 颜色属性值表示法 360

A.2.2 位置属性值表示法 360

A.2.3 尺寸属性值表示法 360

A.2.4 枚举属性值表示法 361

A.2.5 列表框(ListBox)和下拉列表框(ComboBox)Items属性值表示法 361

A.2.6 PictureBox的Image属性值表示法 361

A.2.7 事例对象属性值表示法 361

A.3 数据绑定 362

A.3.1 简单控件数据绑定 363

A.3.2 ComboBox、ListBox数据绑定 363

A.3.3 复杂控件数据绑定 364

A.4 表达式文法 366

A.5 属性默认值($)和动态属性(=) 368

A.5.1 属性默认值($) 368

A.5.2 动态属性(=) 368

A.6 事件 369

A.6.1 签名事件方法 369

A.6.2 非签名事件方法 370

A.7 存取组件对象及属性 371

A.7.1 读取组件属性 371

A.7.2 设置组件属性 371

A.8 挂接自定义方法 372

A.9 系统对象 372

A.9.1 Me 372

A.9.2 Me.属性名 373

A.9.3 !组件名 373

A.9.4 !组件名.属性 374

A.9.5 Parent 374

A.9.6 Parent.属性名 374

A.9.7 Parent!组件名 374

A.9.8 Parent!组件名.属性名 374

A.9.9 Forms["SheetName"] 374

A.9.10 Forms["SheetName"]!组件名 375

A.9.11 Forms["SheetName"].属性名 375

A.9.12 Forms["SheetName"]!组件名.属性名 375

A.9.13 DataSet(数据集) 375

A.9.14 Count(主表记录数) 377

A.9.15 Cols["ColumnName"](主表列) 377

A.9.16 Parent.DataSet(父Form数据集) 377

A.9.17 Parent.Count(父Form主表记录数) 378

A.9.18 Parent.Cols["ColumnName"](父Form主表列) 378

A.9.19 Forms["SheetName"].DataSet 378

A.9.20 Forms["SheetName"].Count 378

A.9.21 Forms["SheetName"].Cols["ColumnName"] 378

A.9.22 [列号] 378

A.9.23 [列号].属性名 379

A.9.24 [列号]!控件ID 379

A.9.25 [列号]!控件ID .属性名 379

A.10 数据表(DataTable) 379

A.10.1 Name属性 380

A.10.2 IsMainTable属性 382

A.10.3 SQL属性和Where绑定表达式 383

A.10.4 Load 属性 384

A.10.5 Local 属性 384

A.10.6 From 属性 385

A.10.7 SQLDebug 属性 385

A.11 数据列(DataColumn) 385

A.11.1 ColumnName属性 386

A.11.2 Caption 属性 386

A.11.3 DefaultValue 属性 387

A.11.4 Expression 属性 388

A.11.5 Update属性 388

A.12 数据视(DataView) 389

A.13 快捷键 390

附录B 基类XmlForm的属性和方法 395

B.1 属性 396

B.1.1 public Junxian.AbstractDataAccess.DataAccess DA { get; set } 396

B.1.2 public DataSet DataSet { get; set } 396

B.1.3 public string MainTableName { get; set } 396

B.1.4 public Junxian.XmlForm.XmForm ParentSheet { get; set } 396

B.1.5 public string CurrentTable { get; set } 396

B.1.6 public string Shortcut { get; set } 396

B.2 方法 397

B.2.1 public virtual void Save(bool bQuestion) 397

B.2.2 public bool SaveDataToXml(string FileName) 397

B.2.3 public void Requery(string TableName) 397

B.2.4 public void RequeryTable(string TableName, bool IsClear) 398

B.2.5 public void RefreshDataView(string TableName) 398

B.2.6 public void GetDataView(string TableName) 399

B.2.7 public void Position_Changed(object sender, System.EventAgrs e) 399

B.2.8 public void PositionChanged() 399

附录C 《俊先管理软件开发平台》的文件 401

附录D 《商务新星.NET》对数据库表结构的限制 402

附录E Web页面基类XmlPage的属性和方法 403

E.1 属性 403

E.1.1 public DataSet DataSet { get; set } 403

E.1.2 public XmlPage ParentPage { get; set } 403

E.1.3 public string MainTableName { get; set } 403

E.1.4 public string PageName { get; set } 404

E.1.5 public Junxian.AbstractDataAccess.DataAccess DA { get; set } 404

E.2 方法 404

E.2.1 public object Parse(string strExpression) 404

E.2.2 public object Binding(string TableName, string ColumnName) 404

E.2.3 public void SaveData() 405

E.2.4 public void UpdateData(string TableName) 405

E.2.5 public void DeleteTableRecord(string TableName, object KeyValue) 405

E.2.6 public void RequeryTable(string TableName, bool IsClear) 405

E.2.7 public virtual void Requery(string TableName) 405

E.2.8 public void RefreshDataView(string TableName) 406

E.2.9 public void GotoPage(string PageName) 406

E.2.10 public void AddChildItem(string ChildTableName) 406

主要参考文献 407

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/12/23 6:50:07