[ACCEPTED]-What is the difference between framework and architecture?-dotnetnuke
Let me illustrate the difference.
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 1 is implementation.
Frameworks is a collection of classes and 7 tools that help you developing great softwares 6 ... like .net framework or Qt.
Architecture 5 is entirely different : it refers to design 4 pattern or how an application or a framework 3 is organized. What are the modules that 2 compose it and how they communicate together 1 !
Also to note the difference between design 5 and architecture:
Design: When you talk about what 4 to do when a user logs in ?
Ex. Usability, portability, accessibility 3 etc.
Architecture: When you talk about what to do 2 when 5000 users logs in simultaneously ?
Ex. Scalability, reliability, availability, performance 1 etc.
Architecture is about style, abstract idea, flow, methodology, concept. Framework 9 is something which implements the style, idea, concept 8 etc..or makes it easier to implement it. example,
Architecture: Every 7 component should have standard pluggable 6 interfaces and it should be possible to 5 connect any component to any other.
Framework: Then 4 lego building blocks can be the framework.
Library: some 3 readymade combinations of blocks that would 2 work as the pillars.
Application: A building structure 1 using the pillars and other building blocks(application).
Frameworks are generally a part of your architecture. They 7 are normally part of the infrastructure 6 of your code. MVC is a framework, as is 5 ASP.NET, WinForms and many many libraries 4 (NHibernate, PostSharp and more).
Architecture 3 refers to how your software it put together 2 - how it is organized, how the different 1 classes and modules in it interact.
Framework is a part of architecture implementation. Say, our 10 app will be organized according to MVC architecture 9 and will use SpringMVC framework for that. Different 8 frameworks are organized according to different 7 architectural patterns. Someone can say, that 6 term "framework" is itself describes architectural 5 pattern. Its "opposite" is "library", because libraries 4 are directly controlled by your application 3 while frameworks use inversion of control 2 and they control execution of your code. Though, there 1 are controversies in using term "framework".
I think framework is something that is created 16 by someone and available to you to accomplish 15 a objective. Like MFC is a framework to 14 write GUI application. Frameworks takes 13 full control from you but gives you the 12 advantage of not trying to do everything 11 from ground up. In most cases it is better 10 to use a well designed and tested framework, rather 9 than write your own.
In this context architecture 8 is how the framework has been designed and 7 possibly the way to use the framework from 6 you application maintaining the vision of 5 the framework designers.
But broadly architecture 4 is the design principle and can encompass 3 not only software but complete systems as 2 well. Think security, integration, reporting, infrastructure 1 aspects etc.
MVC is pattern as supposed to an architecture, it 5 may be used as a technique in your architecture 4 though. Framework as others have said is 3 a collection of tools you use to implement 2 your architecture. In other words framework 1 is the tool-belt.
Architecture is a logical view, it means 7 doesn't have any implmentation(java classes), just 6 has an idea where to put each components(jsp, servlet 5 and model component for MVC architecure). We 4 can also called as Design pattern.
Framework 3 is an implementation of an Architecture. Like 2 Spring(Application Architecture), Struts(MVS 1 web App Architecture) are some framework.
Let me give a try:
Framework is 13 nothing but a blue print of the solution 12 that going to be provided for a task or 11 work. The blue print should have info like:
1. what 10 are the components(tools) going to involved 9 or developed. And how they are connected
2. how 8 the components are going to be maintained
3. what 7 is the input for all the components and 6 what they return back
4. how the components 5 are getting initiated and what is the final output 4 by integrating all the component
Architecture: Architecture 3 is a design which tells us how the framework 2 (or) given_solution is going to be implemented 1 on expected environment.
More Related questions