Orchard基本概念

Orchard是个CMS(这不是废话么),它的首要目标是帮助你从现有的碎片建设网站。这些碎片大小不一、形状迥异,如果你想高效地利用它们,那你首先得很好的理解它们。本文将对深入解释这些碎片的名称与功能。

常规CMS定义

内容(content)

CMS中的C就是指的内容,这也就是说CMS管理的任何东西都是内容。更准确地说,拥有任何信息的站点中的每一个东西都是内容。例如,一篇博客,一个评论,一个产品甚至导航菜单或者可识别的公司Logo,各处的内容。所以正确的想法是内容是站点的所有一切。现在你可能越来越糊涂了。接下的章节我们将搞清楚不同各类内容之间明显的区别。

管理界面、控制台或后台

管理界面(有时也叫控制台(dashboard,有人叫仪表盘,随便吧,大家知道是什么东西就行)或后台),这东西大家都知道用来管理网站和网站内容的地方。这里只有授权“Access admin panel”用户可以访问。这就是CMS中的M。

CMS

CMS中的S指的是“system”,即系统,它其实不像它看上去那样肤浅无用。其实它很重要,CMS管理内容必须以系统的方法:这也就是说所有内容都是资源的交互与统一管理。

例如,你可以使用常规工具管理博客文章,页面以及产品,而这些东西使用常用模块就都可以评论、评级或标记。这会让你感觉体验一致且便于创建新的内容类型。

前端(Front-end)(译者:其实与它的反义词back-end来说翻译成前台也可以,因为把back-end翻译成后端感觉怪怪的,我们一般都说后台吧)

前端是定期匿名用户访问的网站部分。换句话说,就是网站除了管理界面之外呈现给公众的所有东西。

(译者:上句话其实说不说没有什么意义,来到此的人都知道前端的概念,越说越不懂。)

安装(Setup)

安装环节是必不可少的,否则你连站点也看不见更不用说其它的了(比如安装完就可以创建内容了)。

Orchard概念(前边的部分都是为讲概念的,下边才真正进入主题)

内容条目

一个内容条目就是一条简单的内容,一般与一个链接相关联。像页面、博客文章或产品都是内容条目。

内容类型

内容条目是内容类型的实例。换句话说,内容类型是内容条目的类。上边曾说过的页面,博客文章,产品,其实它们被描述成三个内容类型:page、blog post和product。也就是说我们访问一篇博客其实就是类型blog post的一个条目。(译者:其实这段看英文可能比中文更好理解,其实他要说明的意思就是内容类型与条目的关系,类似于我们面向对象中,类与类的实例之间的关系 一样。)

内容部件

在Orchard中,内容类型由更小的部分组成,通常叫做内容部件。内容部件是内容的原子单位,用这些部件足以实现一个特定的功能并且内容类型也可以交互重用它们。

例如,评论、标记和评级都是内容部件,因为它们的特定功能,所以可以被内容类型所重用。博客的评论往往不需要给定内容类型。评论在博客中的使用和在页面与产品中基本一样。

在实际中,给定的内容类型也只能出现一次。

时间: 2024-10-06 00:47:11

Orchard基本概念的相关文章

Orchard 之:Widget,兼看 Layer 在权限控制中的作用

一:Widget 可以理解为控件,可以直接被页面所引用.行为类似与分部页面,比如,我们可以创建一个 商品列表 Widget,然后这个 Widget 就可以被很多页面所引用. 理解 Widget 这个概念,我们不得不理解另外两个概念: 1:Layer Orchard 默认有这么几个层,Default.Authenticated.Anonymous.Disabled.TheHomepage.Layer 用于承载什么时候 Widget 将会被展现,这么讲大家一定觉得很抽象,其实 Layer 存在的意义

Orchard入门:如何创建一个完整Module

这是一个Orchard-Modules的入门教程.在这个教程里,我们将开发两个功能页面分别用于数据录入与数据展示. 完成上述简单功能开发,我们一共需要6个步骤.分别为: 创建Module 创建Model 创建Services 创建Controller.View 创建Route 创建Admin Menu 上面6个步骤可能不太好理解.在这里,我们把他们转换从MVC中的概念让我们更好理解. Module 项目模块 Model 实体层 Controller.View Controller.View Ro

Orchard 刨析:Caching

关于Orchard中的Caching组件已经有一些文章做了介绍,为了系列的完整性会再次对Caching组件进行一次介绍. 缓存的使用 在Orchard看到如下一段代码: 可以看到使用缓存的方法Get而看不到以前常见的缓存方法:Add\Set\Remove,是不是很神奇. 其实也不是那么的神奇,Get方法中根据传入的Key(culture)在缓存数据存储中搜索,如果存在则直接返回缓存结果,如果不存在则执行传入的委托,并把委托返回的结果放入到缓存中. 那么怎么确保缓存是不是失效呢?难道不支持吗? O

Orchard是如何呈现内容的

首先Orchard是一个建立在ASP.NET MVC框架上的CMS应用框架.Orchard在呈现内容的时候也遵循MVC的规律,也是通过Controller来处理Url请求并决定用那个View来呈现那种Model.不过这个Model就比较有讲究了,因为在Orchard中,一个页面上呈现的数据可能是多种多样的,有文章.有评论,有博客等等.而且这些数据都是可以通过后台设置任意组合的,也就是说我们不可能为每一个页面都创建一个类型的Model.那么在Orchard中是如何解决这一问题的呢?Orchard引

详细分析Orchard的Content、Drivers, Shapes and Placement 类型

本文原文来自:http://skywalkersoftwaredevelopment.net/blog/a-closer-look-at-content-types-drivers-shapes-and-placement 在本文中,我们将看看那些引让我夜不能寐的概念,因为我的生活不能找出与:shapes, content types, parts, fields, drivers and placement 等类型对应的东西.如果你有些使用Orchard的经验,但仍然觉得有点笨拙的控制shap

Orchard 刨析:前奏曲

Orchard中大量使用了依赖注入,而实现依赖注入的组件就是Autofac,它在Orchard中扮演者非常重要的角色,多租户如是,模块如是,工作区也如是.今天就来讲讲Autofac在Orchard中的应用. 从OrchardStarter认识Autofac OrchardStarter中向Ioc容器中注册了大量的服务,在此中的服务也是"root"域,根域. Module注册 builder.RegisterModule(new CacheModule()); 这段话代表了注册一个Mod

Orchard源码分析(5.2):BeginRequest事件处理(DefaultOrchardHost.BeginRequest方法)

BeginRequest事件处理的作用是确保所有Shell已经加载,或者在扩展有变化的时候重新加载. void IOrchardHost .BeginRequest() { Logger.Debug( "BeginRequest"); BeginRequest(); } protected virtual void BeginRequest() { // Ensure all shell contexts are loaded, or need to be reloaded if //

Orchard源码分析(4.4):Orchard.Caching.CacheModule类

概述 CacheModule也是一个Autofac模块. 一.CacheModule类 CacheModule将DefaultCacheManager注册为ICacheManager: public class CacheModule : Module { protected override void Load( ContainerBuilder builder) { builder.RegisterType<DefaultCacheManager>() .As< ICacheMana

Orchard源码分析(4.3):Orchard.Events.EventsModule类(Event Bus)

概述 采用Event Bus模式(事件总线),可以使观察者模式中的观察者和被观察者实现解耦. 在.Net 中使用观察者模式,可以使用事件(委托)和接口(类).Orchard Event  Bus使用的是接口的形式,这样方便将“观察者”注册到Autofac容器中.EventsModule模块是构成Orchard Event  Bus的一部分.这里先分开分析Orchard Event Bus涉及的类型和知识点,然后在将他们组合起来分析Orchard Event  Bus的机制. 一.Registra