本文节选自《.Net 软件设计新思维:像搭积木一样搭建软件 》一书

前  

一个真实的故事

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

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

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

怎么做?

版本怎样维护?

要多少个版本才能够用?

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

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

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

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

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

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

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

积木的启示

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

2001 年,笔者看到了 Microsoft Visual Studio 2002 测试版,就开始试用,这不就是要找的开发工具吗!用它可以实现那个平台了!可是又怎样才能像搭积木那样搭建软件系统呢?软件系统的积木又是什么呢?一个偶然的机会在报纸上看到了介绍 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 Visual Studio 2003 开发的,它适应 .NET Framework 1.1 ,而目前 Microsoft Visual Studio 2008 已经发布很长时间了,所以《商务新星 .NET 》 3.0 迫切需要进行升级。最新版《商务新星 .NET 》 4.0 是使用 Microsoft Visual Studio 2008 开发的,它是基于 .NET Framework 2.0 的。《商务新星 .NET 》 4.0 是对 3.0 的全面升级,并且有重大改进(把 XML 编译为 DLL )。

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

致谢

2009 年我们又完成了《商务新星 .NET 》 3.0 到《商务新星 .NET 》 4.0 的升级。由于本人工作繁忙,并且写作能力有限,所以曾经有放弃写此书的想法。多亏电子工业出版社的孙学瑛编辑,是她促成了这本书的出版;还有微软的 MVP 高阳对本人的鼓励和支持,才使得今天完成了全部的书稿,在此表示感谢。也要感谢我的妻子任继红和儿子陈宣百,是他们给予了我更多的时间,使我有时间完成书稿。还要感谢一直支持我的网上和管理软件开发新模式 QQ 群的朋友,他们为《商务新星 .NET 》提出了很多有益的建议。

由于作者水平有限,书中不足及错误之处在所难免,敬请专家和读者给予批评指正。读者与作者技术交流,可上箫心论坛: http://it.crfly.com

陈俊先

Junxian_chen@163.com

2009-6-18

【书名】.Net软件设计新思维:像搭积木一样搭建软件
【作者】陈俊先,高阳著
【ISBN 】978-7-121-09378-4
【出版日期】2009年8月出版
【定价】69.00元(含光盘1张)
【开本】16开
【页码】428 页
【内 容 简 介】
    本书从.NET企业商务管理软件新思维设计角度出发,以C#编程语言为基础,采用XML组件即插即用的方式来开发管理软件。XML在这套方法中起到灵魂作 用,它就好像一种胶,把所有的DLL粘到一起,真正运行的还是DLL。本书包括两部分,第一部分是“商务新星.NET 2008”(Business 4.0)商务应用开发平台部分(管理软件开发平台),可进行“即插即用”傻瓜式的企业管理软件的开发;第二部分是底层平台部分 (XmlDesigner2008 设计器),商务新星.NET 2008应用开发平台部分是完全基于底层平台的支持,来实现即插即用快速开发MIS应用等业务功能的(随书光盘500MB源码全部开源)。
    读者通过学习这种新思维开发模式,可以快速适应数据库结构变化、业务逻辑变化及程序界面变化,而且使用本书所提供的可视图形化设计器,无须编码就可以改变 数据库结构、用户界面,以及自动生成程序源代码和DLL。也可以掌握如何将一个XML组件任意插到现有的程序中,开发程序的过程就像搭积木一样用一块块积 木构建出整个系统。通过本书的学习,读者可以轻松掌握这种原理和开发技巧,从而开发出各个行业的商务企业管理软件。
    本书既可作为大专院校相关专业师生的教学参考书,也可供计算机及其相关领域的工程技术人员查阅和开发毕业论文参考之用。对于.NET程序员和普通计算机爱好者,本书也不失为帮助他们开拓思维和开发应用商务企业管理软件的一本深入浅出的计算机读物。

同类书: 《 道不远人——深入解析ASP.NET 2.0组件开发 》 《 .NET Web高级开发 》 《你必须知道的.NET 》 《.NET 2.0应用程序调试 》  《庖丁解牛:纵向切入ASP.NET 3.5控件和组件开发技术 》   《“面向对象”项目开发经验大成:基于.NET实现 》

本书购买地址: 当当网      卓越网     中国互动出版网

更多精彩图书 ,请关注博文视点公司网站:www.broadview.com.cn 。

    更多精彩活动: 博文视点Open Party第六期上海站    报名中

想即时获取更多图书及活动资讯,赶快加入博文视点读者俱乐部 吧!

《.Net 软件设计新思维:像搭积木一样搭建软件》成书背后的故事相关推荐

  1. 博客园开发征途又添新书《.NET软件设计新思维——像搭积木一样搭建软件》出版...

    经过半年的编写,这本书终于与大家见面了,希望本书能给朋友们更多的编程帮助.     特别感谢微软MVP中国区最有价值专家主管--林思绮 为本书作序,还有MVP好友王涛.周金桥.郑健为本书做的校验与书评 ...

  2. C语言设计新思维分享

    没有任何套路,直接获取资源 C语言已经有几十年的历史了,经过长时间的发展和普及,C语言的应用场景也有了很大的变化,一些的老的观念已经不在适用,在这里给大家推荐一本讲C语言特别好的书,<C语言设计 ...

  3. c++设计新思维_贵阳花溪区初三冲刺多少钱,新思维

    贵阳花溪区初三冲刺多少钱,下面贵阳新思维学校再谈谈初三冲刺还有哪些需要我们了解.贵阳新思维学校以"学生热爱.家长满意.社会认可"为办学宗旨:努力践行"安全.规范.精细.服 ...

  4. 【封面】把握软件产业发展新机遇 ——记第二十届中国国际软件博览会

    随着全球经济的缓步复苏和IT行业的不断革新,中国软件产业逐步进入转型调整期.2016年,经济发展新常态初步成型,<关于积极推进"互联网+"行动的指导意见>.<中国 ...

  5. github 思维导图开元软件_画思维导图记笔记的工具软件

    思维导图是很多人在做笔记的时候都会用到的一种记录方式,使用思维导图可以简单有效的表达发散性思维,能够协助人们在各种因素间平衡展开思考,从而提升自己笔记的含金量和工作效率,有没有画思维导图记笔记的工具软 ...

  6. 学习 Policy based design - 读C++设计新思维-泛型编程与设计模式的应用

    现在将今年读过的一些书, 感觉比较有心得的地方做一些分享. 久闻Andrei, Alexandrescu的Modern C++ Design - Generic Programing and Desi ...

  7. 读-《c++设计新思维-泛型编程与设计模式之应用》经典记录(英文书名:《modern c++ design》)

    1.以设计为目标的程序库都必须帮助使用者完成精巧的设计,以实现使用者自己的constraints,而不是实现预先定义好的constraints. 2.Anything that can be done ...

  8. 使用代码对现实世界进行抽象,软件设计和思维。

    比如,使用数据库来维护商品的库存数据,我们不用去仓库清点,就能知道库存状态.看看电商,其所做的事情就是对交易场景的抽象.. ------------------2019更新-------- 比如一个小 ...

  9. 软件设计文档示例模板,万能的软件设计文档模板

    文章目录 1 设计概述 1.1 功能概述 1.2 非功能约束 2 系统部署图与整体设计 2.1 系统部署图 2.2 下单场景子系统序列图 2.3 退款场景子系统序列图 2.4 退款场景子系统活动图 3 ...

最新文章

  1. 200行代码解读TDEngine背后的定时器
  2. Windows Server 2008服务器管理新技巧6则第1/4页
  3. 指定结构体字节对齐方式
  4. python中def _init_是什么意思_详细解读Python中的__init__()方法
  5. C++输入一个字符串,去掉这个字符串中出现次数最少的字符 例如: 输入:abcabbc 输出:bbb
  6. spring boot缓存excel临时文件后再操作
  7. Undertow 实现反向代理
  8. (bfs)广度优先 实现图的遍历
  9. js中的Math对象及属性
  10. python 两点曲线_ECC椭圆曲线加密算法:ECDH 和 ECDSA
  11. 如何免费将一个PDF拆分成多个文件?
  12. Cocos Creator 计时器错误 cc.Scheduler: Illegal target which doesn't have uuid or instanceId.
  13. java贪吃蛇添加背景音乐_java代码中简单添加背景音乐(亲测有效)
  14. cncert/cc DDOS 清洗 流量清洗 IDC AFC AFD ICP
  15. ViKey加密狗对视频文件进行加密
  16. PKI(公、私钥加密,数字签名、数字证书)技术理解
  17. 微信小程序开发之页面布局
  18. 苹果企业签名证书制作详解
  19. 计算机图形学课程总结
  20. 思科路由器:开启telnet和ssh远程登陆

热门文章

  1. 基于PHP的网络教学平台设计与实现
  2. 【总编观察】CES:IT大变革,软件的新平台与新机遇
  3. 我硕士毕业为什么在佳木斯卖米粉d
  4. 玩培乐多彩泥,培养小朋友丰富想象能力
  5. 怎么在mysql中附加数据库文件_sql无法附加数据库怎么办_sql附加不上数据库的解决方法-系统城...
  6. 什么是MarTech?丨美国已有近7千款产品,而你还不知道它的存在
  7. web无序列表去掉点_html无序列表怎么写?无序列表怎么去掉点?
  8. Markdown Preview Enhanced 开启toc技巧
  9. 新手做自媒体从哪开始?想做自媒体怎么进入?
  10. KEGG数据库,除了pathway你还知道哪些