1

我习惯于在areas单个 MVC 项目的两个不同中构建我的 CMS 和客户端站点。该 MVC 项目引用了一个应用层(类库),该层为该 MVC 项目中的两个区域提供服务。应用程序层引用域层,然后域层引用数据(都在它们自己的单独的类库中)。MVC 应用程序只知道应用程序层。

我开始渴望将 CMS 分离到它自己的应用程序中的好处,其中一些是:

  1. 从通常非常轻量级的客户端项目中获取相当大的 CMS 演示代码库。
  2. 当特定客户端没有自定义功能时,不必重新构建相同的 CMS 代码库(通常不需要为新客户端更改 CMS)
  3. 能够在生产中升级 CMS 而不必担心影响网站(反之亦然)

为了做到这一点,从我最初的研究中我发现我需要创建一个引用应用程序层的 WCF 应用程序。然后从这里开始,CMS MVC 应用程序和 Client MVC 应用程序将只与 WCF 层进行通信。

这种方法的缺点:

  1. 需要在托管环境中提供 3 个单独的应用程序。
  2. 不同应用程序之间的消息传递开销。

这是实现我想要的最简单的方法吗?任何人都可以给我一些例子或易于理解的类似情况的案例研究吗?

4

2 回答 2

1

基本上这是您的选择,您希望如何保留应用程序。如果您希望稍后将您的业务逻辑公开为 Web 服务,那么您必须使用 WCF,以便您的 CMS 的业务逻辑独立于任何客户端界面,因此如果您稍后计划网站的移动版本,那么在从广义上讲,如果您将 BL 保存在 WCF 中,您只需更改客户端,并且可以由第三方为您开发。

如果我在你的位置,我肯定会选择 WCF 方法。

如果您谈论最简单的方法,那么将 BL 作为您项目的一部分。但同样,您必须在可扩展性和易于开发之间做出选择。

于 2012-05-02T11:13:26.923 回答
1

我已将 CMS 分离到它自己的项目中,但遵循相同的命名空间。现在我可以从我的客户端 MVC 应用程序中引用 cms dll,设置路由并复制文件资产(视图、内容)。

至于 WCF 层,我决定在 MVC 4 中使用 Web API 并解决它,直到我扩展它的限制并不得不转向 WCF。

于 2012-05-11T12:14:22.517 回答