Udostępnij za pośrednictwem


.NET Application Architecture Guide - Application Types, Architectural Styles and Architecture Frames

First post on the blog by Mehran, in this post he gives us a guide to .NET Application Architecture.

If you have been using the .NET Framework since its first version, you may remember the Application Architecture for .NET guide, which was published back in 2002. Most of the subjects covered in this guide are still relevant but since then, .NET Framework has come a long way and there are loads of new features available in the framework such as automatic transaction management, WCF, WFP, WF, ADO.NET Entity Framework, etc, etc. So the patterns and practices team thought this is a good time to revisit this guide and rewrite it to bring it up-to-date.

We have been working on this guide for the last few months and the first beta is now available for download from here. This release has a very practical approach to application architecture and breaks down the applications based on the "Application Type" and the "Architectural Style":

Application TypesMobile ApplicationRich Client ApplicationRich Internet ApplicationService ApplicationWeb Application Architectural StylesClient/ServerComposite ApplicationEnterprise Service BusGridN-TierPeer-to-PeerSaaS/S+SSOA

It then provides specific guidance related to the application type and architectural style. The guidance is mainly provided in the form of "Architecture Frames", which are "collection of hot-spots that represent key engineering decisions". Here are a few architecture frames used in this guide: Authentication and Authorisation, Caching and State, Config Management, Data Access and Logging and Instrumentation. Each architecture frame is then broken down into fine-grained questions. So for example, the following questions are related to the Data Access architecture frame:
- How to manage database connections?
- How to handle exceptions?
- How to page records?
- How to perform transactions?

 

When designing the architecture, we usually deal with cross-cutting concerns so looking at the system from various perspectives (such as application type and architectural style) is a great way of tackling the problem and allows us to provide the most relevant guidance for each category.

I don't want to go into further details as J.D. has a great blog post with all the details.

So what to do next? Go and download the guide, go through the content and let us know what you think. This guide is still in beta so you have the opportunity to let us know if:

- There is anything missing.
- You believe that specific parts of the guidance are not correct, too high level or too much prescriptive.
- You want to add more content to specific areas.

The best way to send your feedback is via the CodePlex site.

Originally Posted by Mehran Nikoo on October 30, 2008 here.

Comments