基于.net的快速开发思想
目前我主要使用.net来进行web项目开发。根据.net的特点以及自己在项目开发过程中的经验初步总结了一套快速开发模式,希望能够提高.net的开发效率。快速开发包括两方面的目的:一是让参与项目的程序员个体效率提高,二是让项目整体的开发效率提高。
数据库 |
核心层/数据驱动 |
数据层 |
模块1 |
表现层 |
逻辑层 |
…… |
模块2 |
模块3 |
首先是明确使用.net开发时候的系统架构,我自己将系统架构设计为以下模型
在我的系统模型中,核心层是项目最基本的元件,包括了与数据库进行的各种数据存取操作的基类A和B,项目中应用的各种字符串操作函数(比如过滤危险字符)的一个类等。数据存取的基类A的实现参考了微软的Data Access Application Block,关于Data Access Application Block可以看以下网址:
http://www.microsoft.com/china/msdn/archives/library/dnbda/html/daab-rm.asp
同时我在基类A上面派生了一个类B,它添加了NewRow(),Update()等一些方法,为上层的数据层提供了充分的支持。
这个核心层将用于所有的项目中,它表现为一个编译好的dll(我命名为common.dll),项目中的各个成员都可以引用它,从而使用它的各个方法。
数据层则对应数据库中的每一个表都创建一个类,同时表的每个字段在这个类中会对应为类的一个属性,该类继承核心层中的数据存取类B,因此在这个类中实现了对表添加记录、修改记录等功能。
这里的问题是,既然是快速开发模式,当然对应数据库中表的这个类不应该每次都手工生成。为此我专门写了一个工具,可以简单地填入数据库连接的信息,读取出该数据库下面的所有用户表,然后选择需要的表自动生成符合要求的c#代码。这样就很好地解决了上面的问题,真正实现了快速开发。
至于中间的逻辑层,则可以按模块为每个模块编写一个类,实现其中复杂的过程,或者将涉及到sql语句的代码封装在这里。
表现层则是具体的可以供用户使用的UI界面,通常用户最终看到的页面都在这里。
这种开发思想不仅可以提高单个程序员的开发效率,也可以从整体上提高整个项目团队的开
表现层 |
逻辑层 |
数据层 |
模块A |
表现层 |
逻辑层 |
数据层 |
模块B |
数据库 |
表现层 |
逻辑层 |
数据层 |
模块A |
表现层 |
逻辑层 |
模块B |
数据库 |
发效率。我们可以适当和某种比较普遍使用的开发模型对比一下。
左边是比较传统的做法,在项目中,按模块划分给程序员,该程序员负责该模块的所有代码编写。这种开发方式导致项目比较依赖个人,个人水平的差异也使得模块质量差别明显。同时项目存在比较大的风险,这主要是因为大家都直接访问数据库,可能会造成数据结构的混乱。
右边是我推荐的方式,最底层的数据层主要由主程序员负责,大家统一调用。上面在分配给不同的程序员负责。同时这个模型还可以演变成,逻辑层也主要由个别主程序于负责,表现层才交给不同的程序员去做。这个主要看项目的具体情况。