Azure

飘零的,,,红颜不在,,花开,,你的脸,,思物语,,你的心虽柔软,却永恒,,当鲜花开满原野,,,,
posts - 72, comments - 40, trackbacks - 0, articles - 1

BlogEngine 深入研究(一) 开篇

Posted on 2010-03-20 15:49 chinachen 阅读(1383) 评论(8) 编辑 收藏

前段时间因项目需要玩了下开源项目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

 

欢迎大家来一块讨论学习。 

Feedback

#1楼  回复 引用 查看   

2010-03-20 17:59 by pboyin      
你用什么查看表结构的啊,看起来不像是VS自带的那个啊

#2楼[楼主]  回复 引用 查看   

2010-03-20 18:50 by chinachen      
@pboyin
PowerDesigner

现在15版本 可作为VS的插件了

#3楼  回复 引用 查看   

2010-03-20 21:55 by 小伦      
这个系列 园子里国兴旺写过一个,建议看看哦,不过还是得顶一个!!

#4楼  回复 引用 查看   

2010-03-22 11:21 by 沉默杨仔      
楼主,我是新手.想请教:
一.be_posts与be_categories为什么还要建一个关联表?把categoryid字段放入be_posts表里面不是也一样吗?
就它的情况,因为关联表里面也没有见到其它扩展字段,为什么还要建这个?为了以后扩展?能举例说明建这个关联表的好处吗?
  谢谢

#5楼[楼主]  回复 引用 查看   

2010-03-22 14:15 by chinachen      
@小伦
好的,谢谢哦,互相学习。

#6楼[楼主]  回复 引用 查看   

2010-03-22 14:20 by chinachen      

引用沉默杨仔:
楼主,我是新手.想请教:
一.be_posts与be_categories为什么还要建一个关联表?把categoryid字段放入be_posts表里面不是也一样吗?
就它的情况,因为关联表里面也没有见到其它扩展字段,为什么还要建这个?为了以后扩展?能举例说明建这个关联表的好处吗?
  谢谢


谢谢哦! 他这样设计,应该是满足一个POST可以属于多个种类的。比如 一条可以属于鱼类,也可以属于动物类。
还有 他这样写 确实是为以后可能的业务扩展(不是技术)提供了机会。

我个人理解。 欢迎置评。

#7楼[楼主]  回复 引用 查看   

2010-03-22 14:21 by chinachen      

引用
沉默杨仔:
楼主,我是新手.想请教:
一.be_posts与be_categories为什么还要建一个关联表?把categoryid字段放入be_posts表里面不是也一样吗?
就它的情况,因为关联表里面也没有见到其它扩展字段,为什么还要建这个?为了以后扩展?能举例说明建这个关联表的好处吗?
  谢谢


谢谢哦! 他这样设计,应该是满足一个POST可以属于多个种类的。比如 一条鱼可以属于鱼类,也可以属于动物类。
还有 他这样写 确实是为以后可能的业务扩展(不是技术)提供了机会。

我个人理解。 欢迎置评。

#8楼  回复 引用 查看   

2010-12-21 18:03 by 四海清一      
正在学习