网站开发团队

时间:2009-05-08 02:58:46

标签: asp.net windows

我正在与另外4人一起在Asp.net网站上工作。我们遇到的问题是,为了实现团队开发,我们需要什么样的硬件设置? 我们有四台个人台式电脑,我们还需要其他硬件吗? 还有哪些其他开发软件适合这种开发?

8 个答案:

答案 0 :(得分:4)

对于以极低预算建立的Embarcadero开发者网络(http://edn.embarcadero.com),我们将自己的PC用于开发环境。目前有3个主要开发人员,包括我自己。

由于我的团队成员是远程的,我们还有用于开发和调试的虚拟机,这些虚拟机与我们的实时服务器位于同一数据中心。沟通至关重要,我们非常依赖Skype(http://www.skype.com/)。

对于源代码管理,我们使用免费的开源http://subversion.tigris.org/。适用于SVN的通用Windows客户端是TortoiseSVN(http://tortoisesvn.net/)。一个优秀的SVN Visual Studio插件是http://ankhsvn.open.collab.net/

对于单元测试,我们使用NUnit(http://nunit.com)进行.NET测试。我们使用DUnit(http://dunit.sourceforge.net/)进行Delphi代码测试。

在部署之前,让一台不是开发机器的登台/测试服务器在部署它之前进行实时部署是非常重要的。这是确保将所有需要部署到实时服务器的唯一可靠方法。

为了在负载均衡的环境中进行部署,Robocopy(有关详细信息,请参阅http://en.wikipedia.org/wiki/Robocopy)是一个非常有用的工具,可确保您的实时服务器镜像您的“临时”服务器。我们有一个“do all all”批处理文件,1)从Subversion获取最新版本,2)合并并最小化我们的CSS和JavaScript(我写的工具我将在某天发布,以及JS打包工具来自fckeditor人员),3)将最新版本的模板,css,图像,脚本等部署到实时服务器。

对于我们的服务器,我们使用的是Windows Server 2003.标准版可能满足您的需求。虽然我们拥有数百万用户,但我们的大多数网络服务器都能在2GB内存中运行良好。我们较重的服务器有4GB的RAM。几乎每个Web应用程序都在至少2个相同的服务器上进行负载平衡。我们的Web应用程序服务器主要是VM,但我们的数据库服务器始终是具有不同RAM要求的专用盒。虚拟机无法为您提供数据库所需的性能。

我们还主要使用InterBase(http://www.embarcadero.com/products/interbase/)和Blackfish SQL(http://www.embarcadero.com/products/blackfish_sql/)作为我们的数据库,但大多数以MS为中心的商店更喜欢某种MS SQL。

我们编写了自己的监控解决方案来监控组成EDN的数据库,Web响应和Web服务,但您可能会发现Nagios(http://www.nagios.org/)等用于监控实时服务器的方法。

然后,您还需要一个问题跟踪系统,例如Jira(http://www.atlassian.com/software/jira/)FogBugz(http://www.fogcreek.com/FogBUGZ/),BugZilla(http://www.bugzilla.org/),Trac(http://trac.edgewall.org/),它们可以与Subversion或其他东西一起使用。 EDN团队使用QualityCentral(http://qc.embarcadero.com),但这是其他人无法获得的本土解决方案。

HTH

答案 1 :(得分:2)

您需要某种形式的源代码控制,可以存储在其中一个桌面(不理想)或其他服务器上。

除此之外,这种开发通常会让每个开发人员在自己的机器上复制环境。

在某些时候,能够将该代码放到服务器上并构建它以用于测试和验证目的是理想的。如果您缺少硬件,这可能是桌面之一。

答案 2 :(得分:2)

我主要通过位于新西兰,加拿大,美国和以色列的团队开展ASP.NET开发,因此我在团队环境中有效工作方面拥有丰富的经验。根据这些经验,这是我的团队发展必备资料清单:

  • 版本控制系统,允许您存储和管理多个源代码修订版。为此我们使用Subversion,但任何体面的VCS都应该足够了。除了源代码之外,我们还将它用于我们的应用程序使用的共享文档和工具以及库。
  • 与团队沟通的有效方式。由于我们广泛的地理分布,我们严重依赖Skype,使用群聊和电话会议。
  • 允许轻松构建所有共享库和应用程序的构建过程。理想情况下,这应该通过计划的构建运行自动化,以验证VCS中源的完整性。有很多工具可以帮助解决这个问题(例如MSBuildNAnt)。由于我们的项目跨越许多不同的开发环境和语言(包括Visual Studio,Delphi,Java,PHP),我们发现使用批处理文件来控制这个过程非常适合我们的需求。如果您使用测试驱动的开发方法(遵循TDD,或者使用适合您开发风格的变体),也建议在此预定构建过程中运行单元测试。
  • 项目管理,任务和问题跟踪系统。我们目前正在使用Jira
  • 用于共享信息的易于更新的存储库,例如内部Wiki。我们使用内部书面内容管理系统(实际上驱动Embarcadero Developer Network的那个: - ))。

至于硬件要求,这在很大程度上取决于您的实际开发要求和预算。我可能会建议至少为您的VCS配备专用服务器。你也可以将它加倍作为你的构建机器,虽然你也可能想要一个专用的。

可能还需要一台或六台专用测试机和数据库服务器,但根据预算,可以适当地共享这些功能。虚拟化也可能是最小化硬件支出同时保持良好功能分离的有效方法。

答案 3 :(得分:1)

您所描述的内容听起来不像是由硬件解决的问题,而是通过通信和定义的过程(Agile software development是一种方法)。源代码管理软件(例如bazaargitmercurialsubversion可能会有用。

答案 4 :(得分:1)

您使用的是Visual Studio Team System吗?

我会推荐某种源代码存储库,很可能是构建服务器(VSTS提供的功能)。

当然除了VSTS之外还有其他选择,包括免费的开源解决方案。

答案 5 :(得分:1)

对于五人以下的团队,如果您拥有MSDN许可证,则可以免费使用Team Foundation Server Workgroup版本: - )

答案 6 :(得分:1)

我刚刚完成了一个实质性的(6个月项目)ASP.NET Web应用程序,该应用程序是使用Visual Studio 2008,Team Foundation Server和SQL Server 2008与其他4人一起开发的,我对组合非常满意。

在Team Foundation Server之前,我们使用Visual Source Safe进行源代码管理。我不能告诉你TFS对VSS的改进是什么。

我最喜欢的一些功能是:

  • 与Visual Studio无缝集成
  • 文件控制
  • 项目管理解决方案,如“工作项目”功能
  • 能够“搁置”你正在努力尝试不同想法的内容

除了这三个,我们不需要任何其他软件。我们设置了几个数据库实例,一个用于开发,一个用于生产测试。我们的数据库是作为Visual Studio中的数据库项目开发的,一旦我们准备好进行生产测试,它就很容易部署。它还使得在两个测试数据库之间进行模式比较和更新变得容易。

就硬件而言,我们有一个用于TFS的服务器和一个用于应用程序测试的服务器。我相信你们可以将两者结合起来。

答案 7 :(得分:0)

如果有人有一个额外的盒子,我会推荐SubVersion ...应该让你的提交,签到等等容易,