Roclog博客系统源码浅析(1):综述

Publish: 2010-1-31 13:48:27 Author: Anylei Category: Technology 1 Comment(s)

一直以来都没有习惯写技术日志的习惯,平时在博客园、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方法共有以下几步:

  1. 调用Core.SiteFun.Query方法判断参数act的值。
  2. 根据值跳转。以act为page时为例(也就是访问独立页面时),调用Logic.WebPage.OutWrite方法。

在Logic.WebPage.OutWrite方法中共有以下几步:

  1. 初始化数据连接,Data.DataBase类属于单例类。
  2. 分别从数据库Setting表、Page表中取出数据,返回实体。
  3. 实例化Template.XsltTemplate类,调用Template.XsltTemplate.LoadXslt方法加载XSLT文件。
  4. 根据2步骤的实体生成字符串(XML format)。第一次看到这里的时候,各种+=操作符把我吓到了,- -。
  5. 实例化Logic.Web._WebBaseXml类,调用Logic.Web._WebBaseXml.OutBaseXml方法,从数据库(缓存)中取出各种数据(- -,的确是各种,最新文章,最新评论,好文章,热门文章,随机文章,分类,统计信息等等),生成字符串后+=4步骤的字符串(XML format)。
  6. 由Template.XsltTemplate.BindXml方法,使用XSLT将5步骤字符串(XML format)解析成XHTML,并输出给浏览器。

- -,感觉好乱,早知道就画图了。一句话讲清流程:请求-数据库-XML-由XSLT解析-输出。这也是主题引擎采用 XML+XSLT 机制的必然结果。

OK了,综述先到这里,细节的实现等日后再说。总体来说Roclog给我的感觉是相当不错的,虽然在有些地方做的不是很充足,当然,只是个人感觉。

阅读剩余部分...

博客重开

Publish: 2010-1-29 17:52:05 Author: Anylei Category: My Diary 2 Comment(s)

- -,以前的博客大概半年多没有管过,还特意Google了下,没发现一点踪迹。以前的数据也不想导入了,索性重新来过。

另外,作为一个以后依靠.Net吃饭的银儿,在博客程序的选择方面,果断的放弃了基于PHP的Wordpress,Google一番,最终选择了基于ASP.NET的Roclog。主题移植自Typecho的默认主题,依旧是相当简洁的。

博客描述中的“蕾丝菠萝阁”,本来应该是“Lei's Blog”,一不小心打成“类似波咯疙”,一瞅还挺有感觉,修改下就这样了。总之是很偶然。

希望这次不是心血来潮。

阅读剩余部分...

测试

Publish: 2010-1-29 15:01:16 Author: Anylei Category: Other 2 Comment(s)

RT。

阅读剩余部分...