BlogEngine.Net架构与源代码分析系列part1:开篇介绍

  最近我要开始这个系列了,这是我的第一个系列。关于BlogEngine.Net我想说的是,它设计的真的很棒,代码简洁但是功能很多,真是麻雀虽小,五脏俱全啊,而且具有了很多Web2.0的特征,甚至它的每一行代码都值得我们去研究一下,它的开发团队很棒。实际上很多国外的个人Blog都是采用BlogEngine.Net加上自定义皮肤实现的,如果您是一个Blog的开发者,这更是您的必备参考!

  很多兄弟都推荐BlogEngine.Net看一看,甚至www.asp.net也把它放在了很重要的位置。前一阶段我仔细的把它的源代码阅读了一遍,看完以后兴奋的很冲动,心想居然还有这么好的玩意,这个开源项目设计的真的不错。实际上前不久的一个Podcast项目我就是采用了类似BlogEngine.Net这种架构开发的,感觉还是很不错的。最近利用空闲的时间做了一下总结,准备写一个关于BlogEngine.Net系列文章,其实我早就想写一个系列文章,但是一直没有好的想法,对于我比较熟悉的方面发现园子里的兄弟都给写完了,但是关于BlogEngine.Net的文章似乎很少,所以我决定写这个系列,还希望园子中的兄弟们多支持一下啊。

  开篇声明

     本系列文章介绍的是BlogEngine.Net 1.4.5版本,这是官方前不久发布的一个版本。大家可以在CodePlex下载最新的源代码和相应的说明文档。此外,您还可以在它的官方站点上了解更多的安装和一些扩展开发等问题,还可以下载一些开发者已经做好的皮肤。讲解代码使用C#,基于.Net Framework2.0。

  BlogEngine.Net简介

  BlogEngine.NET是一个开源的.NET博客项目。整个项目采用C#开发,它的结构比较简单,但是扩展起来很容易,它的复杂程度较低,易于定制。扩展特性主要体现在以下三个方面:

     1.Widget小工具
     2.Extension扩展功能
     3.自定义个性化Theme

  最初它是一个单人博客,很容易将它实现成多人博客。codeplex上有一个案例就是基于BlogEngine.Net的多人博客。BlogEngine.Net的主要特性:

     1.很容易被安装,只要把文件上传到Web服务器就可以运行。因为它默认采用XML存储数据。
     2.具有很多Blog的新特性并提供了开放接口。例如Ajax评论,支持TrackBack等。
     3.具有很多Web2.0特性,例如OpenSearch, XFN tags, tag cloud等。
     4.自定义主题,您可以自己开发很多主题,类似博客园的主题。
     5.可以配置自己的数据源,例如XML,Sql Server,SQLite等。

  这个系列文章我将从BlogEngine.Net的架构入手,对于每个相对独立的部分进行一下代码分析并作出相应的总结,对于一些部分我会给出我个人的评价,对于一些比较好的细节部分我也会深入探讨。如果大家有一些反馈我还会及时调整。

  暂定目录

  下面是我初步定出的一个目录结构,也反映了系列文章的主要路线,请大家参考,这个目录可能在写的过程中会随时进行调整并加入已经完成文章的链接:

    01.BlogEngine.Net架构与源代码分析系列part1:开篇介绍

    02.BlogEngine.Net架构与源代码分析系列part2:业务对象——共同的父类BusinessBase

    03.BlogEngine.Net架构与源代码分析系列part3:数据存储——基于Provider模式的实现

    04.BlogEngine.Net架构与源代码分析系列part4:Blog全局设置——BlogSettings

    05.BlogEngine.Net架构与源代码分析系列part5:对象搜索——IPublishable与Search

    06.BlogEngine.Net架构与源代码分析系列part6:开放API——MetaWeblog与BlogImporter

    07.BlogEngine.Net架构与源代码分析系列part7:Web2.0特性——Pingback&Trackback

    08.BlogEngine.Net架构与源代码分析系列part8:扩展——DataStore分析

    09.BlogEngine.Net架构与源代码分析系列part9:开发扩展(上)——Extension与管理上的实现

    10.BlogEngine.Net架构与源代码分析系列part10:开发扩展(中)——Widget小工具

    11.BlogEngine.Net架构与源代码分析系列part11:开发扩展(下)——自定义Theme

    12.BlogEngine.Net架构与源代码分析系列part12:页面共同的基类——BlogBasePage

    13.BlogEngine.Net架构与源代码分析系列part13:实现分析(上)——HttpHandlers与HttpModules

    14.BlogEngine.Net架构与源代码分析系列part14:实现分析(下)——网站页面上值得参考的部分

    15.BlogEngine.Net架构与源代码分析系列part15:总结篇

  我写这个系列文章的目的有三个。首先将好的东西分享给大家,其次让我更加深入的研究BlogEngine.Net提高自己,最后作为一个备忘录存储在博客园上。

   分享是一种美。

     下一篇:BlogEngine.Net架构与源代码分析系列part2:业务对象——共同的父类BusinessBase

【作者】:GUO Xingwang
【来源】:http://thriving-country.cnblogs.com/ 
     本文版权归作者和博客园共同所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
0
0
(请您对文章做出评价)
« 上一篇:static成员与Asp.net中Application对象的线程同步实现
» 下一篇:BlogEngine.Net架构与源代码分析系列part2:业务对象——共同的父类BusinessBase
posted @ 2008-11-05 15:27 GUO Xingwang 阅读(8197) 评论(41)  编辑 收藏 网摘 所属分类: BlogEngine.Net, 总结, 架构设计, Asp.Net, .Net Framework

  回复  引用  查看    
#1楼2008-11-04 15:18 | 吴畏      
关注下,前段时间也研究了下blogEngine的架构和源码,期待你的这个系列!
  回复  引用  查看    
#2楼2008-11-04 15:21 | AlexLiu      
支持了。我也简单看过这个代码,确实不错,只是没有来得及思考。
期待你的文章能够快点推出来哦

  回复  引用  查看    
#3楼[楼主]2008-11-04 15:23 | GUO Xingwang      
@AlexLiu

谢谢支持,我尽量更新快点吧!

  回复  引用  查看    
#4楼2008-11-04 15:29 | Kevin-moon      
不错 关注中
  回复  引用  查看    
#5楼2008-11-04 15:30 | 巫云      
Blogengine使用了大量的用户控件增加灵活性,另外用好多的HttpHandler处理来增强扩展。感觉写的还是不错,不过这么动态的东西对性能有点担心。
  回复  引用  查看    
#6楼2008-11-04 15:36 | 封士勇      
支持博主开出这么一个系列!
  回复  引用  查看    
#7楼[楼主]2008-11-04 15:40 | GUO Xingwang      
@巫云
你说的有道理,它将很多对象都放在内存中了。不过适合是最好了,像BlogEngine.Net采用这样的设计还是不错的。如果像博客园如果采用这种设计估计就不行了!

  回复  引用  查看    
#8楼2008-11-04 16:19 | andy.wu      
支持楼主。

很早想就想研究了,一直下不了这个决心。有楼主的系列文章,可以让我偷懒不少啊,呵呵。

  回复  引用  查看    
#9楼2008-11-04 16:50 | Angel Lucifer      
支持一下。
  回复  引用  查看    
#10楼2008-11-04 16:56 | TerryLee      
支持!
BlogEngine.NET相当不错:)

  回复  引用  查看    
#11楼[楼主]2008-11-04 17:17 | GUO Xingwang      
@TerryLee
多谢TerryLee的支持,给我很大鼓励!

  回复  引用  查看    
#12楼2008-11-04 17:19 | .Live      
希望楼主能坚持写完!!
  回复  引用  查看    
#13楼2008-11-04 19:22 | AlphaWu      
我一直在用了。好像XML版本的是把内容读取到内存中的,我转到SQL版本之后,占有的内存就下来了。
http://wupeng.cn

  回复  引用  查看    
#14楼2008-11-04 20:47 | aspnetx      
强烈支持
  回复  引用  查看    
#15楼2008-11-04 20:58 | aierong      
http://www.dotnetblogengine.net/

好棒

赞一个

期待你这个系列

  回复  引用  查看    
#16楼2008-11-04 21:31 | oec2003      
支持博主
  回复  引用  查看    
#17楼2008-11-04 22:28 | OctoberOne      
一看这个名字,,我就激动。。因为我刚想研究!!!狂顶!!!!
  回复  引用  查看    
#18楼2008-11-04 23:44 | canbeing      
支持一个,会关注的
  回复  引用  查看    
#19楼2008-11-05 11:17 | 朝晖的.net      
好~~跟着楼主一起看看·~·~
刚才下了个看看效果,还不错啊,呵呵·~
楼主好好分析分析。

顶你一下~~ :^)

  回复  引用  查看    
#20楼2008-11-05 15:59 | David neissar03      
支持
  回复  引用  查看    
#21楼[楼主]2008-11-05 16:27 | GUO Xingwang      
@AlphaWu
不错!

  回复  引用  查看    
#22楼2008-11-06 09:28 | sujiantao      
支持,以前粗略的看过。 没时间研究。
  回复  引用  查看    
#23楼2008-11-06 16:31 | 天羽      
--引用--------------------------------------------------
GUO Xingwang: @巫云
你说的有道理,它将很多对象都放在内存中了。不过适合是最好了,像BlogEngine.Net采用这样的设计还是不错的。如果像博客园如果采用这种设计估计就不行了!
--------------------------------------------------------
对于这点我很想知道清楚.
是否意味着blogengine.net不支持大流量??

  回复  引用  查看    
#24楼2008-11-06 17:03 | 2008年的梦想      
支持,我一直在用这个博客程序,就是没有研究过,其中自己水平有限,也懒,认真关注楼主的这个系列。
  回复  引用  查看    
#25楼[楼主]2008-11-06 17:08 | GUO Xingwang      
@天羽
我想大流量应该没问题,但是提交的文章太多可能就不太好说了,当然事实上文章不可能太多!

  回复  引用  查看    
#26楼2008-11-08 11:51 | ddr888      
无他,有才尔。
  回复  引用  查看    
#27楼2008-11-10 23:53 | works guo      

  回复  引用  查看    
#28楼2008-11-14 09:16 | LemonX86      
我上次下载了一个版本的,不过它的sql数据库有问题!
搞的我 只能用它默认的xml做数据源!
谁有 数据库给我一个 啊 ?
多谢!!!

  回复  引用  查看    
#29楼[楼主]2008-11-14 09:45 | GUO Xingwang      
@LemonX86
它的数据库应该是Sql 2005的,如果在2000下直接建库似乎要修改一下它的SQL,尤其是那些MAX东西

  回复  引用  查看    
#30楼2008-11-15 11:55 | caoruijun      
我下载的是source code,但是打开整个项目的时候,提示asp:content那个控件出错,不明白是什么原因,LZ能帮助下么
  回复  引用  查看    
#31楼2008-12-30 17:04 | Leon916      
楼主,你好!我最近也在阅读blogEgine.Net,想向你请教一些东西,不知道该如何联系你
  回复  引用  查看    
#32楼[楼主]2009-01-04 13:05 | GUO Xingwang      
@Leon916
发我邮箱吧
thriving.country@gmail.com

  回复  引用  查看    
#33楼2009-01-15 16:34 | Flyingis      
我刚开始学习,感谢楼主的教程。
  回复  引用  查看    
#34楼2009-02-28 14:57 | 帝之晓      
最近在研究.nettiers,发现那的domainmodel和blogengine里一样,用的都是充血模型~~
  回复  引用  查看    
#35楼2009-06-04 14:43 | Flyear      
刚开始看,也准备研究下..
这两天刚看了看他里面的功能,非藏的不错,
正在看他的类库,就看到了LZ的此系列文章, 认真研究下...

  回复  引用  查看    
#36楼2009-08-12 18:31 | MotoMoto      
不顶对不起人民!谢谢楼主,我又可以偷懒了,嘿嘿
  回复  引用  查看    
#37楼2009-08-31 10:57 | 夭筒      
Mark
  回复  引用  查看    
#38楼2009-09-17 10:54 | 三桂      
最近用上了BE,感觉挺不错的,好好的把这一系列看完,谢谢博主,辛苦了...:)
  回复  引用  查看    
#39楼2009-11-05 14:18 | weblogical      
我改动了 contact.aspx,它提交的内容已经入库。
我想在首页显示 通过(contact.aspx)提交上来的内容,请问该怎么做?

思路是什么?我对这个开源代码 陌生。

敬请高手指点一下。

  回复  引用  查看    
#40楼2009-12-17 10:41 | elwin.wang      
不错,好文章!
  回复  引用  查看    
#41楼2010-01-24 13:24 | BlackPhoenix      
"对于我比较熟悉的方面发现园子里的兄弟都给写完了"

同感,我的目标就是在2年内也写出一个系列文章,当然,只有紧跟前沿技术才有说话的余地。不过技术越来越复杂,自己能不能跟得上还是个问题,况且,今年主要任务就是找工作-.-|||...向前辈们学习!