.NET is a JITed platform like Java - compiled "Just-In-Time" which means your programs live on users computers in an intermediate language (IL) state that is compiled at runtime. The reason for this is to make your code platform independent. That's why it's so easy to decompile.
That's also why your .NET programs will use more resources and run slower than compiled executables (ever written a program in Java? They can be horribly slow...)
I read recently that Microsoft was changing the name of it's Server product from 'Microsoft .NET Server' to 'Microsoft Windows Server 2003' to eliminate confusion, but the .NET platform is here to stay.
Inheritance, Interfaces, Function overloading, Parameterized Constructors, Garbage collection, Multi-threading, Managed code, Namespaces, over 8000 classes...I just attended the .NET Summit in Houston this week and it's full steam ahead with this platform.
We discussed the fact that there has not been a service pack for VB6 even though there are some documented bugs that could have been fixed; Microsoft is going to support VB6 but there won't be any future improvements.
Also know that the major issue with VB6 today is COM. The shift to .NET is the strategy being used to move away from COM and its limitations. .NET does not use the registry to document your objects, it uses a manifest instead, which can even resolve versioning issues - no more DLL hell.
I personally love the new VB since I started with C++ and Java and have been wishing VB would catch up. At first they called it VB7 but what we ended up with really doesn't resemble VB6 that much. The cool thing though is that no matter which language you code your .NET programs in (VB.NET, C#, C++, COBOL, etc.) the IL you end up with will be the same. Visual Studio .NET is also easy to get used to and once you get familiar with the classes/functions available you can write your programs with alot less code - which means fewer bugs.
Note: No more Debug/Edit/Resume feature in .NET - sorry. It's gone. You have to edit/recompile/run, just like C++.
My opinion is that Microsoft is trying to do exactly what Sun did with Java - create a platform independent development environment, but Microsoft went a step further by creating the CLR (Common language runtime) which can be married to any language built to support it, to produce the same IL.
The supposed beauty of this platform is managed code. Once we can get to the point where all of our programs use managed code we can hopefully say goodbye to the blue screen of death caused by programs that misuse pointers.
One last observation: Maybe now VB programmers can get some respect. We have OOP. It's not a "Kiddie Language" anymore.
VBSlammer
Unemployed in Houston, Texas