ASP.net的SCM

时间:2008-11-04 17:29:51

标签: asp.net svn version-control

作为我整体开发实践审核的一部分,我正在研究如何最好地简化和自动化我们的ASP.net Web开发实践。

目前,我们的流程是这样的:

  1. Designer将前端构建为网络共享上的静态HTML / CSS。这个被调整直到签字。 (例如http://myserver/acmesite_design
  2. 签署后,开发人员接管并将前端HTML / CSS复制到同一服务器上的新目录(例如http://myserver/acmesite_development
  3. 多个开发人员在本地副本上工作,直到项目完成。
  4. 开发人员将代码发布到外部可公开访问的服务器,以供客户审核/签收。
  5. 根据反馈在本地进行编辑。
  6. 重新发布到外部服务器。
  7. 签收
  8. 开发者发布到实时公共服务器
  9. 出了什么问题?很多东西!

    1. 版本控制 - 这显然是必须的,正在引入
    2. 配置错误 - 很多次,有特定于环境的路径和变量(如数据库名称,图像上传目录,Web服务器路径等),这些路径和变量错误地从本地复制到登台到生活等等。非常尴尬的结果。
    3. 我非常有信心我控制不了1号。那么配置管理呢?有没有人对如何最好地管理asp.net应用程序中的应用程序结构以最小化这些问题有任何建议?

4 个答案:

答案 0 :(得分:1)

我发现使用SVN,NAnt和NUnit与Cruise Control.net解决了很多你描述的问题。我认为它适用于小团体,而且都是免费的。只需要学习如何使用它们。

CruiseControl.net可以帮助您整合构建和持续集成。

使用NAnt或MSBuild进行不同的环境构建(DEV,TEST,PROD等)。

http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET

答案 1 :(得分:1)

你得到了最重要的部分。使用版本控制。 Subversion是一个不错的选择。

我通常将配置与网站一起存储;即,在编写基于PHP的站点时,我有一个名为config.php-dist的文件。如果您希望站点完全正常工作,则必须在所有必需参数中复制+编辑(这样可以避免在版本控制中存储密码)。 -dist文件应具有合理的默认值。

如果可能,上传目录应该是相对的;实际上所有目录应该是相对的。我在ASP.net中没有经验,但如果它像PHP一样,当前目录始终是所请求文件的目录。如果您通过单个文件(即index.asp)传递所有请求,则甚至可以通过编程方式找到它。或者,您可以通过在配置文件中使用等效的dirname(____FILE____)以编程方式找到它。

我还建议在所有开发工作站(包括设计人员)上安装IIS(或您正在使用的任何Web服务器)。让生活更轻松,因为没有人可以踩到彼此的脚趾。除了将站点添加到本地IIS之外,只需将测试主机添加到hosts文件(\ windows \ system32 \ drivers \ etc \ hosts iirc)即可。这适用于版本控制(结帐,将站点添加到IIS和hosts文件,编辑编辑编辑提交)。

答案 2 :(得分:0)

真正有用的一件事是确保你的路径保持在相对的位置,并将它们集中在你不能的地方,所以当我使用ASP.Net时,我倾向于使用web.config来存储无法以编程方式找到的任何配置和路径相关数据。很可能通过Request对象以编程方式查找当前应用程序路径之类的信息 - 值得查看环境可供您使用的详细信息。

答案 3 :(得分:0)

确保您不会最终依赖于路径名的一种方法是让持续集成服务器针对您的应用程序执行测试套件。每次发生这种情况时,您都会创建一个随机文件路径。只要有人在文件路径上引入依赖关系,它就会失败。