Microsoft .NET Technologies

As of this writing, Microsoft .NET technologies have been around for roughly a decade (the 1st 2 or so years were beta).

It’s difficult to give a quick definition of “.NET” because it covers so much material.

image.NET (sometimes spelled DotNet or Dot Net, but always pronounced “dot net”) is called a “managed” environment.  This means, programs written with the .NET technologies don’t actually run as “raw” programs on the machine’s CPU.  The binary (or executable) files aren’t created for any particular CPU hardware.  This means one EXE file can run on various types of different hardware without needing to be recompiled.  For example, a program written in C# or VB.NET for a Windows Mobile device that uses say an ARM processor, can run, as-is on an Intel or AMD based PC.  The code in the EXE or DLL files is coded for a virtual processor that doesn’t really exist.  The Microsoft .NET technology that comes installed on all modern Windows machines knows how to interpret the code in a .NET EXE or DLL.  It will convert it to the local CPU’s code as it’s needed.  Since the code isn’t converted into actual machine code until it’s time to run, the .NET runtime environment has complete control over what the program can do and can even deny an application to ability to say, send files over the network.  Security was built into .NET technologies from the very early design phases.  Though, nothing is impossible, it is very difficult to write a .NET program that can work around the security built into the .NET technologies.  As the technology matures, more and more loopholes are closed off.  Today, it’s a very robust technology.

.NET technologies provide a run time environment.  This is the part that translates the binary code from a program into the machine code for the CPU.  It also handles garbage collection and memory management, as well as security.

The .NET Framework is a HUMONGOUS library of classes available for the .NET developers to use.  The original version of the .NET Framework (v1.0), released in Feb 2002 had over 10,000 classes.  Each class having a dozen or more methods, properties, and events.  As of this writing, the current version is 3.5 and 4.0 is just around the corner.  The .NET Framework has classes for handling strings, databases, network communication, encryption, graphics, window management, etc…  The capabilities are so large, there’s probably not a single person alive that knows everything that it provides.

.NET is fully object oriented, from the run time environment, to the framework, to the languages.  Speaking of languages, Microsoft provides and supports two .NET languages (C# and VB.NET).  There are plenty of other languages available too from Cobol.NET to RPG.NET to Python.NET.  If there’s a popular language out there, there’s probably a .NET version of it.

The primary development tool for writing .NET software is Microsoft Visual Studio.  It comes in various flavors from the free “Express” edition to the top of the line “Team Suite” edition.

Microsoft’s .NET Framework is available on Windows, Windows Mobile, XBox 360, and various other platforms.  Microsoft does not provide a version for Mac or Linux, but an the open source community has solved that problem by recreating .NET technologies, from scratch, for Linux, Windows, and Mac with the Mono project.  The primary development product for Mono is Sharp Develop.  It’s a free, open source, fully capable IDE that works on Windows, Mac, and Linux.

.NET is a very developer friendly platform because it helps prevent common programmer errors like memory over writes, deallocating memory, is fully object oriented, and provides so much functionality is the very large framework, and has a very powerful IDE.  There is a very large user community around .NET technologies too, so help is available all over the internet and in hundreds of .NET user groups all around the world.  Your local town probably has a .NET user group too.

Leave a Reply