我一直以来都是使用FTP(有时甚至是xcopy)部署我的Web应用程序,然后手动运行数据库脚本。
我在90年代开始使用这种方式进行部署,但最近,我看到了一些带有安装程序的Web应用程序。我开始质疑,我是否陷入了过时的流程中。我是一名顾问,我的应用程序通常是内部使用的,所以我不必担心分发和其他人的安装。
但我很好奇:是否有人创建安装程序来部署内部的ASP.NET Web应用程序?
如果是这样,为什么?(自愿、强制或作为自动化过程的一部分)
在使用这种方式时,您有遇到任何问题吗?
我一直以来都是使用FTP(有时甚至是xcopy)部署我的Web应用程序,然后手动运行数据库脚本。
我在90年代开始使用这种方式进行部署,但最近,我看到了一些带有安装程序的Web应用程序。我开始质疑,我是否陷入了过时的流程中。我是一名顾问,我的应用程序通常是内部使用的,所以我不必担心分发和其他人的安装。
但我很好奇:是否有人创建安装程序来部署内部的ASP.NET Web应用程序?
如果是这样,为什么?(自愿、强制或作为自动化过程的一部分)
在使用这种方式时,您有遇到任何问题吗?
当然。我们使用它来制作所有的应用程序。这样,我们创建安装程序并在QA和UAT环境中运行它进行测试,我们知道在生产环境中会发生什么。没有人会猜测某个步骤的顺序,或者是否漏掉了一步。这使得事情变得更容易。
哦,我忘记了自动化流程。我们有系统(Ant Hill Pro)可以自动将其部署到正确的环境中。QA人员不必等待完成某项任务,因为这些任务都在凌晨2点完成。如果他们需要重新运行带有更新的构建,则开发人员检查代码并按下按钮,它会自动部署。不需要等待构建工程师,因为他可能在开会、生病或其他原因。
您总是希望有一种自动化的方式来构建和部署 - 这大大降低了忘记某个步骤导致的单次错误的几率。此外,它使您能够轻松地将部署转移到其他人身上,而无需教他们100个定制步骤。无论项目是否为内部项目,所有应用程序都应遵循最佳实践。
就我个人而言,我有点像楼主;通常我只使用FTP进行部署,但是通常情况下我的应用程序是内部的,或者在其他项目中,完全由我管理。
然而,最近我也开始思考这个问题,并开始考虑如何使用适当的部署方式来改进流程 - 必须记录详细的安装过程可能会非常痛苦。
我使用Powershell,发现自动化许多任务非常容易。起初可能会有些不同,但最终你会发现这一切都是关于.NET库的强大力量!!!
是的...我们有一个应用程序需要设置很多先决条件...Web服务、Windows服务、用户帐户、安全性、文件夹创建、GAC位等等...我将它们全部打包成一个漂亮的MSI,带有自定义操作,可以干净地安装和卸载。在新的盒子上部署节省了大约一小时的工作时间。
许多其他较小的应用程序只需通过发布网站到本地文件夹,然后将内容ftp到目标即可部署。
这在很大程度上取决于您的项目规模、环境和内部用户群。我很少使用msi进行部署,因为我们的操作规模太小,没有多个环境(除了SharePoint,那是完全不同的)。我们使用VS开发并部署Web应用程序到开发框中,如果被批准,则再次使用VS将其部署到生产框中。
唯一的条件是我们有多个web.config副本(附加了测试、开发和生产),然后根据部署位置删除相应文件的后缀。
这可能不是最佳方法(我知道它不是),但它有效地促进了在小型用户环境中快速部署小到中等规模的解决方案。
F5ToDebug...
你是说如果没有时间做好,就可以走捷径吗?
“谁会在测试环境中测试代码?” 你自己说过你有配置文件用于测试 - 那为什么不是一个合适的测试呢?