Orchard内置特性(以模块来说的)
本文链接: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.AntiSpam (反垃圾模块,默认关闭)
主要提供垃圾网站的特性等。用这个模块可以扩展反垃圾系统。
主要有三个特性:关于验证码、第三方垃圾留言或评论以及第三方博客等。
Orchard.ArchiveLater(归档延迟)
作用和名字一样,就是可以调度实现归档,我理解的是设置归档时间,然后再归档。
Orchard.Autoroute(自动路由)
可以指定路径然后让Orchard自动路由,也就是可以设置路由,其实相当于指定URL的规则。
Orchard.Azure (微软云,默认关闭)
对接微软云的服务集合。包括:媒体、输出缓存、数据库缓存。
Orchard.Azure.MediaServices(微软云媒体服务,默认关闭)
提供微软云媒体服务的集成给Orchard.
Orchard.Blogs(博客)
顾名思义,是博客的,它主要依赖于内容类型组合与其它特性,比如像评论等。
关于博客的操作可以参考下面的链接 :
Orchard.Caching(缓存)
提供API来缓存业务数据。
Orchard.CodeGeneration(代码生成)
给开发者提供脚手架命令来帮助我们实现新模块或主题 的创建。
Orchard.Comments(评论)
用到评论或者留言的地方都用到这个东西,就是让用户发表评论或留言的。
可参考下边的链接:
Orchard.ContentPermissions (内容权限,默认关闭)
不开启这个模块的话,Orchard只能配置权限为所有内容类型。这个模块能给任何的内容类型添加阅读权限,也就是针对的是内容条目,而不是类型。
Orchard.ContentPicker(内容选择器)
用它可以为内容条目之间建立联系。这个模块提供了一个依附于内容类型的内容选择字段。
想用得去Gallery.
Orchard.ContentTypes (内容类型,默认关闭)
开启这个模块就能直接在管理界面创建悠内容类型。
可参考:Creating custom content types
Orchard.CustomForms(自定义表单,默认关闭)
前边有一节专门讲它的,这里不再赘述。
Orchard.DesignerTools(设计工具)
提供一些东西方便主题 开发。
包括:形状跟踪、URL侯补、部分侯补。(侯补是个比较强大的功能)
可参考:Customizing Orchard using designer helper tools
Orchard.Email
这个真不用多说吧。
Orchard.Fields(字段)
包括Input, Boolean, DateTime, Numeric, Link, Enumeration, and Media Picker fields 这些个字段,它们都能用在自定义内容类型中。
Orchard.Forms(表单)
这是个针对开发者的模块,提供用于从代码来动态创建表单所需的形状。
工程与规则也依赖此模块。
Orchard.ImportExport(导入导出)
内容类型的定义以及内容本身,都可以从Orchard的实例导出,也可以导入。格式是XML,前边有章节提到过,这里不多说了。
Orchard.ImageEditor(图像编辑器)
本模块提供了一个客户端的图像编辑器。
Orchard.Indexing, Orchard.Search and Lucene(索引,查找和搜索引擎)
这三个模块组建了默认的全文本搜索框架。索引填充内容条目的索引。
Orchard.JobsQueue(任务队列)
本模块提供一个任务队列一起来异步执行任务。
特性:
- Orchard.JobsQueue .
- Orchard.JobsQueue.UI .
Orchard.jQuery
Jquery,都知道干什么的吧。你想啊,Orchard中JQuery都独立一个模块,所以货还是相当强大的。
Orchard.Lists(列表)
本模块提供内容列表的一个简单实现,如一个文件夹或文件中的一个内容条目只能属于一个列表。
Orchard.Localization(本地化)
它可以使内容类型可本地化。修改过的类型也可以有几个版本保存下来,以便以后区分。
Orchard.MediaLibrary(媒体库)
提供加强媒体管理工具的模块
可参考:Adding and managing media content
Orchard.MediaProcessing(媒体加工)
处理媒体的,比如图像大小的调整
Orchard.Migrations(迁移)
数据迁移命令。前边应该是说过的。
特性:
- DatabaseUpdate .
Orchard.Modules(模块)
提供管理界面来开启或关闭特性的。Orchard中都是模块化的。打开源码你就能看到,模块有多少,有多复杂。
可参考:Installing and upgrading modules
Orchard.MultiTenancy(多租户,其实是多站点)
支持多个网站,也就是可以支持业务分离,也就是一个IIS中多个站点,这样有助于提高网站整体的性能,每个站点的数据与其它站点都是独立的,在数据库中话,你可以看到前缀不一样。
可参考:Setting up a multi-tenant Orchard site
Orchard.OutputCache(输出缓存)
用来添加输出缓存功能的。
Orchard.Packaging(封装)
实现模块与主题的封装.
特性:封装命令、资源库、更新包。
可参考:Installing modules and themes from the gallery
Orchard.Pages(页面)
这个模块提供添加页面内容类型及其它相关操作。
Orchard.Projections(映射)
很常用的模块,能够灵活创建网站内容的查询,同时在复杂的布局中展现结果,而不需要离开管理界面。
可参考:Presentation video on Projections
Orchard.PublishLater (延时发布,默认关闭)
就是相当于保存成了草稿,以后一个固定时间再发布。
可参考:Saving, scheduling and publishing drafts
Orchard.Recipes(配方)
配方就是一些XML文件,描述的是网站内容与配置的一系列操作。一般用来在安装的时候描述预定义配置(Orchard默认配置有博客和核心配方)。也可以在安装后指定额外的操作。导入导出就用这种配方的形式来实现。
Orchard.Roles(角色)
前边有介绍,这是不多说了。
可参考:
Orchard.Rules (deprecated)(规则,已过时默认关闭)
都过时了,就不说了吧,看此文档的人应该用的都是最新版。
Orchard.Scripting(脚本语言支持)
为了简化可编程性,所以Orchard可以用脚本实现一些扩展。例如,插件层的可视化就是用简单的脚本来写的。脚本框架本身与语言无关,可以添加新的语言,Orchard带有一个是Ruby.
特性:基础框架、轻量级脚本Ruby、脚本规则(用于支持任意脚本表达式)
Orchard.Scripting.CSharp(C#)
提供C#编译服务。
特性:一个基础服务Orchard.Scripting.CSharp,还有一个是验证Orchard.Scripting.CSharp.Validation.
Orchard.Scripting.DLR(动态语言运行时)
这个模块基于Scripting模块,使得采用动态语言如Ruby和Python成为脚本语言成为可能,也就是用它你就能用Ruby与Python作为脚本语言。
Orchard.Setup (off after setup)(安装,安装后就关闭了)
安装之前可用,安装之后就关掉了。所以大家在安装之后,即使你在VS中再运行,也不会让你再安装一次,这样肯定是合理的。
可参考:
Orchard.Search(查询)
建立查询的标准接口。
特性:
- Orchard.Search : Standard interface to Orchard's built-in search.
- Orchard.Search.Content : Provides a Content Search tab in Admin.
- Orchard.Search.ContentPicker : Provides a search tab in Content Picker.
- Orchard.Search.MediaLibrary : Provides search menu item in the Media Library explorer.
Orchard.SecureSocketsLayer(安全通信层)
确保采用SSL方式进入指定部分,如控制面板,授权页面或自定义页面等。
Orchard.Tags(标签)
标签是分类内容的一个很简单的办法。且易于扩展。由于它有许多层级分类,所以需要用到Contrib.Taxonomies模块。
可参考:Organizing content with tags
Orchard.TaskLease(任务出租)
在网站群中,常常要发送信息到所有的服务器。本模块提供一种方法通过代码传送任务给整个服务群。
Orchard.Taxonomies(分类)
提供任意类型的自定义分组。它为内容类型提供一个分类字段。
Orchard.Themes(主题)
这个前边说的已经很多了.
可参考:
Orchard.Templates(模板)
前边也说过。
特性:
- Orchard.Templates .
- Orchard.Templates.Razor.
Orchard.Tokens (令牌,默认关闭)
令牌是上下文环境变量,在动态表达式中使用。例如,自动路由使得为给定类型的内容条目定义URL成为可能。细节可以看下相关内容。
Orchard.Users(用户)
用来执行默认用户管理。
可参考:Managing users and roles
Orchard.Warmup (off by default)(热身,真的是热身,默认是关闭)
由于冷启动比较慢,ASP.NET应用程序都是这,而且冷启动要很多条件。热启动其实就是提前准备大多数网站的常用页面的静态版本,使得应用程序启动时尽可能的快。这个还真是有用,呵呵。
Orchard.Widgets(部件)
前边介绍过了,这里不浪费时间了.
属性:Widgets. Page Layer Hinting。Widget Control Wrapper.
可参考:
Orchard.Workflows(工作流)
可以创建自定义工作流.
TinyMCE(文本编辑器)
就是大家常用的所见即所需的HTML编辑器。
Upgrade / UpgradeTo16 /UpgradeTo15 / UpgradeTo14 (off by default)(更新,默认关闭)
更新就是更新,当然是从旧版更新到新版.
1.4在URL和标题管理上有了大的改变。1.3以前的版本是用路由实现静态URL和标题。1.4采用了别名方法,自动路由和标题。更新模块包含特定的脚本。1.4也包含了新的字段类型(可参考Orchard.Fields),由于有的用户可能有使用Contrib.* 的,所以更新模块提供了到新字段的更新途径。