views:

254

answers:

2

At our company we are going to develop more for the Windows platform than we have done up until now. As this scale of Windows development is new to us it would be nice with some feedback from experienced developers.

Requirements we have:

  • 5 developers from the beginning.
  • 15 developers a year from now.
  • All developers should be able to develop at the same time.
  • Be able to develop solution for ASP.NET and EpiServer 5.

Our idea:

  • A shared server which developers use for development through Terminal Services.
  • SQL Server Express.
  • Start with some free express edition of Visual Studio, upgrade to a commercial version if we need the additional features.
  • Use IIS and not the web server built into Visual Studio.

Questions:

  • Are we on the right track?
  • In terms of license costs the above should be cheapest, right?
  • What do you think about multiple developers doing development using a shared TS-server?
  • Do you know of any company which has a similar development environment?
  • Are we going to miss some features of the full Visual Studio version immediately? Is using Express version a bad choice?
  • Is IIS the best choice? If use IIS the developers may use the same port for deployment. If we use the built in web server each one has to set their own port as we're sharing a machine.

Comment answer:

  • We are thinking about a shared server as it will most likely decrease the license costs. So it's purely a cost issue. We are using CVS for version control. Our situation is that we develop on Mac and Linux, that's why buying 1 server license + Visual Studio licenses seems to be a cost effective way of starting this type of development.
+1  A: 

I second Numenor's comment -- go with a free source control like Subversion. I would be scared to develop on Terminal Services for the simple reason that Visual Studio can be a resource hog if you start doing any debugging. I'm assuming you're going to have more than one person on the project at a time, and I'd think you could get desktops that would work out better for a lower price than a large server that could accommodate those types of terminal server sessions.

On top of that, if you have multiple people working on a project on the same physical box, you're going to have problems with two people changing one file...back to the source control recommendation.

Andrew Siemer has some great articles outlining how to set up a development environment. Interestingly enough, they're in his series-in-progress about setting up a StackOverflow type of site. Start with this one, then follow the series to get the scoop on automated builds.

Edit: You probably don't want to use CodePlex as Andrew outlines, but a private Subversion server would work the same way with TortoiseSVN. You can get Subversion from CollabNet.

Josh
It's not for version control. We think it will ease our licensing costs. I have explained it further in te post under "Comment answer".
Binary255
The thing is that Terminal Server licenses aren't that much cheaper than desktop OS licenses. Unless you're concerned about the hardware costs of the desktops, I'd do some research on the viability of multiple developers working on a single terminal server and whether Visual Studio could deal with that well.I understand the cost concern, but I wonder whether or not the setup would be functional.
Josh
+1  A: 

Since you are referring to EPiServer my recommendation is to use Visual Studio's built in web server on each developer's PC. Then get some kind of Windows Server and run SQL Server and IIS on it. Also use some kind of DNS service that allows you to create sub domain host names that you use to run multiple port 80 sites on the IIS.

I don't know the exact terms but you might be able to run SQL Developer Edition in this scenario instead of Express. Then you get the full set of management tools, no size limit on databases and support to import and export data. If you got customers with both 2005 and 2008 SQL Servers you should run both versions as two different instances so that you can move, create and restore database backups easily between environments.

Developers all connect to the same database while developing and when appropriate deploy their projects to the server's IIS web site. If you like you can allow a customer to use it as test site.

I would put the free VisualSVN Server on the server too and use that instead of CVS.

I would also look into renting this as a virtual server somewhere and use some kind of VPN to access it.

If you can live with the limitations I don't see any problems using VS Express.

Good luck!

Johan Kronberg