Roclog博客系统源码浅析(1):综述
Publish: 2010-1-31 13:48:27 Category: Technology
一直以来都没有习惯写技术日志的习惯,平时在博客园、CSDN也一直是潜水。这次重新开博并且选择Roclog作为自己的博客系统,打算以一系列文章开始来改掉自己的这个不好的习惯,另外也能很好的记录自己成长的过程。
先说明一下,“Roclog是由汤尼尔独自开发的单用户多管理员的 ASP.net+SQLite 高效博客系统”,该介绍来自Roclog官方。本系列分析的版本为v5.0.23.0,而截至现在最新版本为v5.0.24.0,并且分析重点不在理解架构,而是案例本身。方法名称采用完全限定名,即命名空间.类.方法。Roclog的源码注释相当清楚,我甚至怀疑自己每一篇能不能写够600字,- -。
来看下Roclog解决方案的截图,从图中不难看出各个项目的作用。

记得在初学ASP.NET的时候,感觉托拽控件是一件很惬意的事;后来又对不使用控件的技术很好奇。现在让我们看看Roclog是怎么做的,作为第一篇,看看从一个请求开始到浏览器展示出页面系统内部做了什么,以此窥见系统的业务处理流程。
在Web.Default.Page_Load方法共有以下几步:
- 调用Core.SiteFun.Query方法判断参数act的值。
- 根据值跳转。以act为page时为例(也就是访问独立页面时),调用Logic.WebPage.OutWrite方法。
在Logic.WebPage.OutWrite方法中共有以下几步:
- 初始化数据连接,Data.DataBase类属于单例类。
- 分别从数据库Setting表、Page表中取出数据,返回实体。
- 实例化Template.XsltTemplate类,调用Template.XsltTemplate.LoadXslt方法加载XSLT文件。
- 根据2步骤的实体生成字符串(XML format)。第一次看到这里的时候,各种+=操作符把我吓到了,- -。
- 实例化Logic.Web._WebBaseXml类,调用Logic.Web._WebBaseXml.OutBaseXml方法,从数据库(缓存)中取出各种数据(- -,的确是各种,最新文章,最新评论,好文章,热门文章,随机文章,分类,统计信息等等),生成字符串后+=4步骤的字符串(XML format)。
- 由Template.XsltTemplate.BindXml方法,使用XSLT将5步骤字符串(XML format)解析成XHTML,并输出给浏览器。
- -,感觉好乱,早知道就画图了。一句话讲清流程:请求-数据库-XML-由XSLT解析-输出。这也是主题引擎采用 XML+XSLT 机制的必然结果。
OK了,综述先到这里,细节的实现等日后再说。总体来说Roclog给我的感觉是相当不错的,虽然在有些地方做的不是很充足,当然,只是个人感觉。
评论列表 »
有Roclog博客系统的源码吗 我也想学习一下