views:

276

answers:

3

Hi

I am in the process of setting up a complete web-development environment. For now, there are two developers, one dedicated to backend programming (C#, .NET) and one dedicated to frontend development (HTML, CSS, XSLT).

Each have an installation of MS Visual Studio 2008 and shared source via Visual Source Safe 2005. They both checkout files and develop locally.

I have setup a test-server where it is the plan that the merged, and tested, code should finally end up, and that server should allways be the "correct" version.

Each of the 3 installations share the same databases.

I think this setup should scale a bit, as I'm preparing for more developers, but we have quite a lot of problems with file syncing and easy access for quick changes. Often we need to change some layout and designs pretty quickly and end up copying files out to the testserver manually (I don't want any .NET/C# code-files on the webserver), and the site fails :-(

We use a standard CMS to build all of our frontend work, and it really slows things down if this is included in the source-safe.

I would like all of our frontend work to be kept completely separated from our backend code so It's easy to make changes.

Eg. we would like to make a few changes in the design and deploy it quickly to our production environment, without thinking about the .NET code.

Are there anyting I'm missing, or what is the best practice for setting up an web-development environment?

Looking forward for some help/experiance :-)

/Thomas

+5  A: 

You should probably look into a more-capable version control system. SVN has great tool support (including AnkhSVN and VisualSVN for VS2008 integration), and distributed version control systems like Mercurial, Git, or Bazaar will give you even more options and the price of much more basic tool support.

You may need easy branching, and managing the relevant resources using the version control system is made much easier if you can deploy them easily to production (i.e. run "svn up").

orip
Agreed, SourceSafe (SourceThief) is awful. In most cases I'd go with SVN but I do hear great things about Git
AdamRalph
@AdamRalph - try out one of the three DVCS's, you'll probably like what you see. Alas, except for the tool support. :(
orip
A: 

I can not help you with information about how to handle CMS content, but I have setup or used a couple of buildservers.

Having worked with Visual Source Safe in a lot of projects and Team Foundation Server in some, I stay away from it if I can.

Our recent buildserver consists of Nant scripts that check out the source from a Subversion-repository. The build itself is done by MSBuild. The result of the build is then xcopied to stage and production.

There should be an easy way to transfer database changes from development to stage and production. We have a tool (http://www.codeplex.com/ScriptDB) that scripts the dev-Database. The result is checked into Subversion. Its easy to see what changed in the log of Subversion.

Malcolm Frexner
A: 

Each of the 3 installations share the same databases.

This seems like a poor decision. If dev1, dev2 and test are all using the same database, then how can dev1 experiment with changing the schema without interfering with dev2 and test (assuming the code for working with the experimental schema is not checked in yet).

Also, the DB becomes a single point of failure, so if somebody accidentally deletes/truncates a crucial table, then all work grinds to a halt.

Ideally, each environment should have it's own DB. I guess if you're using a non-free DB like Oracle, then you may not be able to afford to give each environment it's own server, but at least each environment should have it's own schema.

Don