本文节选自《.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 软件设计新思维:像搭积木一样搭建软件》成书背后的故事

    本文节选自<.Net 软件设计新思维:像搭积木一样搭建软件 >一书 前   言 一个真实的故事 1996 年 10 月,一套经历了 2 年多时间开发出来的商务管理软件终于问世了,它带给我们 ...

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

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

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

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

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

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

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

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

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

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

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

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

  8. 软件设计美学之道第2回─软件的美丽元素─设计思维

    世界上大大小小的事件.每个人的想法.做法,只要不是具象的事物,就都是抽象的,而软件设计的思维亦是如此. 在软件设计的领域中,对象导向的设计方式是个抽象的分析思考法,很适合在虚拟世界里面表达出真实世界的 ...

  9. ToB的新思维“MaaS”--管理即服务(Management as a Service)

    导语:关于ToB的发展问题大家谈论很多了,感觉焦点还是在产品上,产品的思路不对,空谈商业模式.销售打法没有用,本文就用户需求和产品的设计谈一点个人看法. 2020庚子年,注定是将中国史册的一年,也会在 ...

  10. 软件设计—项目管理日记(5)

    其实这系列文章的第一篇就应该写软件设计,却因为软件设计更需专业,感觉沉甸甸的.所以一直在找资料.看书,验证我的想法的合理性或者修正我的想法.经过两个月左右的不断总结,形成此篇. 我把软件设计分为四个重 ...

最新文章

  1. linux vnc的小黑点和鼠标不同步_vnc连接windows,推荐三款非常好用的vnc连接windows软件...
  2. shell替换程序里的代码
  3. 我想要一种语言,只需对它说我要干什么就行
  4. [Ubuntu] 文件权限
  5. java date 日期部分_Java处理Date时间格式的各种场景工具类(二)
  6. 自学python能干什么-python能干啥
  7. Python Gensim Word2Vec
  8. android多地图切换,Android的谷歌地图卫星切换
  9. MP6002使用说明
  10. 基于STM32制作万能遥控器---1
  11. 计算机打印机端口号,网络打印机端口号.doc
  12. ul导航条二级菜单被遮盖
  13. 【毕业设计】 单片机自动写字机器人设计与实现 - 物联网 嵌入式 stm32
  14. 【数学史】大富翁的概率
  15. vs2015安装使用体验
  16. MPLS之LDP的工作原理和配置
  17. 笔记本F1音量键常亮,电脑没声音?这里有妙招。
  18. 数仓用户画像-标签体系详解
  19. C语言|求最大公约数和最小公倍数多种方法
  20. C语言结构体存储空间分配的原则

热门文章

  1. 贝叶斯推断之最大后验概率(MAP)
  2. JSON: jasckson 字段 过滤
  3. 切断数据感知控件,大大提升软件运行速度
  4. linux 内核修炼之道——系统调用
  5. 企业如何做好EDM-企业做EDM的方案设计
  6. BackgroundWorker的使用
  7. C++ 修改 Windows Service【转】
  8. unbuntu 18.04 LTS 版 安装Samba服务器
  9. Obsolete属性用法
  10. 关于配置文件的节点内容加密(备忘)