views:

654

answers:

6

Capistrano is a great solution for building scripts that automatically deploy a website and/or a database. But, it's also very *nix centric, and from I've read it would probably be more trouble than it's worth to get it working with a Windows server. Is there a similar solution that would allow me to deploy an ASP.Net website to an IIS server and a SQL Server database?

What I'm looking for is something that would allow the same kind of flexibility that Capistrano allows, as far customizing how I want the site to be deployed, what version control system I want to pull from, how it will handle rollbacks to a previous version of a site, etc. So far, I haven't been able to find a free solution that has the same sort of functionality that Capistrano has.

A: 

I don't know about something with as many features as Capistrano, but there's good old nant

DaveJustDave
+1  A: 

We use msi files created by Setup Factory. It pretty much allows you to put any setup parameters you need. We are also staring to use AntHill Pro which is probably more inline with what you are looking for, but it is a lot of money.

Everything in IIS can be modified by vb scripts. As far as going the free route that is probably the cheapest. I am sure you can use this in combination with batch files and a little custom programming and you can deploy what ever you need to iis and sql server.

Kevin
So if this is the answer, the answer to the original question is "no" then...
conny
Setup factory pretty much allows you do configure and do anything you need to do when installing a website.
Kevin
+2  A: 

I've used Capistrano with ASP.NET and IIS. To get it working I installed Cygwin on the target machines and modified Capistrano to tear down and set up virtual directories in IIS when releasing or rolling back.

As a bonus, I also got Capistrano to rename config files depending on the machine it was deploying to so we got our database connections right automatically.

Steinar Skeie
Any chance you've blogged about what you've done? Or feel like describing it in more detail?
Cymen
A: 

Answer 1 seems to be good. Could not vote due to lack of reputation. :(

A: 

It definitely isn't a complete tool like Capistrano is, but powershell would provide you with the ability to do the scripting and the like. You'd just have to script the deployment pieces yourself.

Mark Bainter
A: 

Not exactly what you're looking for but Hudson combined with MSBuild and webdeploy (aka MSDeploy) may fulfill your needs in addition to providing continuous integration. This is the path I'm taking. I hope to have Hudson create packages via MSDeploy that are preserved locally and pushed out to the staging server when the build succeeds. Then later figure out a one click push of packages to production.

An update: this turned out to be fairly easy. Instead of building packages I'm having msdeploy push the successful builds to a development server. Then a separate task can be created to have msdeploy push from development to production (or an intermediary staging server).

Cymen
On a side note: Hi Matt! It's interesting how we both ended up looking for this information. It is disappointing that the gaping hole is still there however I'm hoping that continuous integration provides a different way of doing this and that it will have other benefits.
Cymen