2015-07-03 36 views
0

假设您有一个窗体,允许您在文本框中输入您的姓名,按下按钮并弹出一个包含姓名的消息框。现在,让我们假设用户出现并希望另一个文本框打印他们的姓氏。你确定这个功能需要几个月的时间才能发展(我的目的是夸大其词,但请承担这个概念)。.NET中的代码重复

因此,您不想修改现有表单,否则在新功能完成前您无法发布您的产品。对于这种情况,我的做法是复制和粘贴表单,实施更改,测试它们,并在准备好旧表单时将其替换为最新版本。

这种方法有一个主要缺点,即对旧格式的任何快速修复都需要在新格式中进行复制,从而导致重复工作。除了我讨厌复制和粘贴的事实之外,这只是感觉不对。

另一种方法是创建一个继承原始表单的类,因此对“新”表单的任何错误修复都会自动提供给新表单。这种方法使您能够灵活地以这种“新”形式进行开发,同时允许您对旧的问题进行修复。

但是,我不相信这是正确的做法。你对这种情况有更好的方法吗?

+0

有没有听说过源代码控制,版本,集成等? – wonderbell

回答

1

听起来像你想要的是版本管理子系统。看看Git,SVN或其他人。这些允许您一次处理该程序的几个'版本',进行更改,合并这些更改等。

正如评论中所述,使用分支描述possible workflows的Git文档可能会让您开始。 对于乌龟/水银,this SO question可能会回答你的问题。

+0

不,不,我使用mercurial版本控制。没什么大不了。我需要一种方法,允许您修改原始表单(用于错误修复),同时允许您使用同一表单的新功能,而无需代码重复,并且可以协同工作。我相信你们都有过这种类型的场景,你一直在这个行业:)) – deadCrow

+0

@CodeCaster说了什么:如果你已经在使用版本控制,那么你并没有充分利用它的潜力;事实上,那么你并没有将它用于其主要目标。看看分支;它是处理您提出的案例的工具。 – MicroVirus

+0

听起来很有趣的概念..我不知道龟/水银有“特征分支”。它确实有分支,但它自动为你处理/处理所有东西。我从来没有在Tortoise看到过“创建功能分支”的选项,但我看到了那些分支,然后合并来自不同开发者的代码。您的建议可能是我们现有的'拼凑'方法的一个很好的选择! – deadCrow