BlogEngine 深入研究(一) 开篇
前段时间因项目需要玩了下开源项目BlogEngine 。。。觉得这东西写的是很不错的,
现在空闲下了一点,觉得应该好好深入研究和总结下,与大家一起分享一起进步。
现在已经是1.6版本了,源码下载地址 http://blogengine.codeplex.com/SourceControl/list/changesets 点击下载
BlogEngine是个单人博客,以XML作为数据存储,所以部署起来很方便的。
(我现在正把它改成多人的,作为学习,加深理解)
不多说了,直接正题吧。相关BlogEngine介绍信息可以问下google。
为了调试方便 ,先把dbProvider 改成SQLServer,就是说数据存储在数据库中,不再存储在XML里。
修改方法: 源码里有个setup文件夹,看下就明白了,用源码提供SQL语句建好数据库,然后把文件夹下的web.config 覆盖现在的webconfig.
OK 了, 运行下,现在博客系统的数据是就可以存储在数据库中了。
OK 看下表结构:
表结构还是蛮简单的, Post(博文,类似博客园随笔) 主表 , 表结构命名也是很规范的,顾名就是其意。我就不细说了。
后台的数据存储 DAO(看图)
与数据库存取数据就是BlogProvider.cs提供接口的。
BlogProvider是个抽象类, 是所有数据存储的provider。 DbBlogProvider继承了这个类,override实现下其方法就OK 了。
当然可以改变下配置(配置在web。config里) ,就可以用XML存储数据了。
这里用到了微软的provider factory,就是可以为不同的数据库提供不同数据provider,例如MS SQL, Oracle 等。。详细可以信息可以问下google。我就不多说了。一般项目中用的还是比较少的。只是作为一种解决方案存在。
DbBlogProvider 就是到写SQL层了。。。一看就比较明了了。。
OK 下篇写BlogEngine 用到的Mship 和webparts
欢迎大家来一块讨论学习。