设计数据库存取层生成工具(二) 定义工具目标
2011-04-03 00:20
183 查看
我们先来罗列一下目的,以便在设计过程中时时回顾,永不偏离我们的初衷:
1. 针对以数据库为中心的信息系统,不要希望数据库会跟着你的应用转;
2. 数据查询和业务分离,不能在业务层出现SQL查询或者类SQL对象查询;
3. 工具直接生成可用代码或程序,避免手工编写DAL代码。
对于第一点,数据库设计是信息系统建模的主要工作,只会根据信息模型调整,而不根据应用结构或设计变化。
对于第二点,前两天在cnblog上看到一个AgileEAS.NET的代码,它把使用LINQ查询的部分叫做业务层,也许也是一种做法吧;我这里把它叫做数据存取层,因为查询实际上是数据库内完成的,同时数据库管理员也根据查询来建立索引,优化读写。所以我希望这些查询最好能够相对集中,可供数据库管理员分析、优化以及建立索引。
对于第三点,我们知道.NET提供了Emit中间语言的字节码功能,也提供了CodeDom来生成源码,然后再将源码编译为IL代码。我们通常用后者做Wizard,生成的源码作为模板,然后用户可以再插入其它代码。既然这里我们不希望用户再填充代码,那就直接使用Emit IL好了。
这些定下来后,明天就可以开始程序设计了。
1. 针对以数据库为中心的信息系统,不要希望数据库会跟着你的应用转;
2. 数据查询和业务分离,不能在业务层出现SQL查询或者类SQL对象查询;
3. 工具直接生成可用代码或程序,避免手工编写DAL代码。
对于第一点,数据库设计是信息系统建模的主要工作,只会根据信息模型调整,而不根据应用结构或设计变化。
对于第二点,前两天在cnblog上看到一个AgileEAS.NET的代码,它把使用LINQ查询的部分叫做业务层,也许也是一种做法吧;我这里把它叫做数据存取层,因为查询实际上是数据库内完成的,同时数据库管理员也根据查询来建立索引,优化读写。所以我希望这些查询最好能够相对集中,可供数据库管理员分析、优化以及建立索引。
对于第三点,我们知道.NET提供了Emit中间语言的字节码功能,也提供了CodeDom来生成源码,然后再将源码编译为IL代码。我们通常用后者做Wizard,生成的源码作为模板,然后用户可以再插入其它代码。既然这里我们不希望用户再填充代码,那就直接使用Emit IL好了。
这些定下来后,明天就可以开始程序设计了。
相关文章推荐
- 设计数据库存取层生成工具(五) 定义用户输入并生成Assembly
- 设计数据库存取层生成工具(三) 定义DAL输出
- 设计数据库存取层生成工具(一) 不用中间件很麻烦,用起来更麻烦
- 设计数据库存取层生成工具(六) 配置、使用与小结
- 设计数据库存取层生成工具(七) 设计操作界面和最终工具下载
- 设计数据库存取层生成工具(零) 数据库操作很零散
- 设计数据库存取层生成工具(四) 生成业务方法
- 按Sybase的PowerDesigner工具设计的数据库模型 ---> 解析生成能兼容多种数据库的相应的C#底层代码
- 按Sybase的PowerDesigner工具设计的数据库模型 ---> 解析生成能兼容多种数据库的相应的C#底层代码
- 用PDMReader工具生成数据库设计文档
- 基于Java的简单数据库设计生成工具(生成Excel文档)
- 按Sybase的PowerDesigner工具设计的数据库模型 ---> 解析生成能兼容多种数据库的相应的C#底层代码
- 按Sybase的PowerDesigner工具设计的数据库模型 ---> 解析生成能兼容多种数据库的相应的C#底层代码
- 用PDMReader工具生成数据库设计文档(转载)
- 数据库设计【工具:EA】
- 数据库测试数据的准备问题,可以用工具生成,主要有DataFactory和TestDataBuilder.
- 数据库文档生成工具(DB2Word)
- oracle 数据库实体生成工具
- 数据库逆向框架代码生成工具:MyBatis Generator的使用
- Java根据word模板生成word文档之设计详细思路---XML标签定义