My current client is looking to combine a series of line of business Access (YIKES) and Win Forms apps into a composite WPF MVVM solution. I was also brought in to architect one of the heavy hitter apps that will be a part of the new composite application. In the initial discussion concerning creating a composite application, one of the client’s developers presented a proof of concept composite application using Microsoft’s Prism. I voiced my concern about the amount of code said solution would be required to handle and recommended going with a multi-solution composite rather than a multi-project composite.
I started researching multi-solution composite applications on the inter-webs and found very little, virtually no, useful material…and this worried me. I couldn’t be the first guy to think the multi-solution approach would be preferred for a composite application that will, when all is said and done, contain hundreds of thousands of lines of code. Not wanting to lead my client in the direction of the proverbial unicorn I decided to put together a little proof of concept of my own.
*Disclaimer*This code is a Proof Of Concept and was developed as such. The overall functionality of the application is trivial. It is UI centric and does not contain a true data access layer and it does not contain any unit tests. I know this is horrible but please understand. :)
The typical WPF composite application is broken down into three major sections.
The structure for a multi-solution composite application is similar but is broken out into solutions instead of projects, surprise!
The code is really straightforward. There a couple of requirements though: Prism Unity I included some UI enhancements, including implementing the Avalon Dock controls for docking windows.
The code is really straightforward. There a couple of requirements though:
I included some UI enhancements, including implementing the Avalon Dock controls for docking windows.
Keith is a Senior Software Engineer with Falafel Software. He has been developing software since 1999 specializing in web-based solutions primarily using the Microsoft stack. He has been a Microsoft MVP in ASP.NET since 2012.
The opinions expressed herein are my own personal opinions and do not represent
my employer's view in any way.