基于团队开发的服务器规范

时间:2009-12-02 21:09:36

标签: .net asp.net

背景

我的业务正在获得越来越多的Web开发请求,因此我正在向团队添加另一个.NET开发人员。

我目前的开发环境非常糟糕,只有一台PC(Windows XP),本地IIS安装托管Web开发项目。我使用Visual Studio 2008 Professional打开它们,没有使用版本控制。

此方法的问题

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

业务要求

  • 三层Web应用程序的团队开发
  • 测试驱动开发的能力
  • 源代码管理服务器
  • 轻松部署过程

问题

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

3 个答案:

答案 0 :(得分:4)

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

然后,团队的每个成员都获得一个本地开发环境(SQL Server,Visual Studio,IIS,如果需要)。它们每个都有源代码和数据库的本地副本。他们在这里制作和测试变化。

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

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

答案 1 :(得分:1)

  1. 获取版本控制系统。用龟来颠覆(和VS的Ankh addin)很好而且免费。
  2. 你不需要一个开发服务器,让两个开发人员从他们签出的repos中本地运行。

答案 2 :(得分:0)

* 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工具的忠实粉丝,部分原因是它们彼此很好地集成在一起。颠覆可能不会花费任何东西来购买,但这并不意味着它是免费的:你仍然必须在他们学习,使用和维护它时支付你的团队,并解决可能出现的任何问题。根据我的经验,当你采取长远眼光时,软件成本往往很小。

在不了解您的团队,产品,预算,软件流程以及许多其他因素的情况下,我们都不了解这一决定,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域,并具有单独的服务器作为域控制器和misc存储以及从TFS服务器保留备份(Exchange也可以在那里运行)。假设您的应用程序使用数据库,每个开发人员都有自己的计算机,包括足够的资源来运行SQL Developer的本地副本。千兆网络连接一切。
  4. 对于较大的应用程序或团队,在一个或多个服务器的内部测试环境中配置与生产服务器类似,就像数据库和日志的单独卷,负载平衡等一样,这也是一个好主意。网络花园等。每晚构建部署在那里,第二天进行测试。这可以是一台服务器,也可以是某些环境,可能是虚拟服务器。
  5. 自动部署变得越重要,项目就越大。在多服务器环境中有一些很酷的选择,例如Windows部署服务(WDS)。
  6. 不要忘记监控和记录。
  7. 如果它有用,我会在本书的基础架构和操作部分介绍其中的一些问题和选项:Ultra-Fast ASP.NET