Architecture design is an important phase of development process, especially for enterprise applications with large scale of functionalities, technologies and long-term maintenance, enhancements and improvements.

A good architecture design brings a lot of benefits to the project: compatibility, extensibility, reliability, maintainability, availability, usability, security and many others.

There are many good articles that discus about the importance of architecture design that you can read for further details:

My favorite design for web projects is the following:

Main characteristics:

  • 3 main layers: UI layer, Business Logic layer and Data Access layer
  • Data Access: I use Entity Framework as the ORM (object relational mapping -http://en.wikipedia.org/wiki/Object-relational_mapping) for this project in order to generates C# data context and model classes. With the support of POCO (plain old CLR object -http://en.wikipedia.org/wiki/Plain_Old_CLR_Object), we can easily deal with database stuffs (CRUD – create/read/update/delete, complex queries…) based on strongly-typed C# classes.
  • Business Logic: in this project, this layer is quite simple with interfaces and implementation classes. I also use custom providers for working on user roles and membership (authentication and authorization - http://en.wikipedia.org/wiki/AAA_protocol).
  • UI layer: I apply ASP.NET MVC framework to separate the Views (user interface), Models (data containers) and Controllers (UI logic handlers).

 


Thanks for reading my post!

I hope you have good time. If you want to share an idea or discuss a job, do not hesitate to contact at

Happy working!


Other posts you may concern


Implement D3.js chart with time selector and highlighted values

Container Load Plan: showing 3D steps with animations (Three.js)

Building simple image editor with Fabric.js (Javascript HTML5 canvas library)

3D visualization programming with VTK (The Visualization Toolkit)

Stylink: An inside look of a startup social-commerce project

Stylink: Virtual dressing room for commercial purposes

Stylink: A tool for designing fashion collections

Stylink: Web-based tool for styling your hair

Some practices for setting up a clean, responsive and real-time support web project (ASP.NET)

Adding HTML editor (WYSIWYG) into ASP.NET web projects