Orchard 项目 是一款以微软为主导的开源CMS项目,它允许使用者在Asp.Net平台上快速建立网站,并且提供扩展框架能够允许定制人员通过模块和主题 等增加额外的内容。关于 Orchard 更详细的介绍,请点击此此。

Orchard 项目 是不可多得的优秀开放源代码项目,项目中使用了超过30处第三方开源组件(其OrchardLogo中都是诸如 NHibernateAutofac 等大有名气的大婉!),而 Orchard 自己目前采用 New BSD 开源协议(也就是衍生品除了不允许使用原著作权作为宣传理由,其余行为自由。更详细说明,推荐阮一峰的这幅图”))开源。

该项目托管于微软自己的 Codeplex 站点上,自 2009 年 11月第一个 commit 被推送到 Codeplex 以来,至今仍持续更新,仅今年年内就发布了 1.4、1.5 两个较大的版本。从社区规模来看,Orchard 由微软提供技术支持(目前由微软的雇员负责主要开发工作),国内外研究者相当踊跃。截止目前,Orchard 项目官网上已有超过 400 个独立包,其中包括超过80个主题,总下载次数达到 200 多万次。

Orchard 项目总体架构思路明晰,代码维护良好,编码风格优美,非常适合拓展开发使用;使用 NHibernate 作为数据库底层,使多数据库支持变的简单;整个项目全接口式设计,可以说从根本上解决了可测试、可替换、可扩展的问题;ASP.NET MVC 作为站点的表现层,充分使用了 .NET 4 中的动态类型(dynamic)和兼容 vb.net 和 C# 的 Razor 视图引擎,使得站点的表现层整体十分具有亲和力。

 

我们可以看出,对于这样一个优秀的项目,如果没有您没有到场,是不是有些遗憾呢?嗯,由于是国外的项目,国人研究和参与的开发者确实目前还不够丰富。不过我相信有了您的关注,局面会大有改观。

 

或许你正在跃跃欲试!

不过,先不用着急,待我先交代清楚我的议题,以免浪费了您的宝贵时间。

 

Orchard 项目总体分为以下几个部分:

  • Framework 是整个项目的基础框架,提供支撑系统运行的一切所需;
  • Core 提供 CMS 需要具备的基础功能,比如内容的显示、站点设置等;
  • Modules 组织所有附加功能模块,这些模块构成了 Orchard 的生命力;
  • Themes 放置系统中可用的主题;
  • Tests 体系用于在开发期对项目进行单元测试,以保证项目的质量;
  • Azure 体系支持,这是最新新增的部分,用于支持 Orchard 在 Windows Azure 中的部署;
  • Web 层 用于接收用户请求、在 IIS 中部署的外层;
  • 命令行工具 为更快速简洁地管理 Orchard 提供更直接的方式。

 

实际上,我目前准备要在接下来讨论的只是上述范围中很少的一部分。但请无需失望,因为我要讨论的这些肯定是你最为关注也是能直接受益的那部分!

那就是 模块开发

 

Orchard 主要提供了两种途径供开发者拓展 Orchard 的功能和自定义站点视觉效果,即模块(Module)和主题(Theme)。其中,模块用于对功能的拓展,比如你需要为 Orchard 添加一个“产品管理”的功能,那就需要用于模块;而主题,故名思义,就是用来定制视觉效果的。
嗯,如您所见,我主要要讨论的是模块开发,而不是主题制作,也并不是 Orchard 底层的逻辑,毕竟我对 Orchard 的了解也仅限于模块开发而已,还需要进一步的学习,才敢于与大家交流心得。

 

从本期开始,本博将陆续推出 Orchard 模块开发的系列文章,为您着手开始 Orchard 开发提供一些参考,希望对您有所帮助,敬请关注。

 

以下是近期将先行写作的内容,如果您已经对 Orchard 的模块开发有了一定的了解,您也可以向我提出更好的写作计划,以收到更好的效果。

 

  1. Orchard 开发环境的搭建、软件需求和调试工作
  2. Orchard 项目结构介绍和两种扩展的方式:主题与模块
  3. Orchard 模块的创建及项目结构(添加功能、修改现在功能)
  4. ASP.NET MVC的“约定胜于配置”,Controller、Action 和 Model 与 View
  5. 第一个新建的模块的功能(Controller、Model 与 View 和 Content)
  6. 内容管理系统,以及Orchard 中的内容(Orchard 内容系统中的 Model)
  7. IContent接口、ContentPart 和 ContentTypeDefninition
  8. 定义一个新的内容类型及其 Migaration
  9. 内容的显示和 Part 的开发与结合 Driver 的使用
  10. 使用 Services 存取内容,以及内容的发布与草稿版本
  11. 编写 AdminController 管理内容

 

 

另外,由于博主我个人的时间、写作材料的准备等关系,更新频率可能限制于每周 0.8 篇左右,因此请您合理安排时间,与我一起慢慢 Step by Step 进入开发状态。

 

为了更好地跟进学习,您可能需要准备以下工具和知识:

安装下列版本或以上 之一的 Windows 电脑: 7 Enterprice、Vista Enterprice、XP Professinal、2003、2008,需要安装有 IIS 和 .NET 4;

通常 Web 开发的基本能力(HTML、JavaScript 和 CSS)

C# 4 开发语言(LINQ、dynamic 类型和 Razor)

基于 .NET 4 的 ASP.NET MVC 开发知识

 

如果在这些方面的条件还不成熟,请您先行小补一下。

 

 

 

 

 

有任何问题,请您直接在文章下面评论;或者发邮件至 ciznx@qq.com 联系。