使用SQL将ASP.net MVC应用程序部署到暂存和生产

时间:2010-01-28 19:47:33

标签: asp.net asp.net-mvc svn deployment continuous-integration

我们已经在ColdFusion商店工作了10年,现在正转向ASP.net MVC。我们的目标框架是.net 4.0 BETA 2,使用VS 2010 BETA 2.我们设置了两个Windows Server 2008实例(分段和生产),并将使用我们现有的数据库服务器(SQL Server 2008)。

我们中没有人真正拥有ASP.net本身的经验,尽管我们对C#和MVC模式都很满意。编码本身并不是一个问题;但部署过程是。我们的目标是能够拥有一个CI设置,它将自动下拉并测试我们的应用程序进入提交阶段 - 然后可以选择在网站通过QA时标记,然后切换我们生产站点上的签出。

我遇到的一些问题是ASP.net应用程序的概念以及它如何集成到SVN中。 CF,如PHP或RoR,都是脚本语言,因此不需要构建过程(将源代码检入生产非常简单)。但在这种情况下,应用程序需要编译 - 这是我们开始遇到问题的地方。我们是否需要创建另一个服务器(或使用现有服务器),该服务器具有某种应用程序,可以下载代码,编译代码,然后以某种方式将其推送到实时服务器上?如果是这样,什么被认为是实现这一目标的最佳方式?我想如果我们最终使用像Nant这样的构建工具,添加额外的步骤来迁移数据库将是微不足道的,但是实现这一目标的最佳方法是什么?

另一个稍微不相关的问题是我们的设计师如何使用我们的代码。他们中的大多数都在Mac上,使用VS并不是一个选择。他们如何轻松编辑aspx,css和图像文件?我们的目标是让它尽可能透明。

我们已经做了很多购物,ASP.net MVC似乎是我们熟悉语言和我们当前平台的最佳选择。我们只需要找出一个好的构建过程,所以一切都尽可能透明。我知道有很多资源可供选择,但我想从第一手的经验中得到这里的人们的意见。

2 个答案:

答案 0 :(得分:2)

Microsoft TFS内置了一个出色的构建解决方案。它既昂贵又有效。此外,通过查看免费的CruiseControl,你不能失去。 JetBrains的TeamCity也是一个不错的选择。所有这些持续构建和集成解决方案都将为您的研究提供良好的起点。

http://msdn.microsoft.com/en-us/teamsystem/dd408382.aspx

http://www.cruisecontrol.com/

http://www.jetbrains.com/teamcity/

即使是Draco.net也是一个很好的考虑因素:

http://draconet.sourceforge.net/

答案 1 :(得分:0)

我们在SVN / Build服务器上运行http://www.cruisecontrol.com/(CC)。您可以通过它自己的配置/脚本文件配置CC,从SVN下载最新的源,然后生成一个或多个可以执行构建和部署的Nant或MSBuild脚本。

我们将所有数据库更改编写为更改脚本,这些脚本也会进入SVN。然后我们有一个自定义命令行工具,它将在网站部署期间将更改脚本部署到SQL Server。所有这些都是在Nant脚本中完成的。

因此,每个项目的Nant脚本都处理构建,网站部署和SQL更改脚本部署。

如果/当某些事情发生可怕的错误时,棘手的部分是处理回滚。我建议为这个具体问题发布另一个问题。

相关问题