Orchard源码--初步(1)】的更多相关文章

1.打开解决方案Orachard.sln 2.直接启动项目调试 3.接着你会看到下图 呵呵,有点啰嗦( ̄︶ ̄)↗ 涨 4.点击上图的‘Finish Setup’后…
概述 Host 是应用程序域级的单例,代表了Orchard应用程序.其处理应用程序生命周期中的初始化.BeginRequest事件.EndRequest事件等. 可以简单理解为HttpApplication的功能转移到了Host身上.从源码角度上看,Host对应的是实现了IOrchardHost接口的 DefaultOrchardHost类. 回顾一下之前对Orchard.Web.MvcApplication类的分析.在Orchard启动时,会创建一个DefaultOrchardHost对象:…
简单工厂模式.抽象工厂模式和适配器模式 依赖倒置原则也叫依赖倒转原则,Dependence Inversion Principle,对抽象进行编程,不要对实现进行编程. A.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象. B.抽象不应该依赖于具体,具体应该依赖于抽象. 面相对象设计将就高内聚.低耦合,高内聚指功能相关性很强的紧密的结合在一起,遵守单一职责原则:耦合是指不同模块或不同层次代码的联系程度,耦合性越低,模块独立性越强,耦合性越高,模块独立性越弱,高耦合的软件,往往修改一处…
概述 关于ASP.NET MVC中路由有两个基本核心作用,一是通过Http请求中的Url参数等信息获取路由数据(RouteData),路由数据包含了area.controller.action的名称等信息.只有获取了匹配的路由数据,才有可能转入ASP.NET MVC管道:二是根据由规则生成Url,比如要根据某些数据生成View上显示的链接.   Orchard对路由进行扩展主要基于如下原因: (1).路由定义在各个模块中.在Orchard应用程序初始化时将分散在各个模块的路由定义收集起来统一注册…
概述 CacheModule也是一个Autofac模块.   一.CacheModule类 CacheModule将DefaultCacheManager注册为ICacheManager:      public class CacheModule : Module {          protected override void Load( ContainerBuilder builder) {             builder.RegisterType<DefaultCacheMa…
概述在Orchard中,提出子站点(Tenant)的概念,目的是为了增加站点密度,即一个应用程序域可以有多个子站点. Shell是子站点(Tenant)级的单例,换句话说Shell代表了子站点.对比来看,Host是应用程序域级的单例,代表了Orchard应用程序.本文将分析Shell相关的各种类型.   一.获取ShellSettings 在 DefaultOrchardHost类的CreateAndActivateShells方法中,由Shell设置管理器 ShellSettingsManag…
概述 Orchard作为一个可扩展的CMS系统,是由一系列的模块(Modules)或主题(Themes)组成,这些模块或主题统称为扩展(Extensions).在初始化或运行时需要对扩展进行安装:DefaultOrchardHost.SetupExtensions方法. 当添加新的扩展.删除扩展或修改扩展源码后,需要通知扩展加载器(Extension Loader)重新加载或完成一些清理工作,所以需要进行监视:DefaultOrchardHost.MonitorExtensions方法. Orc…
概述 采用Event Bus模式(事件总线),可以使观察者模式中的观察者和被观察者实现解耦. 在.Net 中使用观察者模式,可以使用事件(委托)和接口(类).Orchard Event  Bus使用的是接口的形式,这样方便将“观察者”注册到Autofac容器中.EventsModule模块是构成Orchard Event  Bus的一部分.这里先分开分析Orchard Event Bus涉及的类型和知识点,然后在将他们组合起来分析Orchard Event  Bus的机制. 一.Registra…
CollectionOrderModule类是一个Autofac模块(Module,将一系列组件和相关的功能包装在一起),而非Orchard模块.其作用是保证多个注册到容器的组件能按FIFO(First In First Out)的顺序提取.下面举例说明:1.创建ICustomerService接口:     public interface ICustomerService { }    2.创建两个实现ICustomerService接口的类:     public class Defaul…
概述 Orchard.WarmupStarter程序集包含三个类:WarmupUtility.WarmupHttpModule和Starter<T>.该程序集主要为Orchard应用启动初始化服务.一.WarmupUtility类 该类是一个静态工具类,包含一个静态只读String型字段WarmupFilesPath,以及三个方法EncodeUrl.ToUrlString和DoBeginRequest. 1.WarmupFilesPath其值为"~/App_Data/Warmup/&…