February 12, 2010

Creating a .NET project’s development environment

This week a co-worker and I set up the envrionment for a new development project. It's starting to look like a pattern. Here is our list:

The development server

We use virtual servers running on some huge hardware farm somewhere. This is nice. We order a new Windows Server instance from our IT services, and within 24 hours it is up and running.

  • IIS - used for staging our builds (if web)
  • Visual Studio Database Edition GDR2
  • SQL Server with:
    • CI database, used as the database for CI build integration tests
    • Staging Database (typically backing a nightly staging build, so the PM can track to progress)
    • Pre-Production Database – should always reflect the scheme of the current in-production build. We use this for schema comparisons.
  • Instal Visual SVN (server)
  • Install Team City 5.0  with:
    • CI Build
    • Staging Build (usually nightly)
    • Release Build (for the releases)

All the installations are basically "next, next, finish" installations, using default settings.

This setup means that every project has it's own Subversion server and build server running on the dev server. This works well for the small to medium sized projects we are having, and we have had no performance issues for our typical 1-10 team member projects.

The development environment

To keep the development environment consistent for all team members we prepare a complete development environment in a virtual machine, ready for distribution. The install list we're currently using is:

After setting up the development environment, we run a sysprep and close it down, compress and distribute. The way sysprep works is that when the developer starts up this virtual machine for the first time, she is presented with a setup wizard resembling the last install steps in a clean Windows install. She can then give the virtual machine a name, set administrator password, etc. The virtual machine will now be unique.

I intentionally left our the version numbers for Windows Server, IIS and SQL Server. We used 2003/6.0/2005 for the latest projects, and are hoping that the next customer's hosting provider gives green light for 2008 versions.

Now we can start coding…

No comments:

Post a Comment