【发布时间】:2011-01-20 01:17:27
【问题描述】:
我习惯于用 C#.NET 编写桌面应用程序。我有一个很好的小解决方案文件夹,它也在版本控制之下。因此,在任何时候,我都可以在任何计算机上检查我想要运行编译器的任何版本的软件并拥有我的程序的工作副本。
现在我正在研究开发网站,其中文件和数据更加分散。我正在使用 ASP.NET,但实际上我的问题更笼统,可以适用于任何网站框架。
我正在尝试了解开发我的网站、版本控制服务器和用户将看到的实际实时网站之间的正确工作流程。显然,根据网站的类型和规模,这可能会有很大差异,但我只考虑一个非常简单的网站。我才刚刚开始接触这些东西。
下图显示了我目前的想法。该站点的所有源文件都将存储在一个颠覆服务器上,我会将该服务器检出到我的本地计算机上。我的本地计算机将有一个本地数据库,我将使用它来开发站点。接下来,我将发布到我的托管服务器上的测试版本,该版本将指向一个单独的测试数据库。此测试数据库可能会定期被实时数据库的副本替换。
如果一切顺利,我会发布到指向实时数据的网站的测试版。然后用户可以查看测试版以提供反馈。最后,如果仍然没有问题,将更新实时站点的源文件。
这有意义吗?有没有人有任何关于如何改进的cmet?有没有关于开发这类工作流程的好书或在线教程?
另外,我真的不确定的一件事是如何管理对数据库实际架构的更改。我认为每个版本都可以生成一个 SQL 脚本,用于更新主机上的 Test 和 Live 数据库。但是,我还希望能够轻松地为我的站点的任何版本设置一个新数据库,而不必为每个版本运行每个更新 SQL 脚本直到所需的版本。使用像 NHibernate 或 Subsonic 这样的 ORM 是最好的解决方案,所以我总是可以直接从我的代码中生成我的数据库模式?
【问题讨论】: