TechBubbles Microsoft Technology BLOG

Software Architecture Styles


An Architecture style is a set of principles which you can use to build a system Typically Architecture styles depends on their focusing areas. Implementing the software architecture styles depends on the capacity of your organization for implementing it and infrastructure constraints. This post explains which architecture style is to use based on demands.

Architecture Styles

We typically combine multiple styles to define a complete architecture. For example layered architecture can be used with component-based, object-oriented or SOA styles.

The following are the list of commonly used software architecture styles


   Consider this style if 

  • The application is Server based and support multiple clients.
  • You are creating Web based applications exposed through browser.
  • You want to centralize data storage, backup and management functions.


  Consider the component-Based Architecture style if

  • Your application has specific requirements that do not include a UI or business processes.
  • Your application executes procedure style functions with little or no data input.
  • You want create a pluggable architecture that allows you to replace and update individual components.


Consider the layered architecture style if

  • Your application is complex
  • You want to improve the maintainability and extensibility of the application
  • Your application to support different client types and different devices

Message Bus

Consider this style if

  • Your existing applications to interoperate with each other to perform some tasks.
  • You are implementing a task that requires interaction with external applications.
  • You are implementing a publisher\subscriber application.

Model-View-Controller (MVC) Architecture style

Consider MVC style if

  • You Want improved testability and simpler maintenance of UI
  • You want to separate UI elements and UI processing code.
  • Your UI processing code does not implement any business logic.


Consider the Service-Oriented Architecture style if

  • You want to consume the services exposed by the third party.
  • You want to build application that compose a variety of services into a single UI.
  • You are creating SaaS(Software as Service) applications.
  • You want to expose services through discoverable directories.



About the author

Kalyan Bandarupalli

My name is kalyan, I am a software architect and builds the applications using Microsoft .NET technologies. Here I am trying to share what I feel and what I think with whoever comes along wandering to Internet home of mine.I hope that this page and its contents will speak for me and that is the reason I am not going to say anything specially about my self here.

Add Comment

TechBubbles Microsoft Technology BLOG

Follow me


Tag Cloud