我是一名新手开发人员,想更好地学习软件开发流程。我的问题是:

  1. 一般而言,每日构建是什么?
  2. 如果我在VS中构建自己的项目有什么区别?
  3. 我们如何以最佳方式实现 .net 项目(最好使用 TFS)?
  4. 还有更多我应该/必须知道的事情吗?

欢迎参考任何文章/书籍/其他问题。

谢谢

有帮助吗?

解决方案

1)来自 Wikipedia条目:

每天构建或每晚构建是每天为程序的最新版本制作软件的实践。这样就可以首先编译以确保存在所有必需的依赖项,并可能经过测试以表明未引入错误。每日构建通常也是公开可用的,允许访问最新功能以进行反馈。

2)每晚的构建与VS构建之间没有区别,但是每日构建背后的想法是它是自动化的。这样,您可以安排它在凌晨3点运行:)

运行验证步骤(例如,单位或功能测试)也将是一个好主意,以验证最新的构建中没有任何破坏。通过这样做,您可以保证构建编译并处于良好的工作状态。这样,您可以在WILL上部署新的构建。

没有这样的过程,如果某人需要建造,您永远不会真正知道将其交付给他们需要多长时间。您可能只能在vs中构建它而没有任何麻烦,或者您可能必须修复代码的一部分才能使其构建。当您的构建大大并且由多种解决方案组成时,这将成为一个更大的问题,每个解决方案都需要单独构建。

3)您可以创建一个为您运行构建的批处理脚本,您可以将工具用于此目的。有关更多信息,请参见: 什么工具到自动的夜间建造. 。他们的一些建议包括:

其他提示

文章 来自乔尔。很好阅读。

每日构建主要是由中央服务器构建的自动构建。构建自己的项目的区别在于,您会意识到应用程序中包装中的所有DLL,未在源控制中检查的代码,本地依赖项等。最终编译的应用程序和DLL与您本地构建的代码相同。

我们用 哈德森 对于过夜的构建,您也可以使用 Cruise Control.net。 因为我们做Java&.net Hudson是最好的解决方案。如果您有MS的Team Foundation Server,则也可以使用此功能。

请看看 集成哈德逊和C#。

还要考虑在构建服务器中集成Stylecop,FXCOP和单元测试。

马丁·福勒(Martin Fowler)有一篇很棒的文章有关此主题

http://martinfowler.com/articles/continuulintegration.html

我个人不同意从您的开发环境中构建源代码与每晚构建或每日构建相同。开发环境充满了有时隐藏起来的组件,SDK,库和资源。在构建机器上进行夜间制造是最好的选择。

还可以从自己的机器上进行构建,可以防止每日入住到主流代码。再次是不良习惯。

夜间构建应使用最低要求的构建工具和库。在构建机器上使用整个开发设备是一个坏主意。完整的构建也将有一些快速且脏的 - 浅层自动化测试,以在编译,构建和部署测试/预生产前设备后运行代码。 Nunit,Selenium和FXCOP是您的朋友。

  1. 完整系统的每天(或晚上)自动构建。构建系统报告构建错误我的邮件等。
  2. 它建立在单独的计算机上,确保您没有忘记检查任何文件,或者仅在计算机上安装了无证件依赖项。并报告错误。
  3. 不要在每日构建中停止,请进行每次入住后构建的连续集成。请查看 cruisecontrol.net.
  1. 每日构建旨在确保您的应用程序每天至少一次处于可构建状态。它们通常由自动化流程运行。许多团队更喜欢在每次签入存储库后准备持续集成构建。

  2. 自动化日常流程的优点是自动化:)您还可以将其设置为执行各种辅助任务:从运行单元测试到自动部署服务器组件。当您在开发机器上进行构建时,您要确保您的 当地的 副本有效且可编译,而 CI 服务器断言您的副本也是有效且可编译的 存储库.

  3. CruiseControl.NET 是一个流行的解决方案。您也可以考虑 使用耙子.

1)每日构建是一个完整的汤,可以使您的代码库制造,以及安装程序将通过测试,安装和潜在拆卸的过程。

2)那是本地构建,没有真正的差异,除非您只会编译和测试代码不一定是申请过程。

3)它在空中,取决于预算,团队等。

4)Joel的文章以前发布。

每天建造什么是什么?

“每日构建”是“连续集成”的一部分,意味着一个完整的项目是定期自动构建的。通常,这种情况至少每天都会发生,甚至可能会在可能的情况下更频繁地发生。

主要目标是确保可以始终构建项目;此外,可以作为构建的一部分进行各种测试,您可以自动部署到测试环境,生成安装程序以进行进一步测试等。

如果我在VS中构建自己的项目有什么区别?

它会自动发生,并使用默认配置。这样可以确保该项目始终正确构建,而不仅仅是在系统上(例如,您有一个特殊的配置,您忘记了检查到版本控件中,或者安装了特定的IDE)。

我们如何做.NET项目的最佳方法?

使用CI(连续集成)服务器,例如 cruisecontrol.net. 。有几个可用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top