<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_轨迹2003_分类_架构设计</title><id>http://feed.cnblogs.com/blog/u/39456/category/143067/rss</id><updated>2012-05-28T22:49:25Z</updated><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Thriving-Country/category/143067.html"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/39456/category/143067/rss"/><entry><id>http://www.cnblogs.com/Thriving-Country/archive/2008/11/14/1333739.html</id><title type="text">BlogEngine.Net架构与源代码分析系列索引贴</title><summary type="text">本系列文章已完，为方便阅读特制作一个索引贴。</summary><published>2008-11-14T09:17:00Z</published><updated>2008-11-14T09:17:00Z</updated><author><name>GUO Xingwang</name><uri>http://www.cnblogs.com/Thriving-Country/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/14/1333739.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/14/1333739.html"/><content type="text">本系列文章已完，为方便阅读特制作一个索引贴。</content></entry><entry><id>http://www.cnblogs.com/Thriving-Country/archive/2008/11/14/1332976.html</id><title type="text">BlogEngine.Net架构与源代码分析系列part15：总结篇</title><summary type="text">本文是这个系列的总结篇，在这篇文章里，仅从我个人的角度发表一下对BlogEngine.Net的一些看法。内容包括BlogEngine.Net的优缺点，性能问题，如何阅读源代码等。</summary><published>2008-11-14T08:04:00Z</published><updated>2008-11-14T08:04:00Z</updated><author><name>GUO Xingwang</name><uri>http://www.cnblogs.com/Thriving-Country/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/14/1332976.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/14/1332976.html"/><content type="text">本文是这个系列的总结篇，在这篇文章里，仅从我个人的角度发表一下对BlogEngine.Net的一些看法。内容包括BlogEngine.Net的优缺点，性能问题，如何阅读源代码等。</content></entry><entry><id>http://www.cnblogs.com/Thriving-Country/archive/2008/11/13/1332659.html</id><title type="text">BlogEngine.Net架构与源代码分析系列part13：实现分析（上）——HttpHandlers与HttpModules</title><summary type="text">这已经是系列的第13篇了，实际上到现在为止您应该对BlogEngine.Net的整体设计有了一定的把握，对部分实现细节有了比较深刻的认识，在阅读BlogEngine.Net时希望坚持到最后，并把握住宏观，深入到微观。本文将详细介绍BlogEngine.Net中的HttpHandlers与HttpModules，主要说明它们要实现的功能以及如何使用，并对几个必要的HttpHandler或HttpModule进行比较细致的分析。</summary><published>2008-11-13T08:08:00Z</published><updated>2008-11-13T08:08:00Z</updated><author><name>GUO Xingwang</name><uri>http://www.cnblogs.com/Thriving-Country/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/13/1332659.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/13/1332659.html"/><content type="text">这已经是系列的第13篇了，实际上到现在为止您应该对BlogEngine.Net的整体设计有了一定的把握，对部分实现细节有了比较深刻的认识，在阅读BlogEngine.Net时希望坚持到最后，并把握住宏观，深入到微观。本文将详细介绍BlogEngine.Net中的HttpHandlers与HttpModules，主要说明它们要实现的功能以及如何使用，并对几个必要的HttpHandler或HttpModule进行比较细致的分析。</content></entry><entry><id>http://www.cnblogs.com/Thriving-Country/archive/2008/11/13/1332524.html</id><title type="text">BlogEngine.Net架构与源代码分析系列part12：页面共同的基类——BlogBasePage</title><summary type="text">上一篇文章我向大家展示了BlogEngine.Net中Theme的原理和一些开发规范，里面有很多内容和这篇文章有着联系，建议大家这两篇文章结合在一起看，这样效果会更好。在这篇文章中我主要向大家说明BlogBasePage，PostViewBase，CommentViewBase这三个类的内部实现上的一些技巧以及它们与页面，文章和评论之间是如何组织在一起的，希望对大家阅读这部分代码有帮助。</summary><published>2008-11-13T04:05:00Z</published><updated>2008-11-13T04:05:00Z</updated><author><name>GUO Xingwang</name><uri>http://www.cnblogs.com/Thriving-Country/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/13/1332524.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/13/1332524.html"/><content type="text">上一篇文章我向大家展示了BlogEngine.Net中Theme的原理和一些开发规范，里面有很多内容和这篇文章有着联系，建议大家这两篇文章结合在一起看，这样效果会更好。在这篇文章中我主要向大家说明BlogBasePage，PostViewBase，CommentViewBase这三个类的内部实现上的一些技巧以及它们与页面，文章和评论之间是如何组织在一起的，希望对大家阅读这部分代码有帮助。</content></entry><entry><id>http://www.cnblogs.com/Thriving-Country/archive/2008/11/11/1330863.html</id><title type="text">BlogEngine.Net架构与源代码分析系列part9：开发扩展（上）——Extension与管理上的实现</title><summary type="text">从这篇文章开始的连续三篇文章我将向大家展示BlogEngine.Net中的三大开发扩展特性,它们分别是Extension,Widget和Theme。程序员可以在符合一定标准条件下开发自己的扩展，然后将扩展像插件一样（Plug'n play）与BlogEngine.Net进行集成，来达到个性化的应用。本文将详细介绍第一种扩展Extension的开发标准，管理部分介绍等。</summary><published>2008-11-11T07:32:00Z</published><updated>2008-11-11T07:32:00Z</updated><author><name>GUO Xingwang</name><uri>http://www.cnblogs.com/Thriving-Country/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/11/1330863.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/11/1330863.html"/><content type="text">从这篇文章开始的连续三篇文章我将向大家展示BlogEngine.Net中的三大开发扩展特性,它们分别是Extension,Widget和Theme。程序员可以在符合一定标准条件下开发自己的扩展，然后将扩展像插件一样（Plug'n play）与BlogEngine.Net进行集成，来达到个性化的应用。本文将详细介绍第一种扩展Extension的开发标准，管理部分介绍等。</content></entry><entry><id>http://www.cnblogs.com/Thriving-Country/archive/2008/11/10/1330622.html</id><title type="text">BlogEngine.Net架构与源代码分析系列part8：扩展——DataStore分析</title><summary type="text">本系列的第四篇文章我给大家做了关于BlogEngine.Net全局配置的分析。在这篇文章里我将会对BlogEngine.Net中比较经典的部分DataStore做一个简单的分析，这个DataStore主要完成了BlogEngine.Net三大扩展特性(Extension,Widget,Theme)的数据存储部分，它提供了一个扩展特性统一的存储模型。DataStore是建立在Provider存储（本系列第三篇文章中介绍过）的上层，本文研究的内容会和后面讲到的扩展部分的文章有一定联系，希望大家继续关注。</summary><published>2008-11-10T09:39:00Z</published><updated>2008-11-10T09:39:00Z</updated><author><name>GUO Xingwang</name><uri>http://www.cnblogs.com/Thriving-Country/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/10/1330622.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/10/1330622.html"/><content type="text">本系列的第四篇文章我给大家做了关于BlogEngine.Net全局配置的分析。在这篇文章里我将会对BlogEngine.Net中比较经典的部分DataStore做一个简单的分析，这个DataStore主要完成了BlogEngine.Net三大扩展特性(Extension,Widget,Theme)的数据存储部分，它提供了一个扩展特性统一的存储模型。DataStore是建立在Provider存储（本系列第三篇文章中介绍过）的上层，本文研究的内容会和后面讲到的扩展部分的文章有一定联系，希望大家继续关注。</content></entry><entry><id>http://www.cnblogs.com/Thriving-Country/archive/2008/11/07/1328719.html</id><title type="text">BlogEngine.Net架构与源代码分析系列part6：开放API——MetaWeblog与BlogImporter</title><summary type="text">一款优秀的Blog系统少不了一些公开的API。BlogEngine.Net实现了标准的MetaWeblog API接口来允许用户通过客户端软件来发布自己的Blog，此外它还实现了将其它Blog系统中的文章(标准格式的BlogML或Rss)导入到BlogEngine.Net中来的BlogImporter接口，在这篇文章里我将对这些开放部分进行详细的介绍，对于涉及到的一些相关知识点也给出链接或做简单的描述。</summary><published>2008-11-07T09:28:00Z</published><updated>2008-11-07T09:28:00Z</updated><author><name>GUO Xingwang</name><uri>http://www.cnblogs.com/Thriving-Country/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/07/1328719.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/07/1328719.html"/><content type="text">一款优秀的Blog系统少不了一些公开的API。BlogEngine.Net实现了标准的MetaWeblog API接口来允许用户通过客户端软件来发布自己的Blog，此外它还实现了将其它Blog系统中的文章(标准格式的BlogML或Rss)导入到BlogEngine.Net中来的BlogImporter接口，在这篇文章里我将对这些开放部分进行详细的介绍，对于涉及到的一些相关知识点也给出链接或做简单的描述。</content></entry><entry><id>http://www.cnblogs.com/Thriving-Country/archive/2008/11/07/1328233.html</id><title type="text">BlogEngine.Net架构与源代码分析系列part5：对象搜索——IPublishable与Search</title><summary type="text">从这篇文章开始我会引入一些领域上的知识或者给出一些参考文章来供大家阅读，我们对这些领域上的知识没有必要深挖，只要大概了解一下就可以了，这对于我们分析BlogEngine.Net会有很大的帮助。在这篇文章中我主要向大家介绍一下BlogEngine.Net的搜索部分的实现以及支持的相应标准等。</summary><published>2008-11-07T03:11:00Z</published><updated>2008-11-07T03:11:00Z</updated><author><name>GUO Xingwang</name><uri>http://www.cnblogs.com/Thriving-Country/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/07/1328233.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/07/1328233.html"/><content type="text">从这篇文章开始我会引入一些领域上的知识或者给出一些参考文章来供大家阅读，我们对这些领域上的知识没有必要深挖，只要大概了解一下就可以了，这对于我们分析BlogEngine.Net会有很大的帮助。在这篇文章中我主要向大家介绍一下BlogEngine.Net的搜索部分的实现以及支持的相应标准等。</content></entry><entry><id>http://www.cnblogs.com/Thriving-Country/archive/2008/11/06/1327553.html</id><title type="text">BlogEngine.Net架构与源代码分析系列part4：Blog全局设置——BlogSettings</title><summary type="text">在这篇文章中我们将对BlogEngine.Net的全局配置进行一下分析与探讨。关于配置这一部分单独拿出来做一篇文章实在有些牵强，但是我总觉得这个配置部分比较独立，而且BlogEngine.Net的设计和实现都有很多可以参考的地方。</summary><published>2008-11-06T03:43:00Z</published><updated>2008-11-06T03:43:00Z</updated><author><name>GUO Xingwang</name><uri>http://www.cnblogs.com/Thriving-Country/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/06/1327553.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/06/1327553.html"/><content type="text">在这篇文章中我们将对BlogEngine.Net的全局配置进行一下分析与探讨。关于配置这一部分单独拿出来做一篇文章实在有些牵强，但是我总觉得这个配置部分比较独立，而且BlogEngine.Net的设计和实现都有很多可以参考的地方。</content></entry><entry><id>http://www.cnblogs.com/Thriving-Country/archive/2008/11/05/1327276.html</id><title type="text">BlogEngine.Net架构与源代码分析系列part3：数据存储——基于Provider模式的实现</title><summary type="text">在上一篇文章中，我们主要分析了一下BlogEngine.Net的整体设计，在后半部分我们又对BusinessBase业务对象的状态维护做了一些比较深入的探讨。在这篇文章中我将引领大家完成对BlogEngine.Net中业务对象数据存储的设计思路与实现细节的分析。</summary><published>2008-11-05T07:35:00Z</published><updated>2008-11-05T07:35:00Z</updated><author><name>GUO Xingwang</name><uri>http://www.cnblogs.com/Thriving-Country/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/05/1327276.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/05/1327276.html"/><content type="text">在上一篇文章中，我们主要分析了一下BlogEngine.Net的整体设计，在后半部分我们又对BusinessBase业务对象的状态维护做了一些比较深入的探讨。在这篇文章中我将引领大家完成对BlogEngine.Net中业务对象数据存储的设计思路与实现细节的分析。</content></entry><entry><id>http://www.cnblogs.com/Thriving-Country/archive/2008/11/05/1326535.html</id><title type="text">BlogEngine.Net架构与源代码分析系列part2：业务对象——共同的父类BusinessBase</title><summary type="text">上篇文章朋友的评论给了我很大的动力写这个系列的文章，看来大家都比较关注这个系列。为了后续文章做一个铺垫，我在这篇文章的前半部分讲解一下BlogEngine.Net的整体架构，后半部分主要是对于BusinessBase类的分析。</summary><published>2008-11-05T07:29:00Z</published><updated>2008-11-05T07:29:00Z</updated><author><name>GUO Xingwang</name><uri>http://www.cnblogs.com/Thriving-Country/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/05/1326535.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/05/1326535.html"/><content type="text">上篇文章朋友的评论给了我很大的动力写这个系列的文章，看来大家都比较关注这个系列。为了后续文章做一个铺垫，我在这篇文章的前半部分讲解一下BlogEngine.Net的整体架构，后半部分主要是对于BusinessBase类的分析。</content></entry><entry><id>http://www.cnblogs.com/Thriving-Country/archive/2008/11/05/1326334.html</id><title type="text">BlogEngine.Net架构与源代码分析系列part1：开篇介绍</title><summary type="text">本系列文章介绍的是BlogEngine.Net 1.4.5版本，这是官方前不久发布的一个版本。大家可以在http://www.codeplex.com/blogengine 下载最新的源代码和相应的说明文档。此外，您还可以在它的官方站点http://www.dotnetblogengine.net/上了解更多的安装和一些扩展开发等问题，还可以下载一些开发者已经做好的皮肤。讲解代码使用C#，基于.Net Framework2.0。</summary><published>2008-11-05T07:27:00Z</published><updated>2008-11-05T07:27:00Z</updated><author><name>GUO Xingwang</name><uri>http://www.cnblogs.com/Thriving-Country/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/05/1326334.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Thriving-Country/archive/2008/11/05/1326334.html"/><content type="text">本系列文章介绍的是BlogEngine.Net 1.4.5版本，这是官方前不久发布的一个版本。大家可以在http://www.codeplex.com/blogengine 下载最新的源代码和相应的说明文档。此外，您还可以在它的官方站点http://www.dotnetblogengine.net/上了解更多的安装和一些扩展开发等问题，还可以下载一些开发者已经做好的皮肤。讲解代码使用C#，基于.Net Framework2.0。</content></entry><entry><id>http://www.cnblogs.com/Thriving-Country/archive/2008/07/04/1235963.html</id><title type="text">一个自己写的组件--异常报告(3):开发一个异常处理程序</title><summary type="text">上文中我对异常报告组件进行了重构和配置，实际上在上文中MyDebuger组件就已经完成了。我在设计这个组件时考虑到了它的扩展性，其中一个重要的扩展就是可以定义新的异常处理程序模块之后通过配置与主程序一起工作。这节我就开发一个简单的异常处理程序，之后进行配置实现写日志到文件系统。</summary><published>2008-07-04T14:37:00Z</published><updated>2008-07-04T14:37:00Z</updated><author><name>GUO Xingwang</name><uri>http://www.cnblogs.com/Thriving-Country/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Thriving-Country/archive/2008/07/04/1235963.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Thriving-Country/archive/2008/07/04/1235963.html"/><content type="text">上文中我对异常报告组件进行了重构和配置，实际上在上文中MyDebuger组件就已经完成了。我在设计这个组件时考虑到了它的扩展性，其中一个重要的扩展就是可以定义新的异常处理程序模块之后通过配置与主程序一起工作。这节我就开发一个简单的异常处理程序，之后进行配置实现写日志到文件系统。</content></entry><entry><id>http://www.cnblogs.com/Thriving-Country/archive/2008/07/03/1235049.html</id><title type="text">一个自己写的组件--异常报告(2):组件的重构和配置</title><summary type="text">在上一篇文章中我对异常报告组件MyDebuger做了一个一般性的介绍并用简单的C#对其进行了实现,发表之后网友们提出了一些建议,也提出了一些Bug。在这里，非常感谢来自你们的建议,我从中领略到了社区对于软件开发的重要性，社区的意见是宝贵的。其中有一位朋友说"虽然能看懂但是代码逻辑混乱，应该好好重构下",还有人说那个Debuger.Debug()方法中的obj为空的问题.自己仔细的考虑了一下,可能确实比较混乱,于是在这一篇文章中我将着力讲述我对MyDebuger组件是怎样进行重构的,并对上一节提到的配置问题进行了实现(实现的可能不太好,但是已经基本满足需求了).花了一整天时间,希望这次会好一点。</summary><published>2008-07-03T12:40:00Z</published><updated>2008-07-03T12:40:00Z</updated><author><name>GUO Xingwang</name><uri>http://www.cnblogs.com/Thriving-Country/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Thriving-Country/archive/2008/07/03/1235049.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Thriving-Country/archive/2008/07/03/1235049.html"/><content type="text">在上一篇文章中我对异常报告组件MyDebuger做了一个一般性的介绍并用简单的C#对其进行了实现,发表之后网友们提出了一些建议,也提出了一些Bug。在这里，非常感谢来自你们的建议,我从中领略到了社区对于软件开发的重要性，社区的意见是宝贵的。其中有一位朋友说"虽然能看懂但是代码逻辑混乱，应该好好重构下",还有人说那个Debuger.Debug()方法中的obj为空的问题.自己仔细的考虑了一下,可能确实比较混乱,于是在这一篇文章中我将着力讲述我对MyDebuger组件是怎样进行重构的,并对上一节提到的配置问题进行了实现(实现的可能不太好,但是已经基本满足需求了).花了一整天时间,希望这次会好一点。</content></entry></feed>
