When the .NET Framework was first introduced, some uninformed journalists interpreted it as the death of COM. This is completely incorrect. COM is not going anywhare for a while.In fact, windows will not boot without COM. .NET integrates very well with COM base software. Any COM component can be treated as .NET comoponent by native .NET components. The .NET framework wrapes COM component and exposes an interface that .NET components can work with. This is absolutely essential to the quick acceptance of .NET, because it makes .NET interoperable with with tremendous amount of older COM based software.
Going in the other direction, the .NET Framework can expose .NET components with a COM interface. This allows older COM components to use .NET based components as if they were developed using COM. It is important, however, to understand the native .NET components do not interface using COM. The CLR implements a new way for components to interface, one that is not COM based. Use of COM is only necessary when interfacing to COM components produced by non .NET tools.
Over a long span of time, the fact that .NET does not use COM internally may lead to the decline of COM but this is for the very long term.For immediate purposes, COM is definately important.
I recommend using VB6 for COM components and C# for .NET components so you don't confuse the two different VBs (VB6 and VB.NET).
One other thought I'd like to share is the issue of transition to Microsoft's .NET. At the time this article was published, Beta 2 had just been released and books, magazines, and conferences have all dedicated themselves to the .NET environment. I'm very happy with C# and have already started coding an application for the .NET environment. One question on my mind was answered at recent conference. Simply stated,the recommendation was to use C# for .NET component development and stay exclusively with VB for COM development. Not mixing the new and old VBs hits a chord with me and I wanted to pass it on to any readers who may share the same intuitions I have about the future direction of server-side component development. COM components written with VB6 will be necessary for quite a while and the thought of having to keep track of two versions of VB inside my head is disconcerting, to say the least.I, for one, will use be using C# for .NET server-side component development and VB6 for server-side COM development.
Also see what DotNetNut.com says.. Q: I heard COM is dead, is that true? A: No, not exactly. The .NET framework and the Common Language Runtime do not rely on COM. In .NET, the objects that you write are not COM objects, and do not have to be registered or unregistered. This removes COM from the picture, but .NET can consume consume COM components and .NET components can be consumed through COM, but doing so requires some extra work.