重用Orchard的Core来构建另一个可扩展性框架

时间:2012-01-16 21:18:07

标签: orchardcms web-extensibility

我非常希望听到有关此事的意见。

我们正在为Web应用程序构建可扩展的体系结构。我们有一个构建默认产品的核心团队。其他开发团队采用默认产品,并希望在代码级别覆盖/替换/扩展其功能。

我们正在考虑使用Orchard的核心来实现这一目标。

如果我们这样做,可能包括:

删除与Orchard相关的所有CMS 剥离Orchard的数据库 使用/构建Orchard的核心DLL来创建我们需要的可扩展功能 另一种替代方法是vanilla ASP.NET MVC扩展性。

评论

3 个答案:

答案 0 :(得分:1)

我们在ITV采取了类似的方法,我们决定我们想要迁移到一个新的系统,并希望Orchard拥有许多功能,但我们并不需要这一切......即CMS的一部分。

我们将Orchard.Web作为所有“区域/模块”的主机 - 这非常重要,因为它迫使开发人员考虑松散地耦合他们的组件。

然后我们决定采用框架并删除它的某些方面。在框架中,我们在IDependency周围采用了Logging,Caching和DI。最难的部分是Autofac。花点时间考虑我的实现,我认为这不是最好的,我确信它有错误。我们采用了很多Orchard DI代码并试图在没有所有shell的情况下对其进行改造。

答案 1 :(得分:0)

Orchard被称为CMS,但肯定不止于此。它非常通用,为您提供了大量非开箱即用的非CMS功能。例如,它可以使用模块轻松扩展 - 这对于构建框架应用程序非常有用。此外,Orchard不会阻止您使用常规ASP.NET MVC。如果在Orchard中找不到所需的内容,可以在vanilla MVC中添加常规控制器并实现应用程序的各个部分。最后,框架本身是非常可扩展的,如果您需要,通常可以覆盖其中的每个机制。

另一方面,Orchard在开始时有点难学。没有太多的文档,框架中有很多“魔力”。有时很难弄清楚如何实现某些特定功能。至少这是我的印象。但是,社区非常有帮助,通常您可以找人帮助您。在你掌握Orchard之后,这是一个很棒的框架。

所以在你的情况下,我认为值得一试。

答案 2 :(得分:0)

另一种可能更实验性的方法是使用Orchard Application Host

这个框架允许你在任何应用程序中运行轻量级Orchard shell,因此基本上你可以在任何地方编写Orchard代码,让它成为控制台应用程序,云工作者甚至是非Orchard Web应用程序(尽管后者会有点无意义。)

此外,Orchard App Host是您想要实现的一个示例:将Orchard拆分为其核心,并将其用作通用应用程序框架。它可以以相当干净的方式(没有修改Orchard),但相当复杂。如果没有更好地理解你的用例,我怀疑你想推出类似的东西。

你基本上可以从Orchard解决方案中移除每个模块,甚至是Core模块,如果你冒险冒险并从那里开始构建:这可能是最简单的。然而,当然,这也意味着一旦你尝试使用不在裸核中的任何东西,你将不得不重新实现已经在Orchard中的东西。