Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between framework and architecture? [closed]

Let me illustrate the difference.

Framework:

Framework

Architecture:

Architecture


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.

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


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 !


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.


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).


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.