【问题标题】:Specifications for Servers for Team Based Development基于团队开发的服务器规范
【发布时间】:2009-12-02 21:09:35
【问题描述】:

背景

我的企业收到越来越多的 Web 开发请求,因此我正在向团队中添加另一位 .NET 开发人员。

我目前的开发环境真的很差,只有一台装有本地 IIS 安装的 PC (Windows XP),用于托管 Web 开发项目。我用 Visual Studio 2008 Professional 打开那些,没有使用版本控制。

这种方法的问题

这种方法不符合基于团队的开发的任何要求,并且会阻碍测试驱动开发、版本控制和部署。因此,我计划安装一个带有 Windows Server 2008 的域环境和一个专门用于开发的额外 Web 服务器。

业务需求

  • 3 层 Web 应用程序的团队开发
  • 测试驱动开发能力
  • 源代码控制服务器
  • 简单的部署过程

问题

  • 我需要做些什么才能做到这一点?
  • 您使用哪些方法进行基于团队的 Web 开发?
  • 您有多少台服务器?
  • 所有这些都可以在同一台服务器上运行吗?
  • 我还应该注意哪些其他陷阱?

【问题讨论】:

    标签: .net asp.net


    【解决方案1】:

    首先,为您的源代码设置某种版本控制(Subversion 是免费的)。

    然后,团队的每个成员都会获得一个本地开发环境(如果需要,可以使用 SQL Server、Visual Studio、IIS)。他们每个人都有一份源代码和数据库的本地副本。他们在这里进行更改并进行测试。

    在本地测试更改后,它们会被提交回源代码存储库。

    如果您有另一台备用服务器,您可以将应用程序的夜间构建从 Subversion 推送到该服务器,以测试正在构建的构建。该构建的一部分可能是运行您拥有的任何单元测试(即使开发人员也应该在本地运行它们)以确保构建不会失败。

    【讨论】:

    • 但是是否可以在 Subversion 中使用 MS-SQL 数据库?数据库是否也有版本控制?
    • 我过去看到的是,所有数据库对象的创建脚本都进行了版本控制。然后,您还可以为测试数据创建和版本插入脚本。这样,每次重建数据库后,数据库中的结构、代码和数据都是一致的。
    • 就数据库版本控制而言,我非常喜欢 Rails 风格的迁移。我专门使用code.google.com/p/migratordotnet——对我来说,杀手级功能是针对本地或远程数据库的一个命令会立即设置或升级数据库。
    【解决方案2】:
    1. 建立一个版本控制系统。使用 tortoise(和 VS 的 Ankh 插件)的 Subversion 很好而且免费。
    2. 您不需要开发服务器,让两个开发人员从他们签出的存储库本地运行。

    【讨论】:

      【解决方案3】:
      * What do I need to make this happen?
      * What approaches do you use for team based web development?
      * How many servers do you have?
      * Can all of these run on the same server?
      * What other pitfalls should I watch out for?
      

      我是 Microsoft 工具的忠实拥护者,部分原因是它们之间的集成度很好。购买 Subversion 可能不需要任何费用,但这并不意味着它是免费的:您仍然需要在团队学习、使用和维护它以及解决沿途可能出现的任何问题时向他们付费。根据我的经验,从长远来看,软件成本往往很小。

      在不了解您的团队、产品、预算、软件流程以及许多其他应纳入此类决定的因素的情况下,I can offer the following very general recommendations

      1. 使用 Visual Studio Team Edition 进行开发。 Team Test 提供负载测试功能。 Team Data 提供数据库版本控制和自动化部署和更新,以及数据生成和数据库单元测试。 Team Developer 提供了用于对 Web 应用程序进行单元测试的机制,以及分析和静态代码分析。 Team Suite 在一个软件包中提供所有功能。
      2. 使用 Team Foundation Server 进行源代码控制;它包括自动构建、基于 SharePoint 的团队门户、事务签入、与 Visual Studio 的完全集成、集成的错误报告、使用 SQL Server 作为存储库、提供面向团队的统计数据(每天的错误等),便于手动操作从 QA 到 Devs 等的测试数据。
      3. 对于硬件,为 TFS 和构建获取一台专用服务器。使用 Windows 域,并有一个单独的服务器作为域控制器,用于杂项存储和保存来自 TFS 服务器的备份(Exchange 也可能在那里运行)。每个开发人员都有自己的机器,包括足够的资源来运行 SQL Developer 的本地副本,假设您的应用程序使用数据库。连接一切的千兆网络。
      4. 对于较大的应用程序或团队,在数据库数据和日志的单独卷、负载平衡/网络花园等。每晚构建在那里部署,以便第二天进行测试。这可以是一台服务器,或者在某些环境中,可能是一台虚拟服务器。
      5. 项目越大,自动化部署就越重要。在多服务器环境中有一些很酷的选项,例如 Windows 部署服务 (WDS)。
      6. 不要忘记监控和日志记录。

      如果有帮助,我会在本书的基础架构和运营部分介绍其中的一些问题和选项:Ultra-Fast ASP.NET

      【讨论】:

        猜你喜欢
        • 2016-02-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-11
        • 1970-01-01
        • 1970-01-01
        • 2011-06-27
        • 2017-11-28
        • 2015-02-09
        相关资源
        最近更新 更多