c# - 是否可以部分部署到 ASP.Net MVC?

标签 c# asp.net asp.net-mvc asp.net-mvc-5

我们有一个基于模块(一组功能)的 MVC 5 应用程序。我们还有专门负责每个模块的团队。所以我的问题是:是否可以进行某种部分部署,仅发布我们需要的更改?

也许我最好解释一下我们今天的工作方式:

现在,当任何团队的每个成员提交代码时,我们都会运行 CI 构建和单元测试,并且站点会部署到测试服务器,其中进行提交的开发人员会测试自己的代码,一旦他们对此感到满意我们部署该版本进行测试。但这带来了一个问题,因为该开发人员对他的功能感到满意,但其他开发人员可能与其他模块中的其他开发部分不在同一阶段,因此不需要的更改会部署到测试中。

当我将 ASP.Net Webforms 与其他项目一起使用时,我们通常部署在页面/代码隐藏级别,这很好,但现在所有内容( Controller 、帮助程序等)都捆绑到一个程序集中,而且如果我们进行更改Bin 文件夹中的某些内容 AppDomain 会被回收,因此应用程序基本上会重新启动。

当然,我们正在处理此测试部署问题,只需在发布要测试的内容之前与其他团队进行沟通,但我想知道我们是否可以做更多的事情,这就是为什么我考虑了部分部署。

最佳答案

如果您有不同的团队从事同一个项目,您可能应该看看 branch strategies 。在您的特定场景中,每个功能(或每个模块)的分支可能工作得很好。

在您的情况下,必须在“主”分支上启用 CI。当团队启动一项功能时,他们会创建一个分支。在开发过程中,他们致力于该分支(您也可以启用自动测试执行并部署到“功能”分支上的开发)。完成一个功能后,他们将更改合并到“main”中,CI 创建一个构建并将其部署到服务器。然而,有一个缺点,合并期间可能会发生冲突,因此您需要确保您的团队尽可能频繁地提交到主分支,以尽量减少这些问题。

关于c# - 是否可以部分部署到 ASP.Net MVC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33552484/

相关文章:

c# - 如何在 Linq2SQL 中更新整个对象

c# - 图片框转字节数组

c# - 使用 Angular 8 和 .Net Core Web API 上传大文件

c# - 如何记录数据库中的所有错误但仅在有条件的基础上发送电子邮件错误?

c# - Web API 和 MVC 异常处理

C# Func<object> getObject 的目的是什么?

c# - 有哪些适合练习的 C# 问题?

asp.net - 如何让 ASP.NET DataPager 控件在 UpdatePanel 中工作?

jquery - asp.net mvc .ajax 错误捕获

javascript - 我的表使用 Jquery Table Sorter 获取重复的行