1

我很想听听对此的意见。

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

我们正在考虑使用 Orchard 的 Core 来实现这一点。

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

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

意见?

4

3 回答 3

1

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

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

然后我们决定采用框架并去掉它的某些方面。在框架中,我们采用了 Logging、Caching 和 IDependency 周围的 DI 东西。最难的部分是 Autofac。花点时间解决这个问题,因为我认为我们的实现并不是最好的,而且我确信其中存在错误。我们采用了很多 Orchard DI 代码并尝试在没有所有 shell 的情况下对其进行改造。

于 2012-01-18T11:42:18.310 回答
0

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

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

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

于 2012-01-17T20:54:56.003 回答
0

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

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

此外,Orchard App Host 正是您想要实现的目标的一个示例:将 Orchard 剥离到其核心并将其用作通用应用程序框架。这可能以一种相当干净的方式(无需对 Orchard 进行修改)但相当复杂。如果没有更好地了解您的用例,我怀疑您是否想推出类似的东西。

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

于 2014-10-01T21:56:39.907 回答