Divide or conquer?

Apr 9, 2011 at 5:15 PM

I've been looking at version 2 of the Application Architecture Guide from Microsoft's Patterns & Practices group, and appreciate the ExpenseLayeredArchitectureSample as well as this Layered Architecture Solution Guidance project.

My ultimate goal in implementing a layered architectural solution would be so I can support all of the different types of applications in 1 master solution (both those with a presentation layer, whether the PL is written in ASP.NET, Silverlight, WPF, Windows Forms, ASP.NET MVC, or for mobile devices OR if it is an application type that has no presentation layer, like a web services project, workflow, etc.), so my first inclination would have been to take the Expense Layered Architecture Sample as a starting point, and then throw in an ASP.NET MVC and a windows 7 mobile sample application projects to the Presentation folder. 

In the guidance templates you've created so far, though, you broke the web application out from the service application which I can see using if I knew ahead of time I was only ever going to use a single application type with my project.  But I was curious if the thought was to implement each presentation type separately, and then come out with 1 solution that rules them all where you consolidate all of the different projects for each tier under 1 folder (Business, Data, Models,etc?  Or if the thought was that each of these application types would be maintained independently? Or if the goal was to ultimately support both scenarios, since different development environments have different objectives.


Apr 15, 2011 at 1:39 AM

There are no fixed rule as to how we should organize our projects. Visual Studio gives us maximum flexibility to do it :)

I guessed it was just the release timing issue that caused your confusion. You see, the reason I broke it up into two projects was because of my environment. We only have web projects or service projects (without web UI) so I released those first :)

I have updated the guidance now to allow Assorted UI and you should be able to find more different types of solutions to create :) I will update more when I learn more about other project types :)

I apologize for the confusion caused.

Best Regards,