【问题标题】:ASP.net MVC: Multiple domains, separate projects, separate deploymentsASP.net MVC:多个域、单独的项目、单独的部署
【发布时间】:2016-05-29 11:59:08
【问题描述】:

我可能搜索了错误的关键字,但我很难为以下情况找到合适的解决方案。我们有一个内部应用程序,该应用程序中有五个独立的业务领域。过去,这一切都是在网站项目中设置的,我们已经对这个环境进行了零碎部署的更改。我们总是遇到一个更改导致整个网站崩溃的问题。

为了缓解这种情况,同时也带来更简单的单元测试方法并可能进入持续集成用例,我希望有一个结构,其中特定业务领域(域)的所有事务都保留在他们自己的单独项目中。架构可能类似于:

  • 主项目(房屋认证、基本母版页、样式)
    • 订购(房屋所有物品订购)
      • 模型/视图/控制器
    • 定价(房子所有的东西定价)
      • 模型/视图/控制器

我的问题是如何整合所有这些并让自己能够在任何时候单独部署每个项目。因此,例如,我对 Ordering 域进行更新、编译,然后上传项目而不影响其他域。

其他明显的问题围绕着路由。如何获得正确的路线?我假设在 RouteConfig 中有设置命名空间的方法?有什么办法解决这个问题?

MEF 是这样做的吗?

【问题讨论】:

    标签: asp.net asp.net-mvc architecture mef


    【解决方案1】:

    看看Areas:

    MVC 模式分离应用程序的模型(数据)逻辑 从它的表现逻辑和业务逻辑来看。在 ASP.NET MVC 中,这 逻辑分离也在项目中物理实现 结构,其中控制器和视图保存在使用的文件夹中 命名约定来定义关系。这种结构支持 大多数 Web 应用程序的需求。

    但是,某些应用程序可能有大量控制器,并且 每个控制器可以与多个视图相关联。对于这些类型 的应用程序,默认的 ASP.NET MVC 项目结构可以变成 笨重。

    为了适应大型项目,ASP.NET MVC 允许您对 Web 进行分区 应用程序到称为区域的较小单元中。领域 提供一种将大型 MVC Web 应用程序分离为较小的方法 功能组。区域实际上是内部的 MVC 结构 一个应用程序。一个应用程序可以包含多个 MVC 结构 (地区)。

    (来自 MSDN,上面链接)

    这会给你逻辑上的分离,而不是功能上的分离。

    要部署 Ordering 而不会降低 Pricing,最简单的做法是拥有单独的 Web 应用程序(如果这是要求)每个。您可以将任何共享逻辑提取到类库项目中并在两个前端引用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-09
      • 1970-01-01
      相关资源
      最近更新 更多