Architectural Patterns in .NET

In this article let's discuss about the various architecture pattern available in this programming world.

Before getting into the main picture, we need to know why we need patterns.

Why Patterns?

Each pattern describes a problem that occurs over and over again in our environment and then describes the core of the solution to that problem in such a way that you can use this solution a million times over without ever doing it the same way twice.

- Christopher Alexander

What is Architectural Patterns?

We can simply define it as a design technique at a larger context where it influences the organization or the structure of the sub systems. It establishes the relationships, defines the responsibilities, and provides the rules and the guidelines of the overall architecture.

Focus Areas of Architectural Pattern

The architectural pattern can be organized by their focus areas as below.

  • Communication

    o Service Oriented Architecture
    o Message Bus
  • Deployment

    o Client/Server, N-Tier, 3-Tier
  • Domain

    o Domain Driven Design
  • Structure

    o Component Based
    o Object Oriented
    o Layered Architecture

Let's discuss about the simple definition of each architecture pattern listed above.

Service Oriented Architecture

Service Oriented Architecture can be defined as a collection of services. These services communicate with each other. It generally refers to Applications that expose and consume functionality as a service using contracts and messages.

SOA makes it possible for a business to add new features and services without having to create them from scratch. Instead, they can be added or modified as needed, making it simple and efficient to expand the business.


Message Bus

Message Bus can be defined as a software system that can receive and send messages that are based on a set of known formats, so that systems can communicate with each other without needing to know the actual recipient.

Above diagram shows an integration solution that uses a message bus. An application that sends messages through the bus must prepare the messages so that the messages comply with the type of messages the bus expects. Similarly, an application that receives messages must be able to understand the message types. If all applications in the integration solution implement the bus interface, adding applications or removing applications from the bus incurs no changes.

Let's discuss about the remaining architecture pattern in my next article. Hope this session helped you to understand about an overview of Architectural Pattern.