【发布时间】:2017-03-21 14:33:18
【问题描述】:
我目前正在重构一个巨大的 ASP.NET MVC 网站。我想要实现的主要思想是在同一个解决方案中拥有一个主(前端)网站和几个独立的网站,可以单独部署。原因是我们有不同的团队在不同的项目上工作。 当前设置如下所示:
- 主网站 ASP.NET MVC
- 模块 1(区域)
- 模块 2(区域)
- 其他模块..
- 通用业务层
- 通用数据层
- 通用视图层
对模块进行更改时,您必须部署主网站(因此尽管区域作为单独的项目,但它们不能单独部署)。区域正在为视图使用 RazorGenerator。公共视图层生成要在主要网站/模块中使用的嵌入式资源。
有什么解决办法吗?
我现在想要完成的是将模块从区域中提取到完整的 ASP.NET MVC 网站中,并将它们在 IIS 中作为子域映射到主网站。这里的问题是我在所有项目中都有重复的视图、样式、布局,并且对主菜单、样式等进行更改意味着遍历所有项目并进行相同的更改。不是一个可行的选择。
感谢您的想法!
【问题讨论】:
-
一个项目 == 一个网站。如果您希望您当前的区域成为单独的站点,则将它们分解为自己的项目。您可以将子域映射到区域,如果这就是您要查找的全部内容,但您仍然必须一次性部署整个网站,包括所有区域。没有办法只部署一个区域。
-
嗨,克里斯,有什么解决方案可以实际拥有单独的可部署项目,但具有共同的观点?到目前为止,我发现的唯一解决方案是为这些视图、样式、脚本创建一个 NuGet 包并将其添加到所有项目中。
-
这实际上可能是最好的方法。您可以使用 Razor Generator 通过类库共享视图,但静态资源仍然是一个问题。静态文件唯一真正的选择是将它们简单地托管在一个单独的域上,并在该域的项目中引用它们。
标签: c# asp.net-mvc architecture