设计数据库存取层生成工具(一)
时间:2011-04-03 来源:hejiang's blog
我们先来罗列一下目的,以便在设计过程中时时回顾,永不偏离我们的初衷:
1. 针对以数据库为中心的信息系统,不要希望数据库会跟着你的应用转;
2. 数据查询和业务分离,不能在业务层出现SQL查询或者类SQL对象查询;
3. 工具直接生成可用代码或程序,避免手工编写DAL代码。
对于第一点,数据库设计是信息系统建模的主要工作,只会根据信息模型调整,而不根据应用结构或设计变化。
对于第二点,前两天在cnblog上看到一个AgileEAS.NET的代码,它把使用LINQ查询的部分叫做业务层,也许也是一种做法吧;我这里把它叫做数据存取层,因为查询实际上是数据库内完成的,同时数据库管理员也根据查询来建立索引,优化读写。所以我希望这些查询最好能够相对集中,可供数据库管理员分析、优化以及建立索引。
对于第三点,我们知道.NET提供了Emit中间语言的字节码功能,也提供了CodeDom来生成源码,然后再将源码编译为IL代码。我们通常用后者做Wizard,生成的源码作为模板,然后用户可以再插入其它代码。既然这里我们不希望用户再填充代码,那就直接使用Emit IL好了。
这些定下来后,明天就可以开始程序设计了。
相关阅读 更多 +