What "exactly" is a framework?

ibex333

Diamond Member
Mar 26, 2005
4,094
123
106
I was looking up what ASP.NET is, and according to my google search it is a framework... But there are many other frameworks... "Rails" for Ruby?

Ok, so I googled what a framework is... Apparently, "a software framework is an abstraction in which software providing generic functionality can be selectively changed by additional user-written code, thus providing application-specific software. A software framework is a universal, reusable software platform to develop applications, products and solutions."

Still sounds way too ambiguous!

What is a software "platform" then? Is it a compiler to assemble other code using other languages? Is it a piece of software in which to write other code such as C# or VB code?

Can someone explain what ASP.NET is, using Javascript as a comparison? Javascript is an interpreted language, and one can write Javascript code in various text or code editors. Anything from Notepad to ExpressionWeb, Dreamweaver and anything in between. So how is ASP.NET different? Is it not a "language" at all? Is ASP.NET a platform within which I can write Javascript?

Thanks very much.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
A "framework" in this context is a body of code that provides services that can be used in common across a wide variety of applications. A "GUI Framework" provides common windowing classes. A "Comunications Framework" provides common networking classes, etc.

The point is that in any given set of applications built on the same language and operating system, there are common functional requirements that are not specific to the problem domain the application is addressing. These common functions can be identified, factored out of their domain-specific environment, and presented as reusable components that many applications can take advantage of.
 

ibex333

Diamond Member
Mar 26, 2005
4,094
123
106
So then ASP.NET is not a language at all, it's like a collection of classes from which a programmer can draw? I'm still unclear... How can ASP.NET be compatible with other languages when it's code is very different?
 

Graze

Senior member
Nov 27, 2012
468
1
0
So then ASP.NET is not a language at all, it's like a collection of classes from which a programmer can draw? I'm still unclear... How can ASP.NET be compatible with other languages when it's code is very different?

Ehh, ASP.NET is not a language.
ASP.NET only works injunction with C# and VB.NET(two Microsoft languages)
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
So then ASP.NET is not a language at all, it's like a collection of classes from which a programmer can draw? I'm still unclear... How can ASP.NET be compatible with other languages when it's code is very different?

The architecture of .NET languages is such that they all compile to a binary-compatible intermediate format known as Common Intermediate Language, and they all execute in the Common Language Runtime. So classes written in VB.NET are callable from C# and vice versa.
 

Train

Lifer
Jun 22, 2000
13,583
80
91
www.bing.com
A "framework" in this context is a body of code that provides services that can be used in common across a wide variety of applications. A "GUI Framework" provides common windowing classes. A "Comunications Framework" provides common networking classes, etc.

The point is that in any given set of applications built on the same language and operating system, there are common functional requirements that are not specific to the problem domain the application is addressing. These common functions can be identified, factored out of their domain-specific environment, and presented as reusable components that many applications can take advantage of.

Not to split hairs, but I think you are more accurately describing a library. I think the .Net base classes are only part of what makes up the "framework", there is the runtime, and all the things that go with it, like the GAC.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
Not to split hairs, but I think you are more accurately describing a library. I think the .Net base classes are only part of what makes up the "framework", there is the runtime, and all the things that go with it, like the GAC.

It's a definitional disagreement. I would consider the runtime and GAC to be part of the platform, not the framework. For example, django is a framework, but has no runtime or anything similar to a GAC.
 

Train

Lifer
Jun 22, 2000
13,583
80
91
www.bing.com
Well in that case I think there is far too much overlap between library, framework, and platform for any of them to have any definitive boundaries.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
Well in that case I think there is far too much overlap between library, framework, and platform for any of them to have any definitive boundaries.

Yeah, there is certainly overlap. In fact you could say that a "framework" is a subspecies of library.