.NET? … What .NET? Where’s the rest of the URL?
No, it’s Just .NET
Not Confusing at all…
If you’re just getting to know it, the term .NET can be pretty ambiguous. Often referred to as if it was a Programing Language, while everyone knows it’s not, .NET sounds like someone forgot to give you the rest of the website address.
To complicate the picture, you can’t program in a language called .NET, but somehow you can get a Job programming .NET. And the code for .NET can look like java one day, c# another and vb the next.
It’s almost as if Microsoft specifically hired a schizophrenic just to play a cruel joke on the rest of the world. Followed with massive adoption and large amounts of success .NET has become a new Googlism replacing java in many parts of the development world.
It’s Everywhere…
Yet even with the schizophrenic and incomplete web address personality, you can’t go two programming search results in without running across a post talking about how powerful .NET is and how it’s so easy to do something that used to take weeks of work. Followed by YouTube videos saying that the learning curve is apparently much smaller than it’s predecessors.
And to top it off, it’s the key to an already large and growing number of jobs on Monster.com, Dice.com and HotJobs.com all with high salary ranges…
Source of the Issue…
Well the source of the confusion actually lies in it’s older and biggest competitor. Microsoft saw a logic error in how Java was positioned and decided to close the gap and do it the right way with their platform years ago.
For those of you that don’t know, Java (which came before .NET) is a platform AND a programming language in one. It gives capabilities (platform) AND tells you how to write code (Language) at the same time in one piece. At the time Java was released, the world was not ready for a new platform AND a new language, so Sun (Now Oracle) released it as one.
Nowadays, programmers have gotten a lot more sophisticated in general and do not find these ideas confusing, so when .NET was released, Microsoft separated the language specification from the capabilities your language uses.
.NET is a Platform
That’s why .NET is a platform and for example, C# is a language you can program in .NET. From a programmers perspective, the purpose of .NET is:
- to make sure your programs run, no matter what .NET Supported Language they were written in
- And to make sure that you have easy access to Libraries written by Microsoft that make hard things easy to do.
The biggest difference here being that .NET is the hard System level stuff you don’t want to write, and in theory, you can use whatever programming language you want to utilize it.
So if you want to send an email, you don’t have to learn SMTP, you can just call a .NET Library Class/Function. If you want to access System Level Process Reporting, you don’t have to call out to old school DLL’s. You can just call a .NET Library Class/Function. That’s the purpose of .NET which would be incomplete without programing languages for you to use, but is just one piece of the pie.
Whatever Language I want?
Before we get our hopes up that we can refresh those COBOL skills and put them to use in .NET…
While .NET supports 100′s of languages, in practice, there are really only two being used by 99% of the .NET world.
- C#.NET
- And VB.NET
DISCLAIMER: I don’t like VB.NET. Period. We will get more into that when I compare C#.NET to VB.NET.
But back to the point here, if you want to practically use .NET, you will probably be using C# or VB.NET.
Multiple .NET Versions
Without boring all readers with the low level details of how .NET is structured, here’s what you need to know.
.NET, also called “The .NET Framework” (Pronounced “Dot Net”), is a large program that you install on top of your operating system before you can run any programs written in .NET.
There are several versions of .NET and if you already have one installed, but a program requires another, you have to install the other version of .NET too. This means that you can and will likely have multiple versions of .NET Installed on your computer at the same time. They don’t conflict with each other and more importantly, you cannot just use the later version to run a program written for a previous version.
QUICK Structure of .NET
For our purposes in learning ASP.NET it’s important to note that .NET is not a Web Server, but it allows you to write Web Applications. It may not be a Web Server, but don’t be fooled, it provides most of the web functionality since it contains ASP.NET.
To make a long story short, .NET comes with almost everything your web programs need, except the actual web server itself which is known as IIS (Microsoft Internet Information Services).
It also comes with other things you may use later such as a Remoting and Communications Server(WCF), Presentation Server(WPF), a Workflow Server (WW) and the list is growing. Basically Microsoft constantly adds new layers to NET and even changes things to make it easier and easier for the programmer to get more done with less effort.
Unlike the Java world where this help is segmented among 1000′s of open source developers (which has it’s own benefits) Microsoft’s key selling point is that they set a standard and therefore everyone will be on the same page much quicker.
So from your perspective, .NET may be actually broken up into many little pieces and many capabilities, but its just this big massive program in between YOUR program and the Operating System.
So, as long as the platform is there, your program sits on top of it and gets to do all of the cool stuff.
Example
Using .NET, here are some examples of things you can build, with things you DON’T need to know to build them:
- A Client+Server application that communicates across the network.
Without Knowing Network Protocols - A Mass Email Sender
Without knowing the Email Communication Language (SMTP) - A Multi-Window Application
Without knowing Windows graphics calls - Large Workflow Application
Without building a Workflow Engine (Pain in the Butt)
Wrapping it up
.NET is not a Programming Language, It’s a platform.
C# and VB.NET are the Programming Languages you would use with .NET
.NET provides the capabilities of a massive Software Library provided (almost) for free by Microsoft.