what is the .net framework?

Started by
10 comments, last by JonBonazza 12 years, 6 months ago
I'm having a hard time understanding what exactly the .net framework is.

From research im guessing it is the following
1.) CLR which is the virtual machine that runs the programs compiles for the .net framework
2.) Libraries included to help users focus on actual programming of code instead of worrying about low level details. For example the programmer shouldn't have to program how to design and make a button show up on the screen. They should be able to use already created libraries that handle this so they can focus on what they really want to get accomplished.


Am i correct or not?

Also Wouldn't C++ be considered a type of "software framework"? considering it includes librarys that have code that enable the programmer to read and write to a file and do console I/O?

Advertisement
I would say you are correct.

C++, however, is just a language not a software framework. Something like wxWidgets or GTK would be more like a framework, IMO.

Beginner in Game Development?  Read here. And read here.

 

but it provides libraries( such as iostream ) that are linked where the user can use them instead of worrying about the internals and can easily display to the screen ? which is pretty much identical to .net's framework of included libraries?

but it provides libraries( such as iostream ) that are linked where the user can use them instead of worrying about the internals and can easily display to the screen ? which is pretty much identical to .net's framework of included libraries?


Dotnet includes a relatively fleshed out BCL (Base Class Library), which has a lot more functionality than the CSL (or STL). It also includes Winforms and WPF for creating GUI Windows applications, multiple languages, and a deployment system. "Framework" seems to be a fairly loose term, but the biggest difference in practice (in my opinion) between "native" C++ and .NET is the CLR, which provides a managed environment.

but it provides libraries( such as iostream ) that are linked where the user can use them instead of worrying about the internals and can easily display to the screen ? which is pretty much identical to .net's framework of included libraries?


You have to decouple the thoughts of combining Libraries and Languages together. You should see C, C++, Java, C#, and other languages as languages, meaning that they contain semantics of expressing ideas using logic. For example, how do you write a loop, conditional statements, composing objects, expressing objects relationships, and so on. These are independent of the Libraries. Languages by themselves aren't practically useful.

Then, on top of the languages, are the Libraries (e.g. stdio.h, iostream, .NET, java.io). Each library has a purpose, but mostly serves as an interface to the hardware/platform the language is being used on, whether it's the keyboard, screen, web, or network. Some languages have libraries that allow low-level or system access, but some others are designed to work on other types of platforms (e.g. web).

stdio.h is not C, but written for C
iostream is not C++, but written for C++
Similarly, .NET is a framework, not tied to any language, written for multiple languages.
The best explanation I've seen was from Andrew Tolsen's book, Pro C# 2008 and the .net 3.5 Platform. Maybe try and get your hands on it.

[color=#1C2837][size=2]stdio.h is not C, but written for C
iostream is not C++, but written for C++



iostream is C++; it is defined by the C++ standard under "Input/Output library".
I'd say boost is a better fit for your "is not C++, but written for C++" statement.

[quote name='alnite' timestamp='1319252591' post='4875249']
[color="#1C2837"]stdio.h is not C, but written for C
iostream is not C++, but written for C++



iostream is C++; it is defined by the C++ standard under "Input/Output library".
I'd say boost is a better fit for your "is not C++, but written for C++" statement.
[/quote]

iostream is NOT equivalent to C++. Like stated before, it is a library WRITTEN for C++. C++ is just a syntax that a developer uses to change his/her logic into machine code, nothing more. iostream, stl, etc... are all just libraries that are written to be used for the C++ language.
Co-founder/Lead Programmer
Bonafide Software, L.L.C.
Fairmont, WV 26554 US

iostream is NOT equivalent to C++. Like stated before, it is a library WRITTEN for C++. C++ is just a syntax that a developer uses to change his/her logic into machine code, nothing more. iostream, stl, etc... are all just libraries that are written to be used for the C++ language.


I didn't mean to say that iostream is equivalent to C++, just a subset.
C++ isn't only syntax, there's also semantics. It'd be useless otherwise.
If you want to prove me wrong, please point out the part in the C++ standard that says iostream isn't part of the standard, or something to that effect.

[quote name='jonbonazza' timestamp='1319310505' post='4875399']
iostream is NOT equivalent to C++. Like stated before, it is a library WRITTEN for C++. C++ is just a syntax that a developer uses to change his/her logic into machine code, nothing more. iostream, stl, etc... are all just libraries that are written to be used for the C++ language.


I didn't mean to say that iostream is equivalent to C++, just a subset.
C++ isn't only syntax, there's also semantics. It'd be useless otherwise.
If you want to prove me wrong, please point out the part in the C++ standard that says iostream isn't part of the standard. Or something equivalent.
[/quote]

I won't argue that iostream isn't part of the standard, because it is, along with various other libraires. However when someone says "what is C++" how would you define it? In my opinion, even if a library something is recognized as a standard, it does not suffice to say that it is a subset of something. That is not what standards are for. Just as you would link a custom library and include the header files of the custom library, in order to use the various members of iostream, you are required to link that library and include its header file. Therefore, it is not sufficient to say that iostream is C++, but rather iostream is a library used by C++ and provided by the standards committee in charge of the language. The same thing goes for Java and the java SDK (or JDK as oracle likes to call it). java is just syntax and semantics (you are correct on this point, i will not argue that), while the java sdk is a collection of APIs provided by Oracle (and formerly Sun Microsystems) to aid the developer. Declaring that the java SDK is java or that stdlib or iostream is C++ is a huge misconception, one that can only be realized when one "[color=#1C2837][size=2]decouples the thoughts of combining Libraries and Languages together," as noted by alnite.
[color=#1C2837][size=2]

[color=#1C2837][size=2]I suppose that one could argue that since the above misconception has become so mainstream, the misconception has become the correct perception, so in a way this entire argument is irrelevant as one's opinion will be skewed,
Co-founder/Lead Programmer
Bonafide Software, L.L.C.
Fairmont, WV 26554 US

This topic is closed to new replies.

Advertisement