一、项目介绍

Orchard是一个免费和开源的社区交流项目,致力于在ASP.NET平台开发应用程序和可重用性组件。它将创建用于ASP.Net应用和扩展的共享组件,以及修改这些组件以便使其应用于终端用户,脚本人员和开发者。使用的开源协议是OSI认证的 New BSD license。

Orchard 是由微软公司创建,基于 ASP.NET MVC 技术的免费开源内容管理系统:

  • 可用于建设博客、新闻门户、企业门户、行业网站门户等各种网站
  • 简单易用的后台界面
  • 性能稳定,功能齐全
  • 热拔插模块化架构提供超强可扩展性
  • BSD 协议授权,可用于商业闭源项目

二、Orchard主要的第三方资源和类库

参考:http://www.cnblogs.com/esshs/archive/2011/06/19/2084592.html

· Autofac 一款IOC框架,在Orchard中大量使用了依赖注入。

· Castle Orchard使用Castle Windsor实现生成类型代理和日志支持。

· Fluent Nhibernate 一个OR映射工具。

· Log4Net 日志记录工具。

· Lucene.Net 一个提供全文索引的搜索引擎。

· Moq 提供模拟对象技术,用于Orchard中单元测试。

三、Orchard 的项目结构

参考:http://www.cnblogs.com/esshs/archive/2011/06/18/2084297.html

Orchard运行于.Net/ASP.NET之上,使用了几个包括ASP.NET MVC在内的开源框架或类库。

最上三层属于Orchard的项目内容。

Orchard.Framework  最底层的支持库,包含Orchard所使用的各种类库。如:缓存、集合、命令、内容管理、数据访问等等。同时也包含了大量的接口定义和属性定义。

Orchard.Core 核心项目,包含Orchard中核心模块和内容类型,如:feeds部件、主题部件、导航部件、通用部件、路由部件和内容文本部件。依赖于Orchard.Framework。

Modules : Modules目录是一个VS解决方案目录,它包含了Orchard的模块项目。通常我们是在Modules层开发,创建新的 Module/Theme或修改已经存在的Module/Theme。

四、模块(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支持子站点,即一套程序、一个应用程序域部署多个不同域名或者相同域名不同Url前缀的站点。

201. Orchard学习 一、基础的更多相关文章

  1. 200. Orchard学习 目录

    201. Orchard学习 一.基础 210. Orchard学习 二.启动 211. Orchard学习 二 1.Application_Start 212. Orchard学习 二 2.Manu ...

  2. 一步步学习javascript基础篇(0):开篇索引

    索引: 一步步学习javascript基础篇(1):基本概念 一步步学习javascript基础篇(2):作用域和作用域链 一步步学习javascript基础篇(3):Object.Function等 ...

  3. 一步步学习javascript基础篇(3):Object、Function等引用类型

    我们在<一步步学习javascript基础篇(1):基本概念>中简单的介绍了五种基本数据类型Undefined.Null.Boolean.Number和String.今天我们主要介绍下复杂 ...

  4. JavaScript学习02 基础语法

    JavaScript学习02 基础语法 JavaScript中很多基础内容和Java中大体上基本一样,所以不需要再单独重复讲了,包括: 各种算术运算符.比较运算符.逻辑运算符: if else语句.s ...

  5. jQuery学习笔记 - 基础知识扫盲入门篇

    jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...

  6. Python3学习(1)-基础篇

    Python3学习(1)-基础篇 Python3学习(2)-中级篇 Python3学习(3)-高级篇 安装(MAC) 直接运行: brew install python3 输入:python3 --v ...

  7. Ant学习-001-ant 基础知识及windows环境配置

    一.Ant 概要基础知识 Apache Ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发,用以构建应用,或结合其他开源测试工具例如 git.T ...

  8. 学习javascript基础知识系列第二节 - this用法

    通过一段代码学习javascript基础知识系列 第二节 - this用法 this是面向对象语言中的一个重要概念,在JAVA,C#等大型语言中,this固定指向运行时的当前对象.但是在javascr ...

  9. 学习javascript基础知识系列第三节 - ()()用法

    总目录:通过一段代码学习javascript基础知识系列 注意: 为了便于执行和演示,建议使用chrome浏览器,按F12,然后按Esc(或手动选择)打开console,在console进行执行和演示 ...

随机推荐

  1. springboot + @KafkaListener 手动提交及消费能力优化

    转载 https://blog.csdn.net/asd5629626/article/details/82776450  https://blog.csdn.net/asd5629626/artic ...

  2. mysql-8.0.15-winx64 解压版安装 图文详解

    1.官网下载 https://dev.mysql.com/downloads/mysql/ 2.解压到合适的目录 3.配置环境变量 ①. path ②.MYSQL_HOME 4.新建一个my.ini  ...

  3. JS的事件流的概念(重点)

      09-JS的事件流的概念(重点)   在学习jQuery的事件之前,大家必须要对JS的事件有所了解.看下文 事件的概念 HTML中与javascript交互是通过事件驱动来实现的,例如鼠标点击事件 ...

  4. HTML中关于class内容空格多类名的问题详解

    之所以想谈谈这个,不明所以.所以转载下来方便自己看看. 问:像 class="info fl" 这种class定义是何意思? 答:这里的空格隔开后,它们所代表的是两个类名,分别为i ...

  5. AJAX心得

    持续补充... AJAX的核心是异步对象XMLHttpRequest对象,一个具有程序接口的JavaScript对象,能够使用超文本传输协议(HTTP)链接一个服务器. 这是一段标准的AJAX执行代码 ...

  6. Python中单引号,双引号,3个单引号及3个双引号的区别

    单引号和双引号在Python中我们都知道单引号和双引号都可以用来表示一个字符串,比如 str1 = 'python' str2 = "python" str1和str2是没有任何区 ...

  7. Linux下 刚安装完mysql 修改密码

    在Centos中安装MySQL后默认的是没有root密码的,默认的是回车, 那么为了方便需要修改密码. 没有密码为MYSQL加密码: mysql -uroot -p 回车 提示输入密码,为空回车 up ...

  8. python 复数类型

    1 Python中的算数虚数不能单独存在,它们总是和一个值为0.0的实数部分一起构成一个复数表示虚数的语法:real+imagj实数部分和虚数部分都是浮点数虚数部分必须有j或J下面是些得数:64.23 ...

  9. 消息中间件——kafka

    1.1.1 什么是消息中间件 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成.通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信.对 ...

  10. C# 多线程 举例使用

    使用多线程的几种方式 (1)不需要传递参数,也不需要返回参数 ThreadStart是一个委托,这个委托的定义为void ThreadStart(),没有参数与返回值.   /// <summa ...