What does .NET really mean? – Understanding .NET

New to .NET, wondering what this buzz word .NET is today's happening in the development of enterprise applications and Web Services on Windows platforms! Here is a precise introduction for you. Come on let's party!

This article focuses on the following topics:

  1. What is .NET?
  2. Why .NET?
  3. Microsoft's .NET Framework
  4. CLR, CTS and CLS - an Overview
  5. .NET Framework Class library
  6. .NET compliant Languages and
  7. C# - a brief introduction

Introduction

The .NET Platform and .NET-Aware Programming Languages, particularly C# are already making a turnaround in the way Applications are developed in the enterprise world. This new programming model is a boon for building XML Web Services and applications. Say it may be Web Applications, XML Web Services, desktop or mobile applications; .NET Framework has got every thing you need to develop these applications with excellent performance and throughput. Moreover Microsoft's IDE, Visual Studio .NET, comforts the user by providing a cool development environment. The .NET Platform is the world order of Windows development and it is possible for non-Windows development in the future.

The .NET Framework allows different programming languages & libraries to work together seamlessly which is made possible by the Common Type System. Microsoft has developed a new language named c# specifically for this new platform which will not come under the scope of this article, anyway I will get you started with C# and specify, why it is the programming language most suited for the .NET platform!

What is .NET any way?

.NET is Microsoft's innovative strategy to simplify building XML Web Services and to develop, deploy, and maintain desktop, enterprise, Internet and Smart devices applications in the Internet age.

The .NET platform is thus a runtime environment on which applications coded in any of the managed languages run. It acts as a software layer between the applications written on the .NET and the operating system. For the time being, the operating systems can be any of the Windows platforms.

Cool right! To make you feel more clear and comfortable, the term .NET actually means the set of tools and technologies as follows:

DotNET.gif

Fig 1: Microsoft .NET

The .NET Framework is the keystone of Microsoft .NET. The .Microsoft's .NET vision of connecting information, people, systems, and devices is made true by the .NET Framework.

Why .NET?

The most beauty in .NET is that we don't have to learn a new language to program on the .NET platform. The platform is very much language agnostic and there are only a few syntactical issues to start programming in a language for the .NET platform.

.NET platform presents us with the following:

  • Multiple Language Development.
  • Robust runtime environment, CLR.
  • Cool Development environment, Visual Studio .NET.
  • High level of communication among applications.
  • Support for ubiquitous protocols namely SOAP, XML, HTTP, and HTML.
  • A huge and powerful class library with over 2000 classes.

And many more!

.NET Framework

The term .NET framework stands for the collection of technologies that form the development basis for the Microsoft .NET platform.

It is a development and execution environment that allows different programming languages & libraries to work together effortlessly to create Windows-based applications that are easier to build, manage, and deploy.

The major constitutes of .NET Framework are:

  • Framework Class Libraries (FCL)
  • Common Language Runtime (CLR) and
  • Common Language Specification (CLS)

DotNETFramework.gif

Fig 2: .NET Framework

The .NET Framework uses standard Internet protocols and specifications like TCP/IP, SOAP, XML, & HTTP to allow a broad range of information, people, systems, and devices to be connected.

Now let's look at the components of .NET Framework.

Framework Class Library (FCL)
The Framework class library is vast. It comprises of over 2,000 classes. The Framework Class Library consists of the following main parts:

  • The Base Class Library
  • Windows Forms
  • ASP.NET Web Forms
  • ASP.NET Web Services
  • Data and XML classes

The Base Class Library comprises Security, Networking, Diagnostics, I/O, and other types of Operating Systems services.

Common Language Specifications (CLS)
One of the important goals of .NET Framework is to support Multiple Languages. This is achieved by CLS. For multiple languages to interoperate, it is necessary that they should go on in common in certain features such as Types that are used. For e. g. Every Language has its own Size and range for different data types. Thus CLS is the agreement among language designers and class library designers concerning these usage conventions.

Common Language Runtime (CLR)
CLR is the runtime provided by .NET. It allows us to execute programs on the .NET platform.
The CLR provides:

  • Simple Application Development
  • Safety (because it does most of the runtime checking)
  • Easy Deployment
  • Multiple Languages support and
  • Good Performance

The good performance is achieved by JIT (Just-in-Time) compilation built into CLR. The first time a method is encountered; the CLR performs the verifications, calls the JIT which converts the IL into native code. The next time the method is encountered, the native code executes directly. The following will make you clearer.

The process of programming in the .NET environment is:

  1. Do the code in any .NET compliant high-level language
  2. Compile it using the corresponding language's compiler
  3. Run the IL

process.gif

Fig 3: Design of CLR

We must also be aware of some more terminologies to get started with .NET which are as follows:

Assemblies
These are a grouping of types n resources that work together as a logical unit. It consists of

  • MSIL (the Intermediate Language)
  • Meta Data (describing the types used in the program)
  • Manifest (relation ship between the elements listed in the assembly)

Manifest
A manifest describes the relationship between the elements in the assembly and to the external elements. You can use the ildasm.exe tool to disassemble an assembly.

Getting Started with C#!

Getting started with C# is very easy; if you have a little bit of programming background in OOPS and C or Java. C# is the best programming language for the .NET platform. It has been specifically designed for the .NET platform. C# takes the advantages of the .NET platform to the full. The runtime environment provided by .NET, CLR manages the execution of code and provides a lot of useful services. Not all .NET compliant languages make the most of CLR; C# utilizes CLR, the Best!


As usual, a typical starter program in C# will be as follows:

using System;
namespace ConsoleApplication1 //similar to packages in Java
{
class Class1
{
public static void Main(string[] args)
{
Console.WriteLine("Hi, Welcome to C#");
}
}
}

If we build and run the above program using Visual Studio .NET, the output in the console will be as follows:

OUTPUT.gif

Fig 4: Output Window of our simple program

We can use the ildasm.exe over the assembly of the above program for more vividness.

output2.gif

Fig 5: Invoking ILDASM

ILDASM.gif

Fig 6: Main Window of ILDASM Tool