学习了著名开源社区CommunityServer(CS)的抽象数据库的设计,自己独立思考,站在哲学的角度上思考问题,并进一步抽象,最终设计出了一套非常抽象的通用数据库以及通用数据访问层。
主要有以下优点:
1)通过两个抽象表存放任何数据实体以及实体之间的关系;
2)通过两种扩展字段设计方式实现任何数据实体的字段扩展需要,并且扩展的字段支持数据库级别的排序搜索功能;扩展字段的添加和一般字段没有什么大的区别,仅仅只是添加了一个特性而已。
3)由于将实体与实体之间的关系进行高度抽象(最终抽象为横向和父子递归两种关系),导致数据库访问层的接口的通用型非常广泛,可以适应任何实体之间的关系。这样的设计用一般的言语无法表达;也许你看了代码之后会有所体会;
4)吸取了CS中的很多好的设计,如Provider模式,动态构建SQL实现自定义查询,缓存,多语言资源文件设计,自定义Url重写,Ajax功能,etc;
5)优秀的运行性能;
6)通过一个简单的文章发布系统的后台管理系统作为Demo,展示本框架的部分功能;
7)目前该框架还在不断完善优化中。。
使用注意事项:
首先附加DB下的Sql数据库文件
1)需要在web.config文件中正确设置数据库链接信息
这个数据库链接字符串。
2)页面地址是经过重写过的,真正的页面放在,如下例子:
ControlPanel\Article目录下,URL地址重写配置信息放在Urls.xml文件中。
3)如果你要调试文章管理模块,则代码在
AppCode\Controls\ControlPanel\Article
目录下的CS文件中设置断点,然后通过附加到进程的方式进行调试。
因为本Demo不是设计为一个WebSite,而是Library的形式,所以只能采用附加到进程的方式调试。
另外,我还做了一个快速添加文章测试数据的链接,地址为:
http://localhost/createarticles.aspx?count=100
其中count=100表示创建100篇文章。你可以修改为任何大于零的值,以创建你所需要的测试数据。
经过我在2万条数据下的测试,发现性能良好,更多的数据没有测试过。
相信本框架的性能应该还不错,我设计的时候很多地方专门针对性能而设计。
游客
非常好 2009-11-22