Software Architecture & Design Patterns
This article reviews some of the architecture Design patterns for Enterprise Applications built using the .NET Platform.
Application Architecture:
Software Applications come in all shapes and sizes. Based on their design and architecture enterprise applications can be classified into various categories such as:
* Distributed Applications
* Web Applications
* Web Services
* Smart Client Applications
This article reviews some of the architecture Design patterns for Enterprise Applications built using the .NET Platform.
Simply put Application architecture is:
– Set of significant decisions about how a software system is organized
– Selection of the elements that the system comprises of
– Interfaces of the elements
– Behavior of these elements
– Interaction of these elements within the system and with other systems
What are Design Patterns?
A Software design pattern provides us a general solution to a common problem in software design.
It is a description or template for how to solve a problem.
Large majority of Software development teams tend to face similar problems in Software development.
Patterns provide us reusable solutions to commonly encountered programming challenges
This helps us speed up the Design and overall Development Time and Effort thereby resulting in cost savings. At the same time since these patterns are time tested they provide solutions with known benefits and drawbacks. Over a period of time patterns get improvised and new patterns emerge.
There are various types of Software Design Patterns:
Design patterns can be classified based on multiple criteria, the most common of which is the basic underlying problem they solve.
List below are some of the most important categories of Software Design Patterns:
A) Creational patterns:
Creational design patterns deal with object creation mechanisms
B) Structural patterns:
Structural design patterns focus on relationships/interfaces between entities and objects
C) Behavioral patterns:
Behavioral design patterns focus on common communication patterns between objects.
Design Patterns on the .NET Platform:
Some of the design patterns used with .NET :
A) Creational Patterns:
* Factory Method
* Abstract Factory
* Builder
* Prototype
* Singleton
B) Structural Patterns:
* Adapter
* Bridge
* Composite
* Proxy
C) Behavioral Patterns:
* Iterator
* Observer