c# - 如何在 IIS 上正确开发和部署现有 asp.net 应用程序的功能

标签 c# .net asp.net-mvc

我的问题实际上由多个问题组成。我经常阅读有关使用实时“数据库”为选定数量的客户部署一小部分功能的公司。 Ruby on Rails 及其生态系统具有部署工具和数据库迁移功能,可在实时生产或暂存环境中部署或回滚此类功能。

我的问题是,这是如何为 asp.net(尤其是 mvc)应用程序完成的?您如何根据实时数据测试新发布的功能?您是否有任何工具可以修改现有数据库并在必要时回滚更改?部署前是否进行备份?

更新

也许我应该指出我的问题不是很清楚,在这里获得更多答案将帮助我更好地表述问题。为了方便起见,我将描述我经常遇到的一些客户的情况。

我的客户部署了大量流行的网络应用程序。他们没有登台/QA/测试服务器。 (是的,这不是最佳的)。他们的应用程序包含的数据是图像、xml 文件、用户上传和 Sql Server 中的数据。在我看来,拥有一些生产数据库的记录和一些虚拟文件并不能代替对真实数据的测试。您将如何设计一个工作流来创建可接受的环境以在上线前模拟生产环境?

另一个更新

我仍然想知道的是,您可以使用哪些工具或程序来拍摄生产数据(文件、数据库)的真实快照,以便您可以构建自己的问答环境。整个数据库和与之相关的文件太大,无法完全复制到问答服务器。但是,如果您只是复制每个表的前几行,它们之间可能没有任何关系,并且会在整个地方出现随机错误或意外行为,并且不能反射(reflect)真实的生产数据库。

附言。如果有人理解我的目标并且有更好的方式来表达我的问题,请随时编辑我的问题!

最佳答案

How do you test your newly released features against the live database?

你不知道。您针对数据库的 QA 版本测试新功能和修复,然后在代码更改和任何数据库架构更改通过审查后推广到生产服务器。

Red Gate 生产的产品可用于打包数据库修改以促进和回滚数据库架构更改。

更新:

测试环境确实无可替代。您不能针对生产执行测试,这太冒险了。在没有专用测试环境的情况下,您能做的最好的事情就是在您的开发环境中尽可能准确地模拟生产行为。使用虚拟机运行服务器操作系统(即 Windows Server 2003),并让这些 VM 的配置尽可能接近生产服务器的设置方式。

另一项更新:

您可以使用 Filesync 等差异工具在 QA 和生产环境之间同步应用程序文件。如果您出于某种原因无法在 QA 中维护生产数据库的完整副本,则使用脚本“分割”并导出足够完整的数据以供测试。

我也推荐The Build Master .它是有关软件开发的配置管理、源代码控制和构建管理的重要引用。

关于c# - 如何在 IIS 上正确开发和部署现有 asp.net 应用程序的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2418387/

相关文章:

c# - 发送 Gmail 电子邮件

c# - Controller.User 由 ASP.NET MVC 5 上的 ASP.NET Identity 设置不一致

.net - SAAS/云 Web 应用程序和桌面应用程序之间的共享身份验证

c# - 在 NUnit 2.5.8 中使用 TestContext 时出现 NullReferenceException

c# - 在 Onion 架构中抛出异常 vs 返回操作结果对象

C# - 从项目的发布版本中排除单元测试

c# - 自定义绑定(bind)类无法正常工作

c# - 在 View 中执行处理程序的子请求时出错

c# - 'System.String'类型参数转换为 'System.Web.Mvc.SelectListItem'类型参数失败

asp.net-mvc - 如何阻止来自 IIS7 中托管的 ASP.NET MVC 1.0 应用程序内部的所有 *.php、*.cgi 等页面的请求?