现在的Orchard CMS系统是个什么状态

Orchard是一个以微软为主导的开源CMS项目,它允许使用者在.Net平台上快速建立网站,并且提供扩展框架能够允许定制人员通过模块和主题等增加额外的内容,Orchard能够建设出复杂的内容管理系统,它提供了强大的模块化建设模式,通过组件的重用将系统建设成本最小化,帮助用户减少编码,从而吸引非技术人员的关注。
Orchard项目建立于2010年3月并与2011年1月发布正式版V1.0,是微软“Oxite”开源CMS系统的继承者,2010年12月微软将Orchard从自己的CodePlex迁移到 Outercurve基金会,并承诺提供三年的技术支持该项目。Orchard使用了当今.Net平台最先进的技术构架,使之成为该平台中最新、最先进的开源CMS系统之一。

可以在orchard中文社区及orchard QQ群里讨论,群共享里面有各种现成的实例, 这个CMS极具潜力,非常灵活,采用了微软最新技术栈,即使不使用它,也可以研究里面的代码!!
---------------------------------------------

Orchard是由微软于2009始启动,使用最新.NET技术栈实现的免费开源内容管理系统。项目开发人员多数来自团队,是继Petshop,Oxite之后的重磅开源项目!

它整合了上百个开源项目,如autofac,nhibernate等,它拥有非常复杂的模块机制,可以动态编译模块,因此只需将代码发布即可运行。

同时在CMS系统架构上,它抽象了内容类型(ContentTypes),Orchard认为一切内容皆由ContentPart与ContentField构成,你可以自由的设计内容类型,这是它相比其它CMS强大的原因之一!

在拥有了极灵活的内容管理机制后,Orchard也拥有极复杂的渲染机制,首先它采用了类似Photoshop作图方法的图层思想,任何Url都对应一条Content或者Projection,同时也将满足Layer层级规则的层“叠加“,最终输出的视图模型(ViewModel)将是一个多层结构的,且每层都拥有多个Zone的数据结构。

ps:看起来就像一本书,一页纸就是一个Layer,每页纸上有N个Zone,所有纸的Zone都是固定的,在theme.txt里面定义好的,每个Zone里面拥有N个Widget。

Layer

Zone

Widget

Content

Part+Field

以上树中每一类结构都将对应一个形状(Shape),在渲染此模型时采用形状候补(Alternates)规则来命中html模板,在渲染ProjectionWidget(通常是一个列表)时,则寻找

Widget Wrapper类型的形状

Widget形状

List形状

在寻找这些形状的时候,又有寻找规则,即先前所述的候补规则,如某个Projection的Id为18,那么在寻找List模板的时候会去找 List-18.cshtml(更多规则参考文档)。

 

这里只讨论现在可用的 Orchard 1, Orchard 最大的特点是架构繁复,彻底用依赖注入容器 Autofac 搭建起来的框架,初学者很可能被他层层封装的两万多行框架代码吓蒙。

对于使用来说,Orchard 的概念有点多,上手比较慢。再加上使用 C# 这样的静态语言加上强制化的依赖注入,造成二次开发样板代码多弄起来比较麻烦。

结论是做简单的网站的话不适合。

不过 Orchard 的代码组织的很好,相当于在 .Net BCL 上面又封装了一层完全面向接口 DI 形式的“标准库”,属于比较完备的开发框架了,适合学习如何搭建复杂 .NET 系统的架构。

Orchard 的缺点是里面到处使用 HttpContext.Current 造成无法移植到 Core,而且影响并发性,我们要批判地看待,千万不要跟着学。

利益相关:Orchard CMS 官方版本里 PostgreSQL 数据库支持是我贡献的。有人提到的 orchard 中文网 orchardch.com 网站也是我做的,不过所有权和维护我不负责。

感觉比Wordpress上手难度大。但是比Wordpress功能强大


 
posted @ 2018-03-18 11:16  net5x  阅读(134)  评论(0)    收藏  举报