Share via


"Application Architecture for .NET" 2 - The Revenge

One of the first major deliverables produced by the patterns & practices team is Application Architecture for .NET: Designing Applications and Services . This guide is now getting close to 5 years old (it was written by Ed long before I joined the team), but unlike some of our other early deliverables, we've found that it's still surprisingly popular for its age. This is probably partly due the fact that the guide is written at a sufficiently high level for it to still be relevant despite the changes and advances to the platform.

Even so, we've decided that this guide is now due for a refresh, and we'd like your help in figuring out which direction we should take it. In addition to the changes in the underlying platform and in the industry's understanding of architecture, the patterns & practices portfolio has evolved significantly, and we want to be thoughtful on what type of content should go into an updated Application Architecture guide and what content should go in other places such as software factories or Enterprise Library.

Feel free to send us any weird and wonderful ideas you have for the next version of the guide, but to get you thinking, here are a few questions that are on my mind:

  1. How and when (if at all) do you use the current Application Architecture for .NET guide?
  2. Do you believe the fundamental architectural concepts described in the guide are still relevant today?
  3. How deep should we go in mapping the architectural concepts to implementation details (considering that implementation technologies change relatively quickly)?  Should we use patterns as the ‘bridge’?
  4. Should the new guide assume a SOA frame, or should we cover other high-level architecture styles? Keep in mind that SOA was not such a widely-adopted concept at the time the original guide got published.
  5. Should we assume that readers of the new guide will be familiar with and using other p&p deliverables such as software factories and Enterprise Library?
  6. Should the guide duplicate or cross-reference the guidance in our software factories that describes the design of specific application styles (smart client, web service, etc)?
  7. Which new application styles and scenarios should we describe in the new guide? For example, Business Intelligence, Human Workflow, Peer-to-Peer, Grid, Agent, Mesh, Model-based design, etc
  8. Should the new guide cover any emerging architectural styles or implementation technologies, or only focus on proven practices?

I'm quite excited about finally updating this guide, and we're looking forward to your perspectives on what it should be.

Comments

  • Anonymous
    March 23, 2007
    The comment has been removed
  • Anonymous
    March 23, 2007
    Try this on for size...
  1. short catalog of common app designs, and what pieces/areas/domains/layers they have
  2. Drill down into each one, highlighting key patterns and alternative designs for each area.
  3. pointers to p&p and other materials that make those design concepts real in code and technology does this sound like a good idea?
  • Anonymous
    March 25, 2007
    Ed, this would work out fine. Exactly what we are typically looking for. I feel the current guide is also a bit short on the business layer side of the story. When business workflows, how business entities (suggestion: include the passing entities through tiers paper), business logic, what goes where... This is true also for the p&p deliverables btw. Although some of the factories do a pretty nice job. And of course, make sure to connect to the Software Factories vision.

  • Anonymous
    March 25, 2007
    I've actually just come across a hard-copy of "Enterprise Solution Patterns Using Microsoft .NET" (http://msdn2.microsoft.com/en-us/library/ms998469.aspx) version 2.0 (published in 2003). It surprised me a bit (in a good way :-) ) that it was also still quite relevant these days and it might be a good candidate for an update as well...

  • Anonymous
    March 26, 2007

  1. We use the guide during our technical architecture stages. Once the application style is recognised, we use this guide to help us in laying out a initial application architecture. There is missing pieces from a SOA prespective.
  2. Yes, there are relevant, but the underlying implementation technology has drastically changed. So you need to update it to have .NET 2.0/3.0 into considerations. Also, address the various security models applicable to a enterprise application architecture.
  3. you should give hints on how to use the implementation techonolgies like Service Broker, ORM using NHibernate, ADO.NET vNext/LINQ, UDDI Services in SOA, MSMQ etc... along with mapping them to the design patterns.
  4. SOA is no doubt a proven application architecture and integraion sytle today. the guide should address SOA and SaaS kind of applications.
  5. as the SFs and Entlib are popular, most of the .NET developer and Architects community are aware with these frameworks. 6,7. the guide should address application styles like CAB/smartclients, OBA, ASP.NET 2.0 + AJAX, Composite Services.
  6. Yes, the guide should cover new technolgies like parallel processing capabilities, Multi-threading, Service Agents and BPM solutions. Also, please update the integration patterns and data patterns guides as well. Thanks Ashith Raj
  • Anonymous
    March 29, 2007
    P&p is not limited to MS's p&p. There are some excellent frameworks out there that make use of .NET technology and can easily be mixed with application blocks, etc. We use CSLA (http://www.lhotka.net/Area.aspx?id=4) with CAB, DAAB, etc. CSLA is an excellent example that is being upgraded to leverage new MS technologies without breaking old code. It is 100% pure .NET and source code is freely accessible in C# and VB. It is very important that enterprise apps be maintained and upgraded easily. We switched from Remoting to WCP in nothing flat because CSLA is architected correctly. Next update supports WPF, among other things. There are other good examples out there. These examples are real world examples that developers can download and learn from. Mentionning those real world examples with the pros & cons of each would also be valuable.

  • Anonymous
    March 29, 2007
    Ericga: > There are other good examples out there. Can you provide some links to these "good examples" that you consider of real world examples?

  • Anonymous
    March 30, 2007
    Hi guys!. Nice to know a new release will be available. We are now taking the current guide as the bible for architecturing ... what i would like to see on next release are:

  • more about CrossCuttingConcerns such as Exception management
  • offline capabilities (ie. smartclients)
  • more on implementation based on current platform such as WCF and WF
  • more on security, i.e. considerations on how to exposing and consuming services through WCF, if ssl, ws-security, and so on.
  • concepts of composite applications and how different technologies could be integrated
  • integration scenarios (i mean, different scenarios where biztalk, wcf, wf, sssb, etc is more appropiate)
  • best practices for architecturing ... sth like a sheet to have on your desk and see every day.
  • tips for architects that not precisely are technicals .. some tips regarding to communication, sth like perspective model.
  • guidance for thanks, look forward from news ..! PP
  • Anonymous
    April 02, 2007
    Hi, Since there are several other books that need an update and that you have more experience with the patterns, I suggest you:
  • Focus on the scope of the first book.
  • Update the patterns by:   1- Simplifying them.   2- Removed the not relevant anymore.   3- Replace with new patterns.
  • Have a reference application that uses the new technologies Joel Archambault
  • Anonymous
    April 04, 2007
    The comment has been removed

  • Anonymous
    April 05, 2007
    This document proved to be of great help back in the days. I think we as developers have been playing catch up on Java in regard to how we organize business (domain) logic in our applications. This article explains my observation in more detail http://www.paulgielens.com/archive/2006/08/08/Organizing-Domain-Logic.aspx. I would like to see this whitepaper evolve in this direction. Perhaps even take the advancements in LINQ, Entity Framework and LINQ to SQL into account.

  • Anonymous
    April 06, 2007

  1. These days never.
  2. ...
  3. Patterns seems like a good approach to me..
  4. Certainly, though perhaps a seperation between application and enterprise architecture could be useful in the book.
  5. Yes.
  6. Yes.
  7. Domain driven and model based are the ones that I'd be most interested in (at the application architecture level).
  8. Both should be covered. Eds idea above seems like a good approach.
  • Anonymous
    September 02, 2008
    It's long overdo, but we're kicking off a project for v2 of the patterns & practices Application

  • Anonymous
    September 02, 2008
    Buenas, uno de las primeras guías de lectura obligada de la gente de Microsoft Patterns and Practices

  • Anonymous
    September 02, 2008
    Buenas, uno de las primeras guías de lectura obligada de la gente de Microsoft Patterns and Practices

  • Anonymous
    September 02, 2008
    Buenas, uno de las primeras guías de lectura obligada de la gente de Microsoft Patterns and Practices

  • Anonymous
    September 09, 2008
    Those of you who have been paying attention may have remembered a post I did over a year ago announcing

  • Anonymous
    September 09, 2008
    Those of you who have been paying attention may have remembered a post I did over a year ago announcing

  • Anonymous
    September 14, 2008
    W marcu zeszłego roku Tom Hollander pochwalił się, że wspólnie z kolegami z Patterns&Practices