我习惯于用C#.NET编写桌面应用程序。我在哪里有一个很好的小解决方案文件夹,它也受版本控制。因此,在任何时候,在任何计算机上,我都可以查看我的软件的任何版本,以便运行编译器并获得我的程序的工作副本。如何学习如何创建/部署/管理网站?
现在,我寻找到发展的网站,那里的文件和数据很多比较分散。我使用的是ASP.NET,但真正的问题是更一般的,可以应用于任何网站框架。
我试图理解发展我的网站,一个版本控制服务器,和实际生活的网站,用户将看到之间的适当工作流。显然这可能会有很大的不同,取决于网站的类型和规模,但我只考虑一个非常简单的网站。我刚刚开始使用这些东西。下面
图显示了我目前的想法。该站点的所有源文件都将存储在一个颠覆服务器上,我将检查到本地计算机上。我的本地计算机会有一个本地数据库,我将用它来开发该网站。接下来,我将发布到托管服务器上的测试版本,该版本将指向单独的测试数据库。这个测试数据库可能会定期替换为实时数据库的副本。
如果一切顺利,我会再发布到它指向实时数据网站的测试版。用户然后可以检查测试版本以提供反馈。最后,如果仍然没有问题,活动网站的源文件将被更新。
这是否有道理?有没有人有任何意见,如何可以改善?是否有任何好的书籍或在线教程可用于开发这些类型的工作流程?
另外,我真的不确定的一件事是如何管理对数据库实际模式的更改。我认为每个版本都可以生成一个SQL脚本,可用于更新主机上的测试和实时数据库。不过,我还希望能够为我的站点的任何版本轻松设置新的数据库,而无需为每个版本运行每个更新SQL脚本,直到达到所需的版本。使用像NHibernate或Subsonic这样的ORM是最好的解决方案,所以我可以直接从我的代码生成我的数据库模式?
谢谢这真的有很大的帮助。你说得对,这听起来像你正在做我打算做的事情。虽然这对我来说会更简单,因为我不必担心其他开发者,那么我自己也会回购。但是,对于如何在本地,测试版和产品之间管理对数据库模式的更改,我仍然不能100%确定。 – 2011-01-21 06:13:02