Jump to content
  • Advertisement
Sign in to follow this  
nuclear123

what is the .net framework?

This topic is 2612 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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?

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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?

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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. Edited by patrrr

Share this post


Link to post
Share on other sites

[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,

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!