摘要: BeginRequest事件处理的作用是确保所有Shell已经加载,或者在扩展有变化的时候重新加载。 void IOrchardHost .BeginRequest() { Logger.Debug( "BeginRequest"); BeginRequest(); } protected virt 阅读全文
posted @ 2016-03-26 12:02 心冰之海 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 概述 Orchard作为一个可扩展的CMS系统,是由一系列的模块(Modules)或主题(Themes)组成,这些模块或主题统称为扩展(Extensions)。在初始化或运行时需要对扩展进行安装:DefaultOrchardHost.SetupExtensions方法。 当添加新的扩展、删除扩展或修 阅读全文
posted @ 2016-03-26 12:00 心冰之海 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 概述 Host 是应用程序域级的单例,代表了Orchard应用程序。其处理应用程序生命周期中的初始化、BeginRequest事件、EndRequest事件等。 可以简单理解为HttpApplication的功能转移到了Host身上。从源码角度上看,Host对应的是实现了IOrchardHost接口 阅读全文
posted @ 2016-03-26 11:43 心冰之海 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 概述 采用Event Bus模式(事件总线),可以使观察者模式中的观察者和被观察者实现解耦。 在.Net 中使用观察者模式,可以使用事件(委托)和接口(类)。Orchard Event Bus使用的是接口的形式,这样方便将“观察者”注册到Autofac容器中。EventsModule模块是构成Orc 阅读全文
posted @ 2016-03-26 11:37 心冰之海 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 与CollectionOrderModule一样,LoggingModule也是一个Autofac模块。它以属性注入的方式给需要日志服务的对象设置Logger。 如果一个类有Orchard.Logging.ILogger型的公共可写实例属性(忽略索引),Autofac容器在解析(Resolve)该类 阅读全文
posted @ 2016-03-26 11:30 心冰之海 阅读(334) 评论(0) 推荐(0) 编辑
摘要: CollectionOrderModule类是一个Autofac模块(Module,将一系列组件和相关的功能包装在一起),而非Orchard模块。其作用是保证多个注册到容器的组件能按FIFO(First In First Out)的顺序提取。下面举例说明:1、创建ICustomerService接口 阅读全文
posted @ 2016-03-26 11:24 心冰之海 阅读(417) 评论(0) 推荐(0) 编辑
摘要: 概述 OrchardStarter类是个静态类,主要作用是配置Autofac容器以及创建IOrchardHost(DefaultOrchardHost)对象,分别对应CreateHost和CreateHostContainer这两个静态方法。 一、CreateHost方法 CreateHost方法接 阅读全文
posted @ 2016-03-26 11:16 心冰之海 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 概述 Orchard.WarmupStarter程序集包含三个类:WarmupUtility、WarmupHttpModule和Starter<T>。该程序集主要为Orchard应用启动初始化服务。一、WarmupUtility类 该类是一个静态工具类,包含一个静态只读String型字段Warmup 阅读全文
posted @ 2016-03-26 11:08 心冰之海 阅读(643) 评论(0) 推荐(0) 编辑
摘要: 概述 分析一个的ASP.NET项目源码,首先可以浏览其项目结构,大致一窥项目其全貌,了解项目之间的依赖关系。其次可以浏览Web.config和Global.asax文件,找到应用程序的入口点。 本 文主要分析Orchard项目的Global.asax文件,而真正的分析入口点在Global.asax的 阅读全文
posted @ 2016-03-26 11:04 心冰之海 阅读(856) 评论(0) 推荐(0) 编辑
摘要: 本文主要参考官方文档"How Orchard works"以及Orchardch上的翻译。 源码分析应该做到庖丁解牛,而不是以管窥豹或瞎子摸象。所以先对Orchard架构有个整体的了解,以及对一些基本概念有所认识。 创建一个基于Web的CMS(内容管理系统)不同于创建一个普通的Web应用程序:它更像 阅读全文
posted @ 2016-03-26 11:00 心冰之海 阅读(2280) 评论(0) 推荐(0) 编辑