本文链接:http://www.cnblogs.com/souther/p/4539169.html
Orchard中有很多可以直接和多次使用的特性,这些东西在官方的Gallery中可以找到。
本主题 主要关于这些特性的一个简单描述。
译者不准备按照官方的英文文档逐句翻译,只对每个模块简单介绍,因为后边有关于他们的详细介绍。
英文链接附上,要了解详情的自己去看吧:http://docs.orchardproject.net/Documentation/Builtin-features
下边的介绍主要分为核心模块与非核心模块。核心模块并不一定在“Core”目录中。
每个模块都详述它的特性,以及它们是否从资源库中可用或者源码发布版中可以获得。
核心模块
Common(常规模块)
核心模块主要负责运行的核心内容部分有Body,Common,Identity,还有Text field。
Containers(容器)
这个模块主要介绍四个部分主要用来创建简单的内容层级关系。主要有容器部分(Container part)、可容纳部分(Containable part)、容器部件部分(Container Widget part)、自定义属性部分(custom properties part)。
Contents(内容)
这个模块为自定义内容类型创建基础架构。
Features(特性)
Dashboard(面板)
这个大家都懂,不用多说了。
Feeds(订阅)
这个用来搞RSS的模块。
Navigation(导航)
控制导航菜单的,这个大家应该也知道是干什么的吧。不过是1.5之后的版本才有的。
Reports(报表)
报表就是报表,报表是干啥的,我就不相信你不知道。
Scheduling(调度)
这个模块提供的APIs可以执行调度操作,比如延时发布等。
Settings(设置)
呵呵,设置很复杂。
Shapes(形状)
形状主要是用于UI来构建HTML的。可以动态添加,本身形状模块就有一些形状可用。核心形状在CoreShapes.cs这个文件中定义的。其它的有定义在cshtml文件中的。不过无论是核心形状还是其它的形状都可以在主题 中被模板重写。
主要有两大类:核心形状,模块化形状,具体包含的东西大家可以参考下英文文档。
Title(标题)
主要介绍大多数内容类型中都用到的标题部分。
XmlRpc
你把它理解成一系列接口规范吧。比如你想用windows live writer写博客,那就需要调用类似的接口,关于XmlRpc百度百科有介绍,大家自己去了解下。Orchard.Blogs模块依赖这个模块构建。
核心模块主要就是这些了,下边的是非核心的
非核心模块(Non-core modules)
Markdown(标记语言)(默认关闭)
开启这个功能之后,在内容编辑时Markdown编辑器就代替了常用的文本编辑器(HTML)。
Orchard.Alias(别名)
本模块的主要作用就是映射URL到内容和自定义路由,自动路由依赖它搭建。
特性
Alias(别名):这是核心基础的东西。
Alias UI(默认关闭):提供修改,创建,删除的管理界面。
主要提供垃圾网站的特性等。用这个模块可以扩展反垃圾系统。
主要有三个特性:关于验证码、第三方垃圾留言或评论以及第三方博客等。
作用和名字一样,就是可以调度实现归档,我理解的是设置归档时间,然后再归档。
可以指定路径然后让Orchard自动路由,也就是可以设置路由,其实相当于指定URL的规则。
对接微软云的服务集合。包括:媒体、输出缓存、数据库缓存。
提供微软云媒体服务的集成给Orchard.
顾名思义,是博客的,它主要依赖于内容类型组合与其它特性,比如像评论等。
关于博客的操作可以参考下面的链接 :
提供API来缓存业务数据。
给开发者提供脚手架命令来帮助我们实现新模块或主题 的创建。
用到评论或者留言的地方都用到这个东西,就是让用户发表评论或留言的。
可参考下边的链接:
不开启这个模块的话,Orchard只能配置权限为所有内容类型。这个模块能给任何的内容类型添加阅读权限,也就是针对的是内容条目,而不是类型。
用它可以为内容条目之间建立联系。这个模块提供了一个依附于内容类型的内容选择字段。
想用得去Gallery.
开启这个模块就能直接在管理界面创建悠内容类型。
可参考:Creating custom content types
前边有一节专门讲它的,这里不再赘述。
提供一些东西方便主题 开发。
包括:形状跟踪、URL侯补、部分侯补。(侯补是个比较强大的功能)
可参考:Customizing Orchard using designer helper tools
这个真不用多说吧。
包括Input, Boolean, DateTime, Numeric, Link, Enumeration, and Media Picker fields 这些个字段,它们都能用在自定义内容类型中。
这是个针对开发者的模块,提供用于从代码来动态创建表单所需的形状。
工程与规则也依赖此模块。
内容类型的定义以及内容本身,都可以从Orchard的实例导出,也可以导入。格式是XML,前边有章节提到过,这里不多说了。
本模块提供了一个客户端的图像编辑器。
这三个模块组建了默认的全文本搜索框架。索引填充内容条目的索引。
本模块提供一个任务队列一起来异步执行任务。
特性:
- Orchard.JobsQueue .
- Orchard.JobsQueue.UI .
Jquery,都知道干什么的吧。你想啊,Orchard中JQuery都独立一个模块,所以货还是相当强大的。
本模块提供内容列表的一个简单实现,如一个文件夹或文件中的一个内容条目只能属于一个列表。
它可以使内容类型可本地化。修改过的类型也可以有几个版本保存下来,以便以后区分。
提供加强媒体管理工具的模块
可参考:Adding and managing media content
处理媒体的,比如图像大小的调整
数据迁移命令。前边应该是说过的。
特性:
提供管理界面来开启或关闭特性的。Orchard中都是模块化的。打开源码你就能看到,模块有多少,有多复杂。
可参考:Installing and upgrading modules
支持多个网站,也就是可以支持业务分离,也就是一个IIS中多个站点,这样有助于提高网站整体的性能,每个站点的数据与其它站点都是独立的,在数据库中话,你可以看到前缀不一样。
可参考:Setting up a multi-tenant Orchard site
用来添加输出缓存功能的。
实现模块与主题的封装.
特性:封装命令、资源库、更新包。
这个模块提供添加页面内容类型及其它相关操作。
很常用的模块,能够灵活创建网站内容的查询,同时在复杂的布局中展现结果,而不需要离开管理界面。
可参考:Presentation video on Projections
就是相当于保存成了草稿,以后一个固定时间再发布。
可参考:Saving, scheduling and publishing drafts
配方就是一些XML文件,描述的是网站内容与配置的一系列操作。一般用来在安装的时候描述预定义配置(Orchard默认配置有博客和核心配方)。也可以在安装后指定额外的操作。导入导出就用这种配方的形式来实现。
前边有介绍,这是不多说了。
可参考:
都过时了,就不说了吧,看此文档的人应该用的都是最新版。
为了简化可编程性,所以Orchard可以用脚本实现一些扩展。例如,插件层的可视化就是用简单的脚本来写的。脚本框架本身与语言无关,可以添加新的语言,Orchard带有一个是Ruby.
特性:基础框架、轻量级脚本Ruby、脚本规则(用于支持任意脚本表达式)
提供C#编译服务。
特性:一个基础服务Orchard.Scripting.CSharp,还有一个是验证Orchard.Scripting.CSharp.Validation.
这个模块基于Scripting模块,使得采用动态语言如Ruby和Python成为脚本语言成为可能,也就是用它你就能用Ruby与Python作为脚本语言。
安装之前可用,安装之后就关掉了。所以大家在安装之后,即使你在VS中再运行,也不会让你再安装一次,这样肯定是合理的。
可参考:
建立查询的标准接口。
特性:
确保采用SSL方式进入指定部分,如控制面板,授权页面或自定义页面等。
标签是分类内容的一个很简单的办法。且易于扩展。由于它有许多层级分类,所以需要用到Contrib.Taxonomies模块。
可参考:Organizing content with tags
在网站群中,常常要发送信息到所有的服务器。本模块提供一种方法通过代码传送任务给整个服务群。
提供任意类型的自定义分组。它为内容类型提供一个分类字段。
这个前边说的已经很多了.
可参考:
前边也说过。
特性:
令牌是上下文环境变量,在动态表达式中使用。例如,自动路由使得为给定类型的内容条目定义URL成为可能。细节可以看下相关内容。
用来执行默认用户管理。
由于冷启动比较慢,ASP.NET应用程序都是这,而且冷启动要很多条件。热启动其实就是提前准备大多数网站的常用页面的静态版本,使得应用程序启动时尽可能的快。这个还真是有用,呵呵。
前边介绍过了,这里不浪费时间了.
可以创建自定义工作流.
就是大家常用的所见即所需的HTML编辑器。
更新就是更新,当然是从旧版更新到新版.
1.4在URL和标题管理上有了大的改变。1.3以前的版本是用路由实现静态URL和标题。1.4采用了别名方法,自动路由和标题。更新模块包含特定的脚本。1.4也包含了新的字段类型(可参考Orchard.Fields),由于有的用户可能有使用Contrib.* 的,所以更新模块提供了到新字段的更新途径。