1what Is
1what Is
The simple answer is 'it is the technology from Microsoft, on which all other Microsoft technologies will be
depending on in future.'.
.NET technology was introduced by Microsoft, to catch the market from the SUN's Java. Few years back,
Microsoft had only VC++ and VB to compete with Java, but Java was catching the market very fast. With the
world depending more and more the Internet/Web and java related tools becoming the best choice for the
web applications, Microsoft seemed to be loosing the battle. Thousands of programmers moved to java from
VC++ and VB. This was alarming for Microsoft and many of the Microsoft fan's kept on asking "is Microsoft
sleeping?". And Microsoft had the answer. One fine morning, they announced : "We are not sleeping. We
have the answer for you.". And that answer was .NET.
But Microsoft has a wonderful history of starting late but catching up quickly. This is true in case of .NET too.
Microsoft put their best men at work for a secret project called Next Generation Windows Services
(NGWS)., under the direct supervision of Mr. Bill Gates. The outcome of the project is what we now know as
.NET. Even though .NET has borrowed most of it's ideas from Sun's J2EE, it has really outperformed their
competitors.
Microsoft's VC++ was a powerful tool. But it was too complex. It has too many datatypes, and developers
had to learn many libraries including WIndows SDK, MFC, ATL, COM etc. There were many datatype
compatibility issues while exchanging data between different layers. Visual Basic was too easy, and many
serious programmers hated it just for that reason. Even though Visual basic was very easy to use, it was not
very flexible to develop serious applications. SUN's Java became a very good choice for these reasons. It
had the flixibility and power of C++ and at the same time easy enough to catch the attention of VB
programmers.
Microsoft recognised these factors and they introducd the .NET considering all these factors. All unwanted
complexities are eliminated and a pure object oriented programming model was introduced. This makes
programmer's life very easy.
.NET framework comes with a single class library. And thats all programmers need to learn!! Whether they
write the code in C# or VB.NET or J#, it doesn't matter, you just use the .NET class library. There is no
classes specific to any language. There is nothing more you can do in a language, which you can't do in any
other .NET language. You can write code in C# or VB.NET with the same number of lines of code, same
performance and same efficiency, because eveyone uses same .NET class library.
What is .NET ?
".NET is a framework"
Are you confused by this definition? Well, that is OK. It is really confusing!
We cannot define .NET as a 'single thing'. It is a new, easy, and extensive programming platform. It is not a
programming language, but it supports several programming languages. By default .NET comes with few
programming languages including C# (C Sharp), VB.NET, J# and managed C++. .NET is a common
platform for all the supported languages. It gives a common class library, which can be called from any of
the supported languages. So, developers need not learn many libraries when they switch to a different
language. Only the syntax is different for each language.
When you write code in any language and compile, it will be converted to an 'Intermediate Language'
(Microsoft Intermediate Language - MSIL). So, your compiled executable contains the IL and not really
executable machine language. When the .NET application runs, the .NET framework in the target computer
take care of the execution. (To run a .NET application, the target computer should have .NET framework
installed.) The .NET framework converts the calls to .NET class libraries to the corresponding APIs of the
Operating system.
Whether you write code in C# or VB.NET, you are calling methods in the same .NET class libraries. The
same .NET framework executes the C# and VB.NET applications. So, there won't be any performance
difference based on the language you write code.
Many people always get confused with Visual Studio .NET (VS.NET) and .NET technology. VS.NET is just
an editor, provided by Microsoft to help developers write .NET programs easily. VS.NET editor automatically
generates lot of code, allows developers to drag and drop controls to a form, provide short cuts to compile
and build the application etc.
VS.NET is not a required thing to do .NET programming. You can simply use a notepad or any other simple
editor to write your .NET code!!! And you can compile your .NET programs from the command prompt.
Well, what I said is true theoretically.. but if you decide to use notepad for .NET programming, by the time
you develop few sample applications, Microsoft would have introduced some other new technology and
.NET would be outdated. You may not want that. So, let us go by VS.NET, just like every other .NET guys.
In addition to this, VB.NET still support many of the old VB functions just for backward compatibility. But if
you are a serious .NET programmer, we strongly suggest never use old VB functions in VB.NET. So,
switching from VB to VB.NET is just like learning a new programming language, with very small similarities
between them.
As we mentioned in earlier chapters, it makes no much difference. Whether you write code in VB.NET or C#,
when you compile, your code will get converted to MSIL (Microsoft Intermediate language). It is this MSIL
which you deliver to your customer in the form of a DLL or EXE. The MSIL is executed by the same .NET
framework, whether you wrote it originally in C# or VB.NET.
The MSIL generated by C# and VB.NET is almost 99% is the same! Many believe that C# has the power of
C++ and VB.NET has the user friendliness of VB. That is not true. Both are equally powerfull and friendly.
VB.NET has backward compatibility with old Visual basic. So, it supports old vb functions. C# is a fresh,
clean language. So strongly support using C# instead of VB.NET just for this clean compiler.
Many old VB guys usually like to stick with VB.NET and are kind of scared of C#. We are sure that you will
not take more than few days to get familiar with C# syntax. This online tutorial is based on C# and all
samples will be provided in C#.
Is it platform independent ?
Many people ask this question "Java is platform independent, what about .NET ?".
So, if you run your .NET exe in a WIndows machine, the .NET framework for Windows will convert it into
Windows native code and execute. If you run your .NET application in Unix or Linux, the .NET framework for
Unix/Linuxwill convert your code into Unix/Linux native code and execute. So, your code is purely platform
independent and runs anywhere!
But wait, we said it wrong... there is no .NET framework for Unix or Linuxavailable now. Microsoft has written
the .NET framework only for Windows. If you or some one else write a .NET framework for other platforms in
future, your code will run there too. So, let us wait until someone write .NET framework for Linux before you
run your .NET code in Linux.
Are you sure you have a very good job now and your job is safe for next 10 years? Then, probably you don't
need to waste your time to learn this new technology.
If you are not sure about the future of your job, better spend sometime and make sure you have fuel to run
for next few years!
It all depends on how fast you can learn. If you are familiar with Visual Basic or C++, you can come to speed
in .NET within 1-2 months. If you are a new to programming, we estimate 6 months will be a reasonable
period to become comfortable with .NET world.
Future of .NET
Microsoft is moving all its technologies to be .NET based or .NET related. The next version of SQL Server
even supports writing stored procedures in .NET languages. .NET runtime will be part of all Operating
Systems by default.
In short, if you like to work on Microsoft technologies for programming, .NET would be the only choice you
will have.