【问题标题】:Deploying ASP.net MVC Applications to Staging and Production with SQL使用 SQL 将 ASP.net MVC 应用程序部署到登台和生产
【发布时间】:2010-01-29 06:42:31
【问题描述】:

我们从事 ColdFusion 商店已有 10 年了,现在正在切换到 ASP.net MVC。我们的目标框架是使用 VS 2010 BETA 2 的 .net 4.0 BETA 2。我们设置了两个 Windows Server 2008 实例(暂存和生产),并将使用我们现有的数据库服务器 (SQL Server 2008)。

虽然我们都非常熟悉 C# 和 MVC 模式,但我们没有人真正对 ASP.net 本身有太多经验。编码本身并不是什么大问题。但部署过程是。我们的目标是能够拥有一个 CI 设置,该设置将自动下拉并测试我们的应用程序进入提交阶段 - 然后可以选择标记,然后切换,当网站通过 QA 时,我们的生产站点上的结帐。

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

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

我们进行了很多采购,就我们对该语言的熟悉程度和我们当前的平台而言,ASP.net MVC 似乎是最佳选择。我们只需要找出一个好的构建过程,让一切都尽可能透明。我知道这方面有大量可用资源,但我想从第一手经验中获得这里人们的意见。

【问题讨论】:

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


    【解决方案1】:

    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/

    【讨论】:

    • 我应该提到这一点,但我们已经查看了 TFS,但由于成本原因决定不使用它。它看起来是一个很棒的包,但是在我们现有的基础设施(SVN、JIRA、FishEye)上花费了这么多精力之后,我们无法证明继续使用它是合理的。不过感谢您的链接:)
    • TeamCity 过去对我来说效果很好,值得一看。希望其他链接为您提供一个开始。另一方面,请确保您在 web.config 中使用 ...它会为您省去痛苦。
    【解决方案2】:

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

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

    所以每个项目的 Nant 脚本都会处理构建、网站部署和 SQL 更改脚本部署。

    棘手的部分是在出现严重错误时处理回滚。我建议针对该特定问题发布另一个问题。

    【讨论】:

      猜你喜欢
      • 2021-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多