我有一个相当简单的多层c#应用程序,在ASP.net MVC中有不同的表示层(2个不同的网站和一个单独的API)以及一个桌面应用程序。桌面应用程序安装在20台终端用户计算机上。
数据(EF)、实体和服务层由所有表示层共享,因为存在大量的交叉,而且在大多数情况下,更改的只是视图或身份验证逻辑。我的问题是关于保持这些DLL同步的最佳实践方法。当将mchange的代码更新为UIs之一时,是否应该触发所有UIs的部署,以确保一致性?如果是的话,有哪些自动化工具可供使用(主要考虑的是托管在Azure上的网站,桌面应用程序总是手动部署)
发布于 2017-05-10 16:42:09
我在这里的第一个反射就是把每个应用程序看作一个原子实体。如果共享部分非常大(这里似乎就是这样),我将协调所有组件之间的部署,并将它们一起更新。例如,这种方法可以很好地适用于ClickOnce。
您也可以使用持续更新路径,但这往往不太稳定,因为您将部署测试较少的组件。如果您选择持续部署,您将需要可靠的版本控制方案和约定,并且需要严格遵循它们。有时,DLL中的更改会导致当前其他组件的中断更改,因此,协调和打包版本将允许在发布之前插入额外的测试。到目前为止,连续部署方案最重要的部分是在版本出现故障时快速回滚的能力,因此您必须确保同时在所有层上协调回滚,或者确保有一个足够可靠的体系结构,允许共享层(服务器)为不同版本的客户端服务。
因此,简单地说,最简单的选择是将一组更改捆绑在一起,并打包每个应用程序,以便同时推出它们。此外,如果您的团队觉得这很重要,那么版本控制就可以统一。
我认为,其他任何事情基本上都是对这种基线情况的优化。
https://softwareengineering.stackexchange.com/questions/348680
复制相似问题