如何将C#更改从一个ASP.NET应用程序传输到另一个?

时间:2013-06-01 13:17:56

标签: c# asp.net sql-server-2008

我们正在开发Caisis(Caisis.org) - 开源临床数据收集系统。 Caisis是ASP.NET(4.0)(C#代码隐藏)前端和SQL Server 2008后端。

Caisis版本会定期升级。例如,我们一直忙于开发Caisis 5.0版,现在已经发布了Caisis 6.0版。我们现在需要转移我们所有的前线和前线。后端更改为Caisis版本6.0。

可以使用Red Gate SQL / Data Compare或Open DBDiff等开源数据库工具来解决2个SQL Server数据库之间的差异。

但是,据我所知,没有相同的工具(专有或开源)来同步2个ASP.NET / C#应用程序。目前,我们将简化为半自动化方法,包括使用robocopy检测2个文件系统之间的差异,然后手动应用这些更改。有没有更有效的方法来做到这一点?

2 个答案:

答案 0 :(得分:1)

我一直处于类似情况。答案很简单:这不是一件容易的事。你可以使用像Beyond Compare或Araxis Merge这样的工具(Merge更加用户友好,BC在我看来更强大)。进行目录比较。通过一些配置,您可以让这些工具隐藏所有不同的目录分支和文件,只留下一部分差异。然后,您可以使用这些工具的文件比较功能来确切了解文件中的更改内容,并选择要拉出的内容和要离开的内容。

(意见) 您应该在干净的结账时进行此合并 - 也就是说,没有要检入的未完成文件。然后,在您的合并完成后,只需 进行一次大型登记,即升级合并更改。如果你花了太多钱,或者如果你错过了某些东西,你就有办法回滚。您可以回滚更改,进行修复,然后重试。

答案 1 :(得分:1)

如果我正在设置这种类型的新项目,我倾向于通过源代码控制分支和合并来处理它。我会将我要修改的产品的原始代码作为我的起点(为了讨论而将其称为我的核心分支)。在进行任何更改之前,我会将其分支为我的开发工作(称之为开发人员)。从这里继续您喜欢的分支策略。

我正在设置的关键是我永远不会在核心分支中进行更改,它仍然适用于我基于我的修改的原始版本。然后,当发布对原始代码的更改时,我可以将它们应用到我的核心分支。从那里我可以将它们合并到我的dev分支,并通过任何其他分支和我的发布代码合并。

当然,这种方法取决于两个方面:A)您使用的源控制系统可以很好地处理分支和合并。 B)在项目开始时建立这种分支结构。

在项目正在进行之后进行设置将会非常困难。一些源代码控制工具将允许您在离散代码库之间建立分支关系,但根据我的经验,这样做几乎总是很复杂。对于已经从原版中进行了重大修改的内容,Eli的建议可能是更好的方法之一。