Spiga

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

2008-11-05 15:27 by GUO Xingwang, 11810 visits, 收藏, 编辑

  最近我要开始这个系列了,这是我的第一个系列。关于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/ 
     本文版权归作者和博客园共同所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
Add your comment

45 条回复

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

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

    很早想就想研究了,一直下不了这个决心。有楼主的系列文章,可以让我偷懒不少啊,呵呵。
     回复 引用 查看   
  9. #9楼 Angel Lucifer      2008-11-04 16:50
    支持一下。
     回复 引用 查看   
  10. #10楼 TerryLee      2008-11-04 16:56
    支持!
    BlogEngine.NET相当不错:)
     回复 引用 查看   
  11. #11楼[楼主] GUO Xingwang      2008-11-04 17:17
    @TerryLee
    多谢TerryLee的支持,给我很大鼓励!
     回复 引用 查看   
  12. #12楼 .Live      2008-11-04 17:19
    希望楼主能坚持写完!!
     回复 引用 查看   
  13. #13楼 AlphaWu      2008-11-04 19:22
    我一直在用了。好像XML版本的是把内容读取到内存中的,我转到SQL版本之后,占有的内存就下来了。
    http://wupeng.cn
     回复 引用 查看   
  14. #14楼 aspnetx      2008-11-04 20:47
    强烈支持
     回复 引用 查看   
  15. #15楼 aierong      2008-11-04 20:58
    http://www.dotnetblogengine.net/

    好棒

    赞一个

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

    顶你一下~~ :^)
     回复 引用 查看   
  20. #20楼 David neissar03      2008-11-05 15:59
    支持
     回复 引用 查看   
  21. #21楼[楼主] GUO Xingwang      2008-11-05 16:27
    @AlphaWu
    不错!
     回复 引用 查看   
  22. #22楼 sujiantao      2008-11-06 09:28
    支持,以前粗略的看过。 没时间研究。
     回复 引用 查看   
  23. #23楼 天羽      2008-11-06 16:31
    --引用--------------------------------------------------
    GUO Xingwang: @巫云
    你说的有道理,它将很多对象都放在内存中了。不过适合是最好了,像BlogEngine.Net采用这样的设计还是不错的。如果像博客园如果采用这种设计估计就不行了!
    --------------------------------------------------------
    对于这点我很想知道清楚.
    是否意味着blogengine.net不支持大流量??
     回复 引用 查看   
  24. #24楼 2008年的梦想      2008-11-06 17:03
    支持,我一直在用这个博客程序,就是没有研究过,其中自己水平有限,也懒,认真关注楼主的这个系列。
     回复 引用 查看   
  25. #25楼[楼主] GUO Xingwang      2008-11-06 17:08
    @天羽
    我想大流量应该没问题,但是提交的文章太多可能就不太好说了,当然事实上文章不可能太多!
     回复 引用 查看   
  26. #26楼 ddr888      2008-11-08 11:51
    无他,有才尔。
     回复 引用 查看   
  27. #27楼 works guo      2008-11-10 23:53
     回复 引用 查看   
  28. #28楼 LemonX86      2008-11-14 09:16
    我上次下载了一个版本的,不过它的sql数据库有问题!
    搞的我 只能用它默认的xml做数据源!
    谁有 数据库给我一个 啊 ?
    多谢!!!
     回复 引用 查看   
  29. #29楼[楼主] GUO Xingwang      2008-11-14 09:45
    @LemonX86
    它的数据库应该是Sql 2005的,如果在2000下直接建库似乎要修改一下它的SQL,尤其是那些MAX东西
     回复 引用 查看   
  30. #30楼 caoruijun      2008-11-15 11:55
    我下载的是source code,但是打开整个项目的时候,提示asp:content那个控件出错,不明白是什么原因,LZ能帮助下么
     回复 引用 查看   
  31. #31楼 Leon916      2008-12-30 17:04
    楼主,你好!我最近也在阅读blogEgine.Net,想向你请教一些东西,不知道该如何联系你
     回复 引用 查看   
  32. #32楼[楼主] GUO Xingwang      2009-01-04 13:05
    @Leon916
    发我邮箱吧
    thriving.country@gmail.com
     回复 引用 查看   
  33. #33楼 Flyingis      2009-01-15 16:34
    我刚开始学习,感谢楼主的教程。
     回复 引用 查看   
  34. #34楼 帝之晓      2009-02-28 14:57
    最近在研究.nettiers,发现那的domainmodel和blogengine里一样,用的都是充血模型~~
     回复 引用 查看   
  35. #35楼 Flyear      2009-06-04 14:43
    刚开始看,也准备研究下..
    这两天刚看了看他里面的功能,非藏的不错,
    正在看他的类库,就看到了LZ的此系列文章, 认真研究下...
     回复 引用 查看   
  36. #36楼 MotoMoto      2009-08-12 18:31
    不顶对不起人民!谢谢楼主,我又可以偷懒了,嘿嘿
     回复 引用 查看   
  37. #37楼 夭筒      2009-08-31 10:57
    Mark
     回复 引用 查看   
  38. #38楼 三桂      2009-09-17 10:54
    最近用上了BE,感觉挺不错的,好好的把这一系列看完,谢谢博主,辛苦了...:)
     回复 引用 查看   
  39. #39楼 weblogical      2009-11-05 14:18
    我改动了 contact.aspx,它提交的内容已经入库。
    我想在首页显示 通过(contact.aspx)提交上来的内容,请问该怎么做?

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

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

    同感,我的目标就是在2年内也写出一个系列文章,当然,只有紧跟前沿技术才有说话的余地。不过技术越来越复杂,自己能不能跟得上还是个问题,况且,今年主要任务就是找工作-.-|||...向前辈们学习!
     回复 引用 查看   
  42. #42楼 Epjack      2010-05-08 10:07
    挺不错的文章。我也要用这个来建站好了。移动应用开发网
     回复 引用 查看   
  43. #43楼 AlexTiffy      2011-07-02 14:15
    如何将他转换为称中文版呢?
     回复 引用 查看   
  44. #44楼 AlexTiffy      2011-07-02 14:15
    请楼主赐教
     回复 引用 查看   
  45. #45楼 一文钱      2011-10-31 17:19
    还没看,但是我决定把她看完,先谢谢楼主了
     回复 引用 查看