Orchard源码分析(1):Orchard架构 (转)
2015-05-14 15:21
316 查看
源码分析应该做到庖丁解牛,而不是以管窥豹或瞎子摸象。所以先对Orchard架构有个整体的了解,以及对一些基本概念有所认识。
创建一个基于Web的CMS(内容管理系统)不同于创建一个普通的Web应用程序:它更像是建立一个应用程序容器。 这样一个系统,必须拥有优秀的开放性、可扩展性。但是作为一个可扩展系统,它可能会面临应用程序"可用性"的挑战:在系统中的核心模块与未知的未来模块的组合,包括用户界面级别的整合。编排所有这些小零件,让互不知道的彼此的模块成一个连贯的整体,是Orchard是关键。
本文主要参考官方文档"How Orchard works"以及Orchardch上的翻译。它解释了Orchard选择怎样的构架的,以及怎样获得灵活性和良好的用户体验。
一、Orchard架构
可见Orchard运行于ASP.NET之上,使用了几个包括包括ASP.NET MVC在内的开源框架或类库。位于Orchard最底层的是Orchard框架(Orchard.Framework程序集),其上是核心模块(Core Modules)以及来自官方或非官方的其他模块(Modules)。实际上我们可以在任何一层上进行开发,通常我们是在Modules层开发,创建新的Module或Theme或修改已经存在的Module或Theme。
二、Orchard基础
Orchard CMS基于现有的框架和库构建,包括ASP.NET MVC,NHibernate,Autofac,Castle等。
三、Orchard框架(Orchard.Framework程序集)
Orchard.Framework程序集位于Orchard最底层,它包含应用程序引擎以及不适合分离到模块的功能。这些都是最基础的东西,甚至连最基本的模块将不得不依赖它。你可以把它看作是Orchard的基础类库。
四、Orchard核心模块(Orchard.Core项目及Orchard.Core程序集)
Orchard.Core项目中包含了一组Orhcard运行所必须的模块。其它模块可以安全地依赖到这些模块上,因为这些模块总是可用的。比如 feeds,navigation,routable模块。当然,就像上面所说,我们可以基于Orchard的任何一层进行开发,如果有必要,我们完全可以自己来设计"Core"。
五、模块(Moduls)
Orchard默认发行版包含了一些像blogging、pages的内置模块,并且也能很方便的创建第三方模块。
模块就是用于扩展Orchard的包含module.txt文件的ASP.NET MVC Area。
模块通常包含事件处理程序(event handlers),内容类型(content types)和它们的默认渲染模板以及一些管理界面(Admin UI)。
对模块".csproj"文件或".csproj"引用文件的修改都能使模块自动被动态编译。也就是说可以不将模块编译成静态程序集甚至可以不使用Vistual Studio来创建或编辑模块。
六、主题(Themes)
主题可以让Orchard用户自定义站点显示界面,量身定制他们想要的站点风格。主题还可以有针对性的对Orchard模块所提供的任何模板进行样式重写、甚至是改变图像、布局等。
主题位于Orchard网站根目录下的Themes文件夹中,包含theme.txt文件。
七、租户/子站点(Tenants)
Orchard支持子站点,即一套程序、一个应用程序域部署多个不同域名的站点。
参考资料:
How Orchard works
源码
创建一个基于Web的CMS(内容管理系统)不同于创建一个普通的Web应用程序:它更像是建立一个应用程序容器。 这样一个系统,必须拥有优秀的开放性、可扩展性。但是作为一个可扩展系统,它可能会面临应用程序"可用性"的挑战:在系统中的核心模块与未知的未来模块的组合,包括用户界面级别的整合。编排所有这些小零件,让互不知道的彼此的模块成一个连贯的整体,是Orchard是关键。
本文主要参考官方文档"How Orchard works"以及Orchardch上的翻译。它解释了Orchard选择怎样的构架的,以及怎样获得灵活性和良好的用户体验。
一、Orchard架构
Modules | |||
Core | |||
Orchard Framework | |||
ASP.NET MVC | NHibernate | Autofac | Castle |
.NET | ASP.NET | ||
IIS or Windows Azure |
二、Orchard基础
Orchard CMS基于现有的框架和库构建,包括ASP.NET MVC,NHibernate,Autofac,Castle等。
三、Orchard框架(Orchard.Framework程序集)
Orchard.Framework程序集位于Orchard最底层,它包含应用程序引擎以及不适合分离到模块的功能。这些都是最基础的东西,甚至连最基本的模块将不得不依赖它。你可以把它看作是Orchard的基础类库。
四、Orchard核心模块(Orchard.Core项目及Orchard.Core程序集)
Orchard.Core项目中包含了一组Orhcard运行所必须的模块。其它模块可以安全地依赖到这些模块上,因为这些模块总是可用的。比如 feeds,navigation,routable模块。当然,就像上面所说,我们可以基于Orchard的任何一层进行开发,如果有必要,我们完全可以自己来设计"Core"。
五、模块(Moduls)
Orchard默认发行版包含了一些像blogging、pages的内置模块,并且也能很方便的创建第三方模块。
模块就是用于扩展Orchard的包含module.txt文件的ASP.NET MVC Area。
模块通常包含事件处理程序(event handlers),内容类型(content types)和它们的默认渲染模板以及一些管理界面(Admin UI)。
对模块".csproj"文件或".csproj"引用文件的修改都能使模块自动被动态编译。也就是说可以不将模块编译成静态程序集甚至可以不使用Vistual Studio来创建或编辑模块。
六、主题(Themes)
主题可以让Orchard用户自定义站点显示界面,量身定制他们想要的站点风格。主题还可以有针对性的对Orchard模块所提供的任何模板进行样式重写、甚至是改变图像、布局等。
主题位于Orchard网站根目录下的Themes文件夹中,包含theme.txt文件。
七、租户/子站点(Tenants)
Orchard支持子站点,即一套程序、一个应用程序域部署多个不同域名的站点。
参考资料:
How Orchard works
源码
相关文章推荐
- Orchard源码分析(1):Orchard架构
- Orchard源码分析(1):Orchard架构
- Orchard源码分析(1):Orchard架构
- java集合框架02——Collection架构与源码分析
- android之wifi体系架构源码流程分析
- hessian源码分析(一)------架构
- 源码阅读分析 - Window底层原理与系统架构
- 分享一个分层架构音乐网站源码(第二版本)一步一步构造(二):用户需求的分析与处理
- jQuery 2.0.3 源码分析之core(一)整体架构
- Flume架构与源码分析-核心组件分析-1
- Orchard源码分析(4.3):Orchard.Events.EventsModule类(Event Bus)
- Backbone.js 1.0.0源码架构分析(一)
- Docker源码分析(一):Docker架构
- Study JQuery《源码分析core-整体架构》
- jQuery 源码分析core - 整体架构
- pouch架构源码分析
- Docker源码分析(一):Docker架构
- OpenStack建立实例完整过程源码详细分析(15)----依据AMQP通信架构实现消息接收机制解析之二
- 第三百四十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫和反爬的对抗过程以及策略—scrapy架构源码分析图
- tomcat架构分析(valve源码导读)