views:

759

answers:

10

Really want to know diffenrence between framework and architecture.

like dotnetnuke is the framework and mvc is the architecture.

so if we take both this as a example. then can anyone tell me difference between.

Want to know Which one is using when and Where?

Which is good in terms of user requirement satisfaction?

+1  A: 

Frameworks is a collection of classes and tools that help you developing great softwares ... like .net framework or Qt.
Architecture is entirely different : it refers to design pattern or how an application or a framework is organized. What are the modules that compose it and how they communicate together !

Matthieu
Frameworks: or they might help you develop lousy software. Or be imposed on you by Project Requirements, making it hard for you to develop great software.
Charles Stewart
+1  A: 

Frameworks are generally a part of your architecture. They are normally part of the infrastructure of your code. MVC is a framework, as is ASP.NET, WinForms and many many libraries (NHibernate, PostSharp and more).

Architecture refers to how your software it put together - how it is organized, how the different classes and modules in it interact.

Oded
+11  A: 

It's common to make this distinction:

  • A Library is a reusable set of types/functions you can use from a wide variety of applications. The application code initiates communication with the library and invokes it.
  • A Framework consists of one or more libraries, but the difference is that Inversion of Control applies. The application registers with the framework (often by implementing one or more interfaces), and the framework calls into the application, which may call back into the framework. A framework often exists to address a particular general-purpose Domain (such as web applications, or workflows, etc.).
  • Architecture consists of the guiding principles behind a given application. It is not strongly tied to a particular framework or library.
Mark Seemann
+5  A: 

Simply put -- architecture is theory, framework is implementation.

Art
+1  A: 

Framework is a part of architecture implementation. Say, our app will be organized according to MVC architecture and will use SpringMVC framework for that. Different frameworks are organized according to different architectural patterns. Someone can say, that term "framework" is itself describes architectural pattern. Its "opposite" is "library", because libraries are directly controlled by your application while frameworks use inversion of control and they control execution of your code. Though, there are controversies in using term "framework".

Rorick
+1  A: 

I think framework is something that is created by someone and available to you to accomplish a objective. Like MFC is a framework to write GUI application. Frameworks takes full control from you but gives you the advantage of not trying to do everything from ground up. In most cases it is better to use a well designed and tested framework, rather than write your own.
In this context architecture is how the framework has been designed and possibly the way to use the framework from you application maintaining the vision of the framework designers.

But broadly architecture is the design principle and can encompass not only software but complete systems as well. Think security, integration, reporting, infrastructure aspects etc.

Pratik
+14  A: 

Let me illustrate the difference.

Framework:

Framework

Architecture:

Architecture

Vasiliy Borovyak
very good way to give answer. i like it.
Sikender
+1  A: 

Also to note the difference between design and architecture:

Design: When you talk about what to do when a user logs in ?
Ex. Usability, portability, accessibility etc.

Architecture: When you talk about what to do when 5000 users logs in simultaneously ?
Ex. Scalability, reliability, availability, performance etc.

Ravi Gupta
A: 

MVC is pattern as supposed to an architecture, it may be used as a technique in your architecture though. Framework as others have said is a collection of tools you use to implement your architecture. In other words framework is the tool-belt.

Mitch Labrador
A: 

Architecture is about style, abstract idea, flow, methodology, concept. Framework is something which implements the style, idea, concept etc..or makes it easier to implement it. example,

Architecture: Every component should have standard pluggable interfaces and it should be possible to connect any component to any other.

Framework: Then lego building blocks can be the framework.

Library: some readymade combinations of blocks that would work as the pillars.

Application: A building structure using the pillars and other building blocks(application).

Tiju John