My friend and I are collaborating on a ASP.NET powered website. To develop it locally, we use Visual Web Developer Express (good enough for our needs). Subversion (using Tortoise SVN) is our source control of choice with the repository residing on Unfuddle.com.
We run into problems when we need to update the 开发者_开发问答live site - since there's no version control on it. Currently we use the "Copy to Website" feature in VWD which copies the files using FTP. Here are some problems:
- VWD only keeps track of files uploaded by one user, so if the other user uploads a newer version of a file to the live site, VWD on my side cannot tell whether the live version of the file is newer or mine is.
- There's no way to tell whether all the latest changes are available on the live site.
- We have to be careful not to party all over the shared web.config file since the other user's local DB settings are different from mine, and of course, the live DB settings are a whole other story!
What do you guys use to publish to a live site? Does anything out there tie into Subversion so that we can automate the process and always guarantee that the live site is synced to a change list number? Also, how do you manage the different web.config file settings?
Thanks!
Well...
wait another 2 weeks and you have.... Visual Studio 2010. Lots of nice things for you:
- Different web.config settings for local and production, so basically you can ahve one web.config and.... vs 2010 will automatically merge a delta file on publication. This is really a weak point so far. Check http://weblogs.asp.net/gunnarpeipman/archive/2009/06/16/visual-studio-2010-web-config-transforms.aspx
- More modern publishing mechanism. Working alon gpackages. You need a host to support it, but seriously - the FTP publishing mechanism was retired a LONT time ago. http://blogs.msdn.com/webdevtools/archive/2009/02/09/web-packaging-creating-a-web-package-using-vs-2010.aspx
Any subversion tie in? Sure - any CI server can do that. Point is, though: you dont want. Version Control != website publishing. You dont publish every checkin. In non-trivial non-playing-around setups, changes are done on development, then moved to a test server, thne possibly to an integration server and then finally to production. You dont publish "as you go".
精彩评论