First, it actually depends on your purpose. Do you want to deal with
web services, database access, etc? Then use .NET. If you want to deal
with Internet Explorer, shell, and things that need _more_ control
overall, then use COM.
..NET today uses COM as well. COM is something Microsoft has been using
for years and almost everything is built on COM. It's sometimes painful
to deal with COM, but it's a strong architecture actually. It'll take a
long time to bury COM.
As far as I have examined, .NET (inluding 2.0) is not suitable for
applications reusing web browser control (e.g. where is NewWindow2
handler? Any doc explaining how to return/set external dispatch?). It
doesn't mean it's _impossible_ to write those applications in .NET, but
it means you need to write interop code, etc. to work with native COM
interfaces.
..NET, however, is great for web services and database applications, and
many more types of applications. There are only a few points, as far as
I know, where .NET needs a bit more, which are mostly those
COM-dependent cases. It's a great technology.
Ismail