views:

508

answers:

6

I am trying to plan a way for 5 developers to use Visual Studio 2005/2008 to collaboratively develop an ASP.NET web app on a development web server against an Oracle 8i(soon to be 10g) Database.

The developers are either on the local network or coming in over a vpn (not a very fast connection),

I evaluated the latest Visual SourceSafe, but ran into the following gotchas:

1) We can't use decentralized development because we can't replicate a development oracle database to all developers computers. Also, the vpn is too slow to let their local app instances connect to the database server.

2) Since VSS source code not on the file system, the only way to debug it is to build the app and run debugger, which only one developer can do at a time on a centralized development server. This is unacceptable. We tried using shadow folders so that every time a file is checked in it gets published to the app instance on the development server, but this failed for remote developers on the vpn.

3) Since the developers do a lot of web code, it is important for productivity reasons that when they SAVE a file, they should be able to immediately see the change working on the development server.

4) No easy way to implement a controlled process for pushing files to the production server.

Any suggestions on a source control solution that would work under these contraints?

Thanks in advance for any suggestions!

Update: I guess since development is forced to be on the server, we need to go with a "Lock and Check In" model. So which source control solution would work best for "Lock and Check In' scenarios?

Update: Does Visual SVN support developing centrally against a development server? As in, the dev can immediately see his update on the development server after saving in VS?

+4  A: 

I have used Subversion and TortoiseSVN and was very pleased.

EddieAwad
+1  A: 

If you can spend the money, then Team Foundation Server is the one that works best in a Visual Studio dev environment.

And based on personal experience, it works beautifully over VPN connections. And you can of course have automated builds going on it.

Vaibhav
You don't think TFS is overkill for a team of 5 developers?
Matias Nino
A: 

I would say SVN on price (free), Perforce on ease of integration.

You will undoubtedly hear about GIT and CVS as well and there are good reasons to look at them.

Simon
+2  A: 

Visual Source Safe is the spawn of Satan.

Look at Subversion, and Visual SVN (with Tortise SVN). Sure, Visual SVN costs a bit - $49 per seat - but it is a great tool. We have a development team of 6 programmers, and it has been a great boon to us.

Ken Ray
The best solution I've found so far. And I've looked quite a bit.
Max Schmeling
A: 

Interesting -- it sounds you are working on a web site project on the server, and everyone is working on the same physical files. I agree that SVN is far superior to VSS and really good to work with, but in my experience it's really geared toward developers working on a copy of the code locally.

VSS is a "lock and check in" type of source control, while SVN and TFS and most others are "edit and merge" -- devs all get copies of the source, edit the files as needed, and later merge their changes in to source control, and if someone else has edited the file in the meantime they merge the changes together.

From a database standpoint, I assume you are checking in your database scripts, then have some automated build packaging and running them (or maybe just a dev or DBA running them manually every so often). In this case, having the developers have a local copy of the scripts that they can edit and merge using SVN or TFS makes sense.

For a team working on a shared copy of the source code on a development server, though, you may get into problems using edit and merge -- a "lock and check in" model of source control may work better for you. Just not VSS, from a corruption and stability standpoint.

Guy Starbuck
Correct. 'Lock and Check in' is the only way to go for us due to the Oracle Database only being accessible from the dev server. Any source control solutions that specialize in "Lock and Check In"?
Matias Nino
+3  A: 

Is point 1 due to an issue with your database schema (or data) ?

  1. We can't use decentralized development because we can't replicate a development oracle database to all developers computers.

If not, I strongly suggest that every developer has its own environment (Visual Studio, Oracle...) and use your development server for integration purposes. Maybe you could just give them a subset of the data, or maybe just the schema scripts.

  • Oracle Express Edition is perfectly fit for this scenario. Besides, sharing the same database violates rule #1 for database work, which in my experience should be enforced anywhere possible.
  • As Guy suggested, have an automated build allowing any developer to recreate its database schema at any time.
  • More very useful guidelines can be found here (include rule #1 above).
  • Define your development process so that parallel development is possible, and only use locks as a last resort.

I'm sorry if you already envisioned these solutions and found them unfit to your situation, but I really felt the urge to express them just in case...

Mac