《.NET软件设计新思维 像搭积木一样搭建软件》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:陈俊先,高阳编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2009
  • ISBN:9787121093784
  • 页数:407 页
图书介绍:本书提出了一种全新软件开发模式来进行软件开发,这种开发模式大大降低了软件开发难度和开发成本,尤其适合需求变化的项目开发。因此,对于开发管理软件尤其有帮助(管理软件的需求经常变化)。需求变化通常表现为数据库结构变化、业务逻辑变化及程序界面变化,这些变化一定会引起程序的变化,这对一个已经开发好的软件系统来说无疑是一个灾难。用本书介绍的开发模式可以快速适应这些变化,而且用本书所提供的可视图形化设计器,无须编码就可以改变数据库结构、用户界面,然后自动生成程序源代码和DLL。

第一部分 2

第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.d1l 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

第二部分 231

第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

第三部分 358

附录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