Need to Better Understand What .Net Is

I'm having a hard time wrapping my head around what .NET really is. I know it can be used with a number of different languages so it's
not a language itself. Is it the "middle man" which allows a programmer to easily communicate with server items and user input,then mixes it altogether A.K.A
compiles it into an assembly then poof we have a new web application? ??

My sever admin brain is having a hard time with this so if someone can help me better understand this I would greatly appreciate it.
LVL 20
Who is Participating?
Jacques Bourgeois (James Burger)Connect With a Mentor PresidentCommented:
.NET is many things, but basically:

.NET provides a set of dlls, the framework, most of which is located in the C:\Windows\Assembly directory. These dlls contain over 9000 classes that deal with most aspects of programming. There are classes to help you manage a web application, others to create screens for standard windows applications, others to work with different databases, others to work with the files system, security, compression, program deployment, you name it, it is probably there.

.NET is also an environment in which .NET applications run, in a memory space that is not dependent on Windows and it which it can do tricks that Windows does not permit.

Windows was designed at a time where security, web and communications between applications were in ther infancy. So it was not designed for today's needs. Microsoft did what it could to make it work with modern applications, but its basic design did not enable them to do everything they wanted. Take the number of security patches that have to get out every month, due in part to the fact that most of the security features were built after Windows release.

.NET was designed with modern applications. For instance, very few security issues were found since .NET made its debut in 2002, because the security layer is at the heart of the system instead of being an add-on. It has most of the attributes of an operating system. It manages its own memory space independently from Windows. This enables a lot of things, such as loading simulatenously 2 versions of the same dll in memory, maybe in different languages, so that each application gets messages in the language of the application, or maybe versions 1.0 and 2.0 so that each application runs with the version of the dll on which it was developped and tested. This is not possible in a standard Windows application and can cause problems when an application overwrite an already installed but different version of a dll. In fact, .NET solves most of the problems that are regularly encountered in Windows.

.NET could have been a new operating system, and in fact, some programmers see it as such. But in order to release it as such, backward compability with older applications would have been compromised. So instead Microsoft released it as an extra layer that runs over Windows. Older applications run in the Windows memory space, .NET run in its own memory space.

If you are old enough to have lived the passage from MS-DOS to Windows, you might remember that the first versions of Windows were not operating systems. They were simply something that fit over DOS to give a better experience. It eventually became the operating system.

As a programmer, I see .NET the same way. The main difference is that on the user perspective, there is no difference between a Windows and a .NET application. For the programmer however, they are 2 different beasts.
Julian HansenCommented:
It is basically an application / development environment. It includes all the libraries and frameworks to develop, deploy and manage .Net based applications.

Take a look at the wikipedia article below - and then if you have any specific questions post back.
.Net is a framework used for building different types of applications like
cloud computing
all types of applications in a unified model(similar development style)
net support 40+ languages
moreover all languages can use these libraries
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

.NET is made up of three key parts, which are:
.NET Products
.NET Services
.NET Framework

See .NET Explained:
compdigit44Author Commented:
So a framework is a universal work / development enviorment correct?
How did .NET get it's name?
Julian HansenCommented:
A framework usually refers to code or an environment that has a structure and functionality depth that allows you to build applications or solutions without having to define everything from grass roots.  You just fill in the logic needed to handle the specifics of the solution you are building.

.Net has a rich set of libraries and functions that allow developers to do many things that previously would have required hours of coding - and because it is extensible (new components can be added using the .Net standard) it is always growing.

Take a look at the article links posted for more info.

    .NET is a framework that .NET aware programming languages make use of.  It provides controls for completing tasks, such as Database interaction, Webforms, Windows Applications, ect.  Here is a list of the core features that .NET provides:
Interoperability with exisiting code.
Support for numerous programming languages.
A common runtime engine shared by all .NEt-aware languages.
Complete and total language integration.
A comprehensive base class library.
No more COM plumbing.
A simplified deployment model

Ryan F
OrcbighterConnect With a Mentor Commented:
OK, I will provide the cynical answer to this question.
.NET is Microsoft's attempt to compete with Java.
Java developed a system where code is compiled into intermediate code. This code is then run through a program called the Java Runtime Engine (JRE). In this way, all you need to do is provide a JRE that runs on different platforms, while the code you write is platform non-specific. That's why it is used in mobile apps, and other devices.

Now Microsoft does not own Java and so cannot dictate how it should be developed, so they invented their own system, .NET. This they can dictate the development of.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.