Orchard是一个了不起CMS(内容管理系统)

时间:2022-04-16 07:15:48

在这个系列中,我们将共同经历从头开始构建一个Orchard模块的过程!

虽然Orchard是一个了不起CMS(内容管理系统),有着强大的功能和令人振奋的架构,可以无限的扩展,但它可能需要花费一定时间,以充分了解它的架构,并能够定制您自己的主题的各个方面或甚至创造整个模块来集成Orchard所有的可扩展性点。

我希望,你将受益于我前进的道路上所获得的知识,你会看到Orchard及其架构之美。它不仅只是在简单或高级的网站和博客方面表现很出色,同时它也是一个非常基础的平台,用于创建各种基于Web的应用,如电子商务后端,  CRM的投票系统,项目管理,社区网站,学习管理系统等等。基本上你打算从头创建的任何应用都应考虑使用Orchard创建。Orchard实际上是一个可扩展的框架,它不仅仅“只是”一个CMS。你可以通过插件方式做任何常规ASP.NET MVC应用可以做的事,同时Orchard还拥有一套丰富的功能和兼容概念,你可以获得额外的好处。

本播客系列主要面向刚刚接触Orchard的ASP.NET MVC开发人员,在开始深入这前,如果您还没有阅读过下面文章,我强烈建议您先阅读以下文章:

http://www.orchardch.com/Document

网上商店功能

我们的网上商店模块将启用以下功能:

  • 管理员将能够将任意ContentType(内容类型)通过附加到ProductPart上,从而把它变成产品。
  • 网站访客(顾客)将能够把产品添加到购物篮,通过网站注册,并成为注册用户。
  • 用户将能够进行结算和通过在线支付服务提供商(PSP)支付(在我们的演示,我们将使用Ogone模拟PSP)选定的产品。
  • 在客户被重定向到PSP之前,系统将创建一个Order(订单)记录,及其OrderDetail (订单明细)记录。
  • 在客户支付订单后,我们需要处理的产品交付。在实物产品的情况下,我们可能要通知一些航运伙伴。在虚拟产品的情况下,我们可能要产生类似于票据,或其他近似的产品。为了这种灵活性,我们将实现某种接口IShippingProvider,我们将创建两个简单的实现:一个是发送电子邮件通知托运人,另一个会产生票据。
  • 管理后台,使管理员能够管理客户以及订单。

创建Orchard.Webshop模块项目

这是从头开始编写一个新的Orchard模块的教程,实际上原文里前面还有两篇关于介绍如何安装Orchard,因为网站里有很多文章已经介绍如何安装,这里就不再重复了。
Orchard模块是一个真正的ASP.NET MVC的Area类库,同时遵循了ASP.NET MVC和Orchard的特定的规范。
Orchard 规范提升了您的ASP.NET MVC Area,因此,它可以集成到Orchard中。
现在,我们可以使用Orchard命令行应用程序为我们生成一个基本结构,但是让我们使用Visual Studio从头开始,使我们充分理解,一个模块可以简单到一个空类库加一个module.txt文件,作为模块清单。
最后,我们的模块将包括:

  • A Module Manifest
  • Models & ViewModels
  • Views
  • Controllers
  • Drivers
  • Service classes
  • Handlers
  • Shapes
  • Javascript
  • Css
  • A Migration
  • A ResourceManifest
  • Routes
  • Helpers methods

我们将进行过程中讨论每一项。
首先,我们将由简单的创建一个新的类库项目开始。
在Visual Studio中,在模块的解决方案文件夹下创建一个新的类库项目,并确保该项目位于物理位置\src\Orchard.Web\Moduels:

Orchard是一个了不起CMS(内容管理系统)

Orchard需要您的模块位于存在物理位置Modules目录下。
下一步,我们将创建模块的Manifest文件,这是一个简单的文本文件,说明我们的模块,如我们的模块的名称,描述,版本号,公司网址等
让我们的开始给Module.txt输入以下信息:

Orchard是一个了不起CMS(内容管理系统)

Name: Orchard.WebShop
AntiForgery: enabled
Author: Sipke Schoorstra
Website: http://skywalkersoftwaredevelopment.net
Version: 1.0
OrchardVersion: 1.3.10
Description: Orchard Webshop Module Demo
Category: Webshop

Orchard是一个了不起CMS(内容管理系统)
然后,我们就有了一个基本的Orchard模块,但它什么功能也没有。
但是,这就是我们下面要作的。
让我们确认Orchard识别了我们的模块。按Ctrl + F5启动网站。
网站启动后,导航到管理页面。
可以通过,敲入网址http://localhost:30320/OrchardLocal/admin直接进入管理页面,或点击网站页脚上的”Dashboard”连接进入。
一旦进入管理页面,选择Modules,启用我们的Orchard Webshop Module:
 Orchard是一个了不起CMS(内容管理系统)

Orchard是一个了不起CMS(内容管理系统)
这样我们就创建了一个模块的骨架!接下来,让我们使它能做一些有用的事。
我们要的是,使管理员可以定义各种产品:书籍,光盘,DVD光盘,手机等
所有这些产品至少有两个共同的特点:一个单位的价格和一个SKU属性。
在Orchard的核心,每一部分内容事实上都是由Content Parts组成。
例如,管理员可以定义一个新的内容类型:
Book。Book的内容类型是由它的Content Parts定义的。
管理员可以挑选他喜欢的Content Parts(内容部分),如:BodyPart,CommentsPart,RoutePart等。
为了Book变成一个产品,我们需要先创建一个自己的自定义Part(部分):ProductPart。

原文地址:http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-3

翻译:瑞雪年

http://skywalkersoftwaredevelopment.net/Tags/orchard

http://www.orchardch.com/Blog/20120425073505