CAG stands for Composite Application Guidance. In simplest terms, it is a factory pattern that provides you the Shell stub
kind of support. It allows static and dynamic modules to be loaded into it and provides various mechanisms for the
interaction between them.
In other words, if you need to convert your four applications into one, all you have to do is rewrite the UI components of all four,
abstract out the data retrieval part into webservices and use your existing dll assemblies to call them.
Yes, it is a must rewrite the UI components, there is no other go. You could then choose to statically or dynamically load each
one of them into the Shell. and you could continue with your logic crunching and only need to return the results to UI.
A similar pattern that can be found to be useful is the Smart Client Software Factory.
Look at MSDN and CODEPLEX for samples and for complete documentation.
Note: This cannot be done quick and dirty. A careful analysis has to be done before choosing such a pattern. It is both
time-consuming but efficient on a long run.