views:

43

answers:

2

All QuickStarts and RI examples in the CAG documentation are good but I lack the more Enterprise scale examples.

Let's say we have 40+ modules, each containing a Proxy,Facade,PresentationModel,Model and Views. Each module also makes calls to a Module-specific WCF service which is to be hosted in IIS or in a stand-alone console host. Our approach have been to include the UI-module, service-module and related tests into one solution so they can be developed and tested separately from other modules.

My problem is how the hosting of the services should be done when the services are in separate modules and how to actually run the separate module together with the rest of the application-modules when I press F5. Is there a best practise for this? I guess it has been done before?

+1  A: 

You can certainly host each module as an application or virtual directory instance for the service points, but I guess the thing to say is, are you allowing the development "convenience" of solution partitioning dictate the production architecture for your services? We've typically handled this based on layers rather than module partitions - in other words, you would have a project with the domains/models and one with the services, then each "module" could reference the common pool of services. I guess it depends on how interrelated modules are, how much cross communication there is, etc.

Each service can be configured to run on different ports or targets, but again, I sense perhaps your issue stems from the architecture of the services and you might benefit from having a common service project that is shared across modules.

Jeremy Likness
Our #1 goal with creating the "modules" is to cut down the turn around times for development and continous testing, so we want to have verticals that can be developed and tested independently.Today, during development, we are not using the IIS for hosting but maybe that is the way forward. Then the solution is not really responsible for starting a new "console-host" every time I want to build and run the solution and just deploys the files to the folder the the IIS is pointing to.
David
+1  A: 

We ended up with a fairly simple Solution where we include the Hosting project as a "startup" project in the solution. The project is set to not build and to have dependencies of the module.

All service DLL:s are outputed to a common folder where the host project is dynamically loading them, look for the ServiceContract attribute and starts the host.

David