views:

108

answers:

3

My team is developing WCF services in Visual Studio 2008 SP1 with the Service Factory Modeling Edition. The problem is that we have so many services to develop and we've put everything in the same solution.

250 projects later, the solution barely loads and adding to it is nearly impossible. We thought it would be good to split out every service into its own solution, but the service factory stuff effectively prevents us from doing that.

We are generating code from our model project into our other projects, but if we try to use multiple solutions, we can't reference the model project because it can't maintain the project mappings it needs in order to generate to the proper location. And we use a couple shared data contracts in our Model Project, so splitting the model project up doesn't seem to make sense either.

We have so many projects now that we can't really turn back and not use the service factory method of doing everything.

What should we do?

A: 

At this point you should break up your 250 projects into groups and create a solution for each of them. My recomendation is to use ~25 projects per solution. Use these mini-solutions for your day to day editting.

It is still possible to do a full build of the overall solution via msbuild and the command line. But VS was not meant to handle so many projects at the sametime.

JaredPar
As I explain in the question, the service factory prevents us from splitting out the projects into various solutions. Do you know of a way to get around that problem?
A: 

I'm surprised to hear you say this. I used the Service Factory in my previous job, and we created a separate solution for each suite of services. In each solution, we created one or more models in the model project.

I recommend that you experiment by creating a couple of new SF solutions, adding a couple of models and generating code. See if that causes any problems.

Have you discussed this or created an issue on CodePlex?

John Saunders
A: 

I agree with John Saunders. Keep them small. Also, keep a Continuous Integration env running to keep track of your mess-ups during development.

Donn Felker