SmartPersistenceLayer 2.0 正式发布了!
前段时间由于项目很急,SmartPersistenceLayer 一直没有时间整理发布,现在终于整理结束,可以正式发布了!
为了让大家能真正体验SmartPersistenceLayer的效果,我写了一个Sample,现在连同Sample源代码一起发布,下载地址:http://www.cnblogs.com/Files/tintown/SPL2.0.1.8Release.rar
关于.NET的持久层的东西,大家可能也看了很多,但可能总是停留在理论上,而SmartPersistenceLayer可以让你真正的体验一下持久层的魅力。
设计初衷
系统开发大概为需求分析,系统分析,编写代码,系统测试过程.
我要介绍的持久层称为SmartPersistenceLayer,简称SPL.,它是针对编写代码过程的,让系统的实现变的快速与高效.
我们可以试想一下,当我们的系统已经设计好,面对那些程序员,我们要为程序员讲解系统果如何做,这称之为业务,程序员在明白了业务后,我们还要告诉他们,这些东西对应的数据库结构是如何的.然后程序员在开发过程占用时间最多的是什么?就是参照着数据库结构写SQL语句进行增删改操作.这将成为系统开发的最大开销.
因此,要提高开发的效率,就应该从这方面着手,让程序员在了解业务的情况下,尽可能的在业务上进行开发.而不用去关心数据库结构,不用去编写那繁重的SQL语句.
这样带来的好处是:
1. 程序员开发会尽可能站在业务层面上,思想会比较清晰,不会因为半路去SQL语句而打断了业务逻辑的思考.
2. 编写繁重的SQL脚本往往容易出错,而程序大部分的时间花在了一次次的调试中.大大影响开发速度.
3. 扩展性将受到很大影响,客户需求的变更,数据库结构的修改,那是一个漫长而艰苦过程.
而SPL将为大家解决这些问题,让系统的业务与数据库的关系变的相对隔离,程序员能站在业务层面进行开发,而不用过多的考虑数据库的问题.下面就开始讲述SPL的故事.
SPL将为系统提供所有的数据库访问,把业务与数据库进行分隔,让业务层所需的数据访问都交给SPL来完成.为了能实现业务层与数据库层的分隔,在SPL中引入"实体Entity"的概念,实体就是对应数据库里的一个表,这样对表的操作都将转到对实体的操作.而实体与表的映射,采用XML进行对照.
在使用SPL前要作的配置就是实体定义,实体被定义后,SPL将为实体自动提供保存、修改、删除、获取等操作,这都由SPL自动来完成,而程序员无需写SQL语句,无需去查找一个个字段名。
SPL功能
SPL的具体功能如下:
1.支持多数据库:
在SPL中可以进行多数据源设定,不同的实体指定不同的数据源,那么在业务层进行时,对开发者将是完全透明,可以同时进行多数据库的操作。
2.支持实体的保存、修改、删除
在其他的PL中,都要手动进行增删改操作,SPL中将完全透明,程序员不用写SQL可以直接对实体进行增删改。
3.支持多种获取功能
SPL提供查询标准(RetrieveCriteria)进行多功能的数据获取,可以以实体,实体集,DataTable等多种方式返回,方便表示层的操作。
4.提供多条件查询
SPL提供条件(Condition),利用此类能进行各种常用的查询条件设置
5.提供多种标准处理方式
SPL提供删除标准,更新标准,能对实体进行多记录的删除与更新
6.支持TOP功能[2.0新增功能]
有设定TOP,进行指定记录数的获取,这将提高系统速度。
7.支持多帐套功能[2.0新增功能]
可以在系统中动态添加数据源,对实体动态进行数据源重指定,这种功能主要用于系统的多帐套,因此称为多帐套功能。
8.支持内存读取功能[2.0新增功能]
在一个系统中,会有很多配置信息,这些数据的特点是字段少,记录少,维护频率低,使用频率高,对于这些数据,我们反复的从数据库,将极大的降低系统性能。SPL允许对这些数据指定为“保存到内存”,那么在第一次获取后,将自动保存到内存中,以后的访问中,将自动从内存中读取,这对程序员来说完全是透明的,而且内存数据的更新也是SPL自动完成,对程序员完全透明。
更多关SPL的信息,请访问:http://www.cnblogs.com/tintown/category/12787.html