Another reason, which may have been mentioned already, is .NET is slower,
for one obvious reason. Current Windows is build in unmanaged code, so, .NET
code must run in an AppDomain. Doing that requires the creation of a seperate
environment for that code, and, must then use .NET's internal interop to turn
it into unmanaged code, then finally machine code the computer can process
outside of the AppDomain. However, when Longhorn is released, It will go from
managed code directly to machine code, skipping any interop. In today's date,
that is just extra work, when using Forms at least. Web Applications on the
other hand, are a different matter. Look at Microsoft's Web Site. You can see
for the most part, they are porting it to ASP.NET. It isn't limited to
console applications. However, there are little programs Microsoft has made
with .NET. Like the "Time Zone Utility", you can see that in Downloads. We
are talking about a massive code shift. It it hailed as a revolution.
Revolutions take time to go into effect. Unmanaged code will be around for
decades, maybe longer. I still see Applications written in COBOL and Turbo
PASCAL. Even though .NET is really nice to use, why re-write a program with
Managed Code if the Unmanaged code is equally is good? Interop will always be
a part of .NET In a sense, Interop is what makes .NET famous. It was hailed
because it was a major update, and it didn't require a complete abandon of
old code.