Application Architecture Guide 2.0

I have blogged over time about various guidance material that we have released out of our Patterns and Practices team for customers.  It is something that our customers ask us for and I like how it draws upon Microsoft’s internal experience in application architecture and also consolidates the contributions of external experts, customers, and others in the community.


Earlier this week, we released a Beta of the Application Architecture Guide 2.0.  This guide is a consolidated set of principles, patterns, and practices for designing application architecture.  The purpose of the guide is to help solution architects and developers design and build more effective applications on the .NET platform and supports top-level decision making at the early stages of a new project as well as topic-specific content to help architects and developers improve their existing solutions.  This guidance incorporates the contributions and reviews of over fifteen external experts and customers.


The Architecture Meta Frame is a conceptual framework used throughout the guide.  By thinking about applications in terms of scenarios, application types, architecture styles, and requirements, you can very quickly determine relevant technologies, patterns, and solution assets.  You can then use the Architecture Frame as an additional lens to identify potential hot spots in your application architecture.  For example, by focusing on data access or validation, you can prototype and test potential solutions to figure out the best approach for your scenario.




The guide includes a reference application architecture, common canonical application archetypes including web, rich client, RIA, mobile and a service, architecture frame, quality attributes and design approach to help you design your architecture. 


To summarize, the biggest benefit of the guide is a consolidation of guidance for designing application architecture.  It aims to help you choose the right architecture, choose the right technologies, make more effective design decisions, and choose relevant patterns.


Here are some links to resources for this guide: Application Architecture Guide 2.0,  Knowledge Base, Project News and Announcements.



Comments (18)

  1. Veo en el Blog de Somasegar que esta semana se ha liberado una beta de Application Architecture Guide

  2. Veo en el Blog de Somasegar que esta semana se ha liberado una beta de Application Architecture Guide

  3. Anass says:

    Thank you for this announcement.

    Do you have any idea if the team will release application samples to demonstrate this approches : something like petshop application …. ?

  4. In this issue: John Stockton, Pierlag, Mel Lota, Ning Zhang, Carole Snyder, Martin Grayson, Jesse Liberty

  5. Mark Gordon says:

    Microsoft writing software documentation.  This is ironic considering Microsoft is completely out of touch with small to medium size development projects. In addition, given the overwhelming success of Bob, Vista and who can forget how pathetic VS/.NET is for rapid application development combined with the fact the majority of your software misses release dates, I highly doubt your methodologies should be taken with anything more then a grain of salt.

    I would be curious if you documented the fact your latest and greatest technology fails to include a data centric language, requires more coding and comes with a higher cost of ownership then aged technologies such as Visual Basic and Visual FoxPro. Perhaps you can spin how this is progress?  Furthermore, is there a chapter on N-TIER development that uses webforms code behind as a case study given it breaks every rule of N-TIER development and data binding, which most DOS software development tools included,  is non-existant.

    Perhaps you should first develop a software toolkit that works before writing documentation of how to follow a failed paradigm. Here is a thought document how Visual Foxpro was written then apply it Visual Studio given Microsoft didn’t write FoxPro perhaps you can learn something. That would be a far better use of your time.

    Here is an idea, how about a document that goes in depth on the benefits of being a monopoly and how that position permitted Microsoft to kick two development communities and their customers to their curb while forcing developers into using a substandard product. Then Microsoft convinced the development community a substandard product is actually good for them. The best part is you took normally smart people and turned them into cheerleaders for this .NET mess. I will give you credit that was a great MARKETING trick you pulled off.  Too bad your development group isn’t as talented.

    Now that would make for interesting reading.

  6. Robert Wray says:

    Soma – whilst they’re entertaining and you’re showing the patience of a, what’s the next one up from a saint? 😉 …. I don’t think anyone would mind if you made a point of removing the (incredibly off-topic) ramblings of Mark Gordon from the comment thread.

    Or, even better, debunk them… I’m sure it wouldn’t take more than two or three minutes to find a blog posting or msdn documentation entry to refute each and every point!

  7. Steve B says:

    I’m glad Soma lets Mark post…. In between the nonsense his “technical” facts are accurate! IMHO Visual Studio is not a RAD tool…More importantly Microsoft should integrate a  Version of FoxPro’s command and function library that works natively against SQL Server into Visual Studio….That would be a "significant" enhancement to Visual Studio… Even considering Linq, FoxPro is by "far" the "best" data access technology Microsoft has ever released… Why they haven’t tied the VFP language into Visual Studio makes no sense!

  8. Hitesh Davey says:

    I have gone thru few charpters of this guid and find it very helpful in unerstanding s/w application architecture. In my view this is a very good guid for anyone intrested in appli arch know-how. I would be one of those few people who would like to buy when it realsed for print.

    Hitesh Davey, Chennai, INDIA.

  9. Xavier says:

    I’m always surprised to see such post against MS … Because i rarely read such things about Sun & Co. Oh yes, of course, Java is such a great platform, that’s why ! You know the kind of architecture that is so perfect that you spend hours thinking about your MVC pattern before writing the firt helloWorl().

    Visual Studio is maybe not the perfect RAD tool, .NET is maybe not the perfect framework but they are far more productive and effective than Java.

    Why don’t you go on with FoxPro guys ? Nobody pushes you to develop with .NET … Or maybe because it’s not perfect too ?

  10. Xavier says:

    I was answering to Mark Gordon …..

    and forgot to thanks every one at Pattern & Practices for their great work. I really like the way .NET is evolving !

  11. Mark Gordon says:

    Xavier, It is funny you mentioned MVC pattern arent you aware that is the direction Microsoft is moving towards moreover Microsoft is embracing JQUERY and Java is needed in internet based appplications for some client side tasks.  I’m not comparing Java to Visual Studio. The comparison is between Visual FoxPro and Visual Basic. Please get your facts straight and read my posts.

    We, the vb and vfp development communities, were forced to develop in Visual Studio that is the entire issue! Microsoft issued an end of life for Visual Basic and Visual FoxPro while offering a substandard replacement development environment Visual Studio and .NET as the replacement. Microsoft failed to provide upgrade path for our current applications and more importantly VFP and VB are no longer 100% compliant with Microsoft newer software suites like office. That is 100% nonsense.

    I was purely a Microsoft developer and a Microsoft Cheerleader at one point.  Now, and very unforunately, unless my client insist on a microsoft solution I try to steer them towards the best development tool for the job which in some cases is NOT visual studio for a variety of reasons.

    I bet the majority of the cheerleaders I get flamed by have never used VB or VFP and just assume because VS is new  by default it is better. Well guess what it is not, there are a lot of tasks VFP and VB did much better then VS. There are some enterprise based applications when I’m glad I have a tool like Visual Studio despite it’s shortcoming however those are the exceptions not the rule. For the majority of my application especially for small and medium size business in a desktop scenario VS provides ZERO benefit over the older proven technologies.

    Why developers are so willing to defend a product that creates "MORE" work with zero benefit is beyond my comprehension.

  12. EricTN says:

    Mark Gordon – from the vaunted heights of being a sometime Microsoft Cheerleader down to the depths of being a Somasegar WebLog troll… how far some will fall.

  13. LDJ says:

    I am convinced that the C# yes-Soma team just don’t get it. Soma rather implement convoluted data access they developed over a proven xbase language . Soma’s "we didn’t develop it" attitude towards xbase is hurting Visual Studio.

  14. Mark Gordon says:

    VFP and VB don’t *still* work! Try importing an office document using Microsoft’s latest office suite and have it crash VFP or spend hours tweaking a system to resolve printing issues under VISTA or address the data type issues with SQL Server 2008.

    Why don’t you tell your nonsense ramblings to one of the best customers that I had for years, a small vertical market software company with a VFP application that I been maintaining since FoxPro 2.0 and migrated to VFP 7.0 who had to sell their business becuase they hired some hot shot Microsoft Certified Visual Studio company to convert their VFP 7.0 application to .NET and the company failed miserably.  They couldn’t get it to run right on older platforms because it kept crashing besides the fact the cost of ownership of the application with the SQL licenses and retraining their staff buried them. Where is my reimbursement for the 10’s of thousands of dollars I lost in consulting fees with this client.

    Or I will let you talk to a friend of mine, a great VB programmer now working in factory because the IT group of the company he worked for switched to Visual Studio and .NET and they canned all their VB programmers after the migration was finished. So he became frustrated and stopped programming.

    Going back to your comment, what problems possibly is .NET trying to solve? Building better game characters, making mpegs spin in circles or just playing catch up to what VB and VFP already could do? Perhaps Microsoft should have worried more about solving the problems they created by killing off VB and VFP first before introducing more technology.

    I challenge you or any other one on here that flame me to give me a ONE benefit of a Visual Studio Application for a mom and pop size business that performs basic CRUD operations and reporting over a VB – VFP based solution. I wrote numerous of these types of application and I can speak from experience there is not one single benefit in Visual Studio. Are you so out of touch with what is going that you think these mom pop applications don’t exist anymore and no one is still using numerous operating systems from Windows 2000 to Vista on a mix of old and new hardware?  

    Your MVC comment to @DEV is equally absurd MVC is behind schedule and has an entire host of issues include compatibility with existing ASP.NET winform applications. If GU and the rest of the boys at Microsoft would have resolved the N-TIER issues with Webforms to begin with MVC would not even be needed. What great work is Scott Gu doing he is taking the MVC paradigm that had already been in used for years and is duplicating it in Visual Studio, where is the innovation? Perhaps Gu should have resolved the VB/VFP migration issues then that would have been great work.

    And while I’m not knocking Soma, as at least he posts my rants and I give him credit for that. However the only time he publicly addressed the VB issue that I am aware of he insulted his “VB” cheerleaders by saying we are just mad because we don’t want to learn a new technology. Give me a break. I guess that is what I get for being a cheerleader!

    Call me a troll all you want I don’t care, my fall from cheerleader status is indicative of the decline in Microsoft software development toolkits and they way they screwed over their customer base in the process with complete callous and arrogance. I rather be a troll with my integrity then a follower of Microsoft completely clueless and out of touch with what is going on in the field. I bet you wouldn’t think twice about misleading a client just to puts in a VS/.NET/SQL Server solution because the technology is cool. Or maybe you can implement some WPF into a shop floor printing program boy that would rock wouldn’t it. Face it Visual Studio is overkill for most small business customers and the wrong solution, there was a niche market that Visual FoxPro and Visual Basic filled which is now void and Microsoft is trying to cram Visual Studio into hole, which is like trying to fit a soup can into a eyelet..

    So tell me @EricTn who is the real troll you or I?

  15. Publicación del inglés original : Jueves 30 de octubre de 2008, 4:07 PM PST por Somasegar He escrito

  16. Quinten Miller says:

    @Mark Gordon

    Maybe its time to let go of legacy languages and move with the times?

  17. Soup says:

    You guys who leave a comment to Mark G like "move on", etc…are you actually reading what he’s saying? I’ll bet Mark is willing to "move on", but, what MS is giving us as an alternative to VFP and VB is not it!!!!

    When we "move on" we expect to advance to better things than we’ve got currently. .NET ain’t it. Sure .NET can do some really cool stuff, but, coming from a VFP background, it leaves a lot to be desired. The kind of apps that VFP was designed for creating is definitely overkill in .NET for the mom and pop shops.