请注意,本站并不支持低于IE8的浏览器,为了获得最佳效果,请下载最新的浏览器,推荐下载 Chrome浏览器
欢迎光临。交流群:166852192

源码之美


内容类型
标签
  • 源码学习

  • 源码阅读MvcApplication类(Global)

    本文主要关注Orchard的Global.asax文件。我们先简单回顾一下ASP.NET应用程序的生命周期,当然这里只关注部分。通过ASP.NET 应用程序生命周期我们知道,当 ASP.NET (在 IIS 7.0 集成模式下为统一管道Unified Pipeline)接收到对应用程序中任何资源的第一个请求时,名为 ApplicationManager 的类会创建一个应用程序域。在应用程序域中,将 …

  • 源码阅读Orchard.WarmupStarter程序集

    举个形象点的您曾经可能遇见过的例子。对于ASP.NET MVC的项目,我们一般将注册路由的功能放在Application_Start方法中。在第一次请求发生时,执行Application_Start进行程序初始化,如果发生了异常(比如注册了两个名为Dafault的路由),能够捕获并抛出。但第二次及以后的请求将可能导致请求如果找不到合适的路由,将会显示404错误页。如果还想捕捉 …

  • Orchard的代码规范

    定义Camelcase 是一种公共的代码规范,词之间不加任何分隔字符,首字母大写。Pascalcase 每个词的首字母大写,词之间不加任何分隔字符c#代码编写约定C#代码约定在除了包括C# Coding Guidelines中讲述的外,还有以下例外:同一行大括号前面,一般加一个空格。(在JavaScript是一致的)私有字段前面加一个下划线。在前面添加引用的命名空间,不写在内容里。 …

  • Orchard源码分析(1):Orchard架构

    源码分析应该做到庖丁解牛,而不是以管窥豹或瞎子摸象。所以先对Orchard架构有个整体的了解,以及对一些基本概念有所认识。创建一个基于Web的CMS(内容管理系统)不同于创建一个普通的Web应用程序:它更像是建立一个应用程序容器。 这样一个系统,必须拥有优秀的开放性、可扩展性。但是作为一个可扩展系统,它可能会面临应用程序可用性的挑战:在系统中的核心模块与未知的未来模块的组合,包括用户界面级别的整合 …

  • Orchard源码分析(2):Orchard.Web.MvcApplication类(Global)

    概述分析一个的ASP.NET项目源码,首先可以浏览其项目结构,了解项目之间的依赖关系,可以大致一窥项目的全貌。其次可以浏览Web.config和Global.asax文件,可以找到应用程序的入口。本文主要分析Orchard项目的Global.asax文件,而真正的分析入口点在Global.asax的CodeBehind文件Global.asax.cs中,即Orchard.Web. …

  • Orchard源码分析(4):Orchard.Environment.OrchardStarter类

    概述OrchardStarter类是个静态类,主要作用是配置Autofac容器以及创建IOrchardHost(DefaultOrchardHost)对象,分别对应CreateHost和CreateHostContainer这两个静态方法。一、CreateHost方法CreateHost方法接受一个委托参数,返回一个IOrchardHost(Orchard宿主)型实例:    public  …

  • Orchard源码分析(3):Orchard.WarmupStarter程序集

    概述Orchard.WarmupStarter程序集包含三个类:WarmupUtility、WarmupHttpModule和Starter<T>。该程序集主要为Orchard应用启动初始化服务。一、WarmupUtility类该类是一个静态工具类,包含一个静态只读字段WarmupFilesPath,以及三个方法EncodeUrl、ToUrlString和DoBeginRequest。1、 …

  • Orchard源码分析(4.1):Orchard.Environment.CollectionOrderModule类

    CollectionOrderModule类是一个Autofac模块(Module,将一系列组件和相关的功能包装在一起),而非Orchard模块。其作用是保证多个注册到容器的组件能按FIFO(First In First Out)的顺序提取。下面举例说明:1、创建ICustomerService接口:    public interface ICustomerService { }  2、创建两个 …

  • Orchard源码分析(4.2):Orchard.Logging.LoggingModule类

    与CollectionOrderModule一样,LoggingModule也是一个Autofac模块。它以属性注入的方式给需要日志服务的对象设置Logger。 如果一个类有ILogger型的公共可写实例属性(忽略索引),Autofac容器在解析(Resolve)该类的时候,将注入一个ILogging实现类的实例。Orchard默认会注入一个CastleLogger对象。当然Orchard也允许一 …


更多详情欢迎到QQ群 166852192 交流。