Thursday, December 20, 2007

Is 3 tier architecture and MVC same?

Today, Rishan (sommohon) ask me this question while chatting with him. I gave him the answer in one sentence but I myself was not satisfied with the answer. I thought I should write something about this in short.

After a long period I am writing to my blog. As I am in vacation right now at last I got some time to write something. I can continue writing if you guys help me by requesting topics to discuss and also post reply to this topics.

Now what is the answer.

If you say yes, I think that is correct. If you say no, I think that is also correct. You wonder how? Let’s see the simple similarities and dissimilarities.

Both n-tier architecture and MVC have the same root, or same basic idea that they separate the responsibilities among different parties to make your application more robust, more flexible, more scalable and easier maintainable.

MVC is a design pattern for GUI. A design pattern shows us how to separate responsibilities between VIEW and DATA at the presentation tier. Most web application framework is based on the MVC pattern (MVC Model 2).

N-tier architecture is about how to design your application or system architecture pattern, the basic idea is to separate the responsibilities among different tiers (Presentation tier responsible for UI or User Interface, BL or Business Logic tier responsible for business logic, DAL or Data Access Layer tier responsible for data, Service layer for Service etc.)

So about MVC and N-tier we can say that concepts are same but implementation is different. This is my simple understanding.

I hope to learn and write about this more. Any comments or suggestions?