At home I set up this Team Foundation Server 2010 environment with a dev and qa environment for a couple of websites. One of them is my virtual software company Seder Software, which is really just my personal "Northwind" or "Contoso" company. I used this as an oppurtunity to learn TFS, and also to actually dig into CruiseControl.NET and see if I could get Continuous Integration (CI) and/or Continuous Deployment working. From the programming side, it also gives me a company name for my namespaces, so everything I do starts with the "SederSoftware." prefix. Even the site below is SederSoftware.PublicSite, for example.
My intention was that I could check in my files. Then, TFS (or whomever) would do a build, run FxCop, run StyleCop, run unit tests, and if everything worked, then it would build and deploy dev, qa, and then www – all automatically. I specifically want to do separate builds because dev does a debug compile (where qa and www don’t) – and I want to verify the config files don’t break the builds either.
Well, I actually have this all working, finally! It’s a tad brittle – but if the solution compiles correctly, all of this happens, and the website is deployed! Though, if there is a build error, the whole thing explodes in a bright fireball!
I also am now live with my new webhost webhostforasp.net – which has been fantastic, by the way! Everything has gone smooth, tech support responds back in like 10-15 minutes. It’s been great!! Couldn’t be happier with them (at the moment)! So here’s the new site:
You may (or may not) notice that this is an MVC site. To be specific, this is my first MVC site! That’s why there isn’t much of anything fancy, and why some of the things (like contact us and login) don’t work. I’m still figuring out MVC, and will be expanding the site as time goes on. The cool part is, whenever I have a working site/build on my machine – I check in my changes and it gets deployed out to the www site about 3-4 minutes later. So it makes deployment painless, becuase it’s literally no-touch deployment.
Lastly, there were some significant growing pains learning CruiseControl.NET. Once I get that a little more stable, I’ll do some blog posts about how I have that configured. In the meantime, if you have questions – shoot me an e-mail or post a comment and I’ll help where I can!