Relationship between COM and .NET? 
Author Message
 Relationship between COM and .NET?

Hi Ryan,

    1. .NET objects are not COM objects
    2. .NET objects can be used as COM objects by creating a COM Callable
Wrapper (CCW). This is the purpose of the tlbexp.exe tool.
    3. COM objects can be used as .NET objects through a Runtime Callable
Wrapper (RCW) created by the tlbimp.exe tool
    4. The Common Language Runtime (CLR) consists of .NET classes that, in
turn, may or may not use COM objects to implement certain technologies (e.g.
ADO).

    COM is so intrinsic to the architecture of Windows that I doubt it will
go away any time soon. In the mean time, .NET must interoperate smoothly
with COM.

Regards,
Dan


Quote:
> Hello, groups.

> Pardon my cross-posting if it bothers.

> I have 2 questions.

> 1. What does COM mean to .NET?

> 2. What does .NET mean to COM?

> Looks like simple question, but I guess not.

> I'm not asking a one's opinion. I'm asking the exact relationship.

> Thanks in advance.

> Regards,
>  Ryan



Mon, 01 Dec 2003 01:24:20 GMT  
 Relationship between COM and .NET?
    Lets not forget that .NET requires COM to run.

--
                              - Nicholas Paldino


Quote:
> Hi Ryan,

>     1. .NET objects are not COM objects
>     2. .NET objects can be used as COM objects by creating a COM Callable
> Wrapper (CCW). This is the purpose of the tlbexp.exe tool.
>     3. COM objects can be used as .NET objects through a Runtime Callable
> Wrapper (RCW) created by the tlbimp.exe tool
>     4. The Common Language Runtime (CLR) consists of .NET classes that, in
> turn, may or may not use COM objects to implement certain technologies
(e.g.
> ADO).

>     COM is so intrinsic to the architecture of Windows that I doubt it
will
> go away any time soon. In the mean time, .NET must interoperate smoothly
> with COM.

> Regards,
> Dan



> > Hello, groups.

> > Pardon my cross-posting if it bothers.

> > I have 2 questions.

> > 1. What does COM mean to .NET?

> > 2. What does .NET mean to COM?

> > Looks like simple question, but I guess not.

> > I'm not asking a one's opinion. I'm asking the exact relationship.

> > Thanks in advance.

> > Regards,
> >  Ryan



Mon, 01 Dec 2003 01:56:39 GMT  
 Relationship between COM and .NET?
No, .NET does not require COM to be present at all.
You can see .NET as a brand new technology, like Java is.
And you can focus on .NET programming without knowing COM at all.
Typelibraries of COM and tlbimp/exp make .NET/COM integration a game,
though.

--
Frederic Claux



Quote:
>     Lets not forget that .NET requires COM to run.

> --
>                               - Nicholas Paldino



> > Hi Ryan,

> >     1. .NET objects are not COM objects
> >     2. .NET objects can be used as COM objects by creating a COM
Callable
> > Wrapper (CCW). This is the purpose of the tlbexp.exe tool.
> >     3. COM objects can be used as .NET objects through a Runtime
Callable
> > Wrapper (RCW) created by the tlbimp.exe tool
> >     4. The Common Language Runtime (CLR) consists of .NET classes that,
in
> > turn, may or may not use COM objects to implement certain technologies
> (e.g.
> > ADO).

> >     COM is so intrinsic to the architecture of Windows that I doubt it
> will
> > go away any time soon. In the mean time, .NET must interoperate smoothly
> > with COM.

> > Regards,
> > Dan



> > > Hello, groups.

> > > Pardon my cross-posting if it bothers.

> > > I have 2 questions.

> > > 1. What does COM mean to .NET?

> > > 2. What does .NET mean to COM?

> > > Looks like simple question, but I guess not.

> > > I'm not asking a one's opinion. I'm asking the exact relationship.

> > > Thanks in advance.

> > > Regards,
> > >  Ryan



Mon, 01 Dec 2003 04:02:34 GMT  
 Relationship between COM and .NET?

Quote:
>     Lets not forget that .NET requires COM to run.

Why does it require COM?  And even if it does, what impact does that have?
(besides cross-platform issues).


Mon, 01 Dec 2003 03:54:20 GMT  
 Relationship between COM and .NET?
Doesn't .NET remoting leverage the DCOM standard as a transport protocol?

-Mike


Quote:
> No, .NET does not require COM to be present at all.
> You can see .NET as a brand new technology, like Java is.
> And you can focus on .NET programming without knowing COM at all.
> Typelibraries of COM and tlbimp/exp make .NET/COM integration a game,
> though.

> --
> Frederic Claux



> >     Lets not forget that .NET requires COM to run.

> > --
> >                               - Nicholas Paldino



> > > Hi Ryan,

> > >     1. .NET objects are not COM objects
> > >     2. .NET objects can be used as COM objects by creating a COM
> Callable
> > > Wrapper (CCW). This is the purpose of the tlbexp.exe tool.
> > >     3. COM objects can be used as .NET objects through a Runtime
> Callable
> > > Wrapper (RCW) created by the tlbimp.exe tool
> > >     4. The Common Language Runtime (CLR) consists of .NET classes
that,
> in
> > > turn, may or may not use COM objects to implement certain technologies
> > (e.g.
> > > ADO).

> > >     COM is so intrinsic to the architecture of Windows that I doubt it
> > will
> > > go away any time soon. In the mean time, .NET must interoperate
smoothly
> > > with COM.

> > > Regards,
> > > Dan



> > > > Hello, groups.

> > > > Pardon my cross-posting if it bothers.

> > > > I have 2 questions.

> > > > 1. What does COM mean to .NET?

> > > > 2. What does .NET mean to COM?

> > > > Looks like simple question, but I guess not.

> > > > I'm not asking a one's opinion. I'm asking the exact relationship.

> > > > Thanks in advance.

> > > > Regards,
> > > >  Ryan



Mon, 01 Dec 2003 04:25:49 GMT  
 Relationship between COM and .NET?
Frederic,

    Actually, .NET does reqiure COM to run.  Instantiating the .NET runtime
requires the use of COM.  Take a look at the following article on MSDN:

http://msdn.microsoft.com/msdnmag/issues/01/03/clr/clr.asp

    If you take a close look at the code that Figure 2 comes from, you will
realize that to start the runtime in a process, COM must be instantiated.
This would require the COM subsystem to be on the machine that the .NET
environment is being run on.

    You are right when you say that you can focus on .NET programming
without knowing COM, but that wasn't the original statement, which was:

    "Lets not forget that .NET requires COM to run."

    As you can see, this doesn't make a statement as to what the knowledge
of the programmer is, just what is required to execute code in the .NET
environment.

--
                              - Nicholas Paldino


Quote:
> No, .NET does not require COM to be present at all.
> You can see .NET as a brand new technology, like Java is.
> And you can focus on .NET programming without knowing COM at all.
> Typelibraries of COM and tlbimp/exp make .NET/COM integration a game,
> though.

> --
> Frederic Claux



> >     Lets not forget that .NET requires COM to run.

> > --
> >                               - Nicholas Paldino



> > > Hi Ryan,

> > >     1. .NET objects are not COM objects
> > >     2. .NET objects can be used as COM objects by creating a COM
> Callable
> > > Wrapper (CCW). This is the purpose of the tlbexp.exe tool.
> > >     3. COM objects can be used as .NET objects through a Runtime
> Callable
> > > Wrapper (RCW) created by the tlbimp.exe tool
> > >     4. The Common Language Runtime (CLR) consists of .NET classes
that,
> in
> > > turn, may or may not use COM objects to implement certain technologies
> > (e.g.
> > > ADO).

> > >     COM is so intrinsic to the architecture of Windows that I doubt it
> > will
> > > go away any time soon. In the mean time, .NET must interoperate
smoothly
> > > with COM.

> > > Regards,
> > > Dan



> > > > Hello, groups.

> > > > Pardon my cross-posting if it bothers.

> > > > I have 2 questions.

> > > > 1. What does COM mean to .NET?

> > > > 2. What does .NET mean to COM?

> > > > Looks like simple question, but I guess not.

> > > > I'm not asking a one's opinion. I'm asking the exact relationship.

> > > > Thanks in advance.

> > > > Regards,
> > > >  Ryan



Mon, 01 Dec 2003 04:29:16 GMT  
 Relationship between COM and .NET?


Quote:
> Instantiating the .NET runtime
> requires the use of COM.

So wouldn't it be more correct to say Microsoft's version of the .NET
runtime (not the .NET platform) requires COM?  I don't think there's any
COM restrictions that would prevent someone from creating a .NET runtime
for Linux.

--
Patrick Steele

Lead Software Architect
Image Process Design



Mon, 01 Dec 2003 04:39:20 GMT  
 Relationship between COM and .NET?
I think that it requires COM to call ADO for instance :)
It will also heavily be linked to oleaut32 and ole32 for datatypes (on the
win32 environment of course) when ported to another platform, the fun must
be that .NET is a stand-alone runtime...

Thumps up for the programmers there :)

--
Egbert Nierop

Session management for webfarms:
http://www.nieropwebconsult.nl/asp_session_manager.htm

Quote:


> >     Lets not forget that .NET requires COM to run.

> Why does it require COM?  And even if it does, what impact does that have?
> (besides cross-platform issues).



Mon, 01 Dec 2003 04:40:44 GMT  
 Relationship between COM and .NET?
AFAIK you can choose what protocol to use (the "binary" protocol is probably
DCOM but you could choose XML instead) at least from what I read...

--
Patrice Scribe



Quote:
> Doesn't .NET remoting leverage the DCOM standard as a transport protocol?

> -Mike



> > No, .NET does not require COM to be present at all.
> > You can see .NET as a brand new technology, like Java is.
> > And you can focus on .NET programming without knowing COM at all.
> > Typelibraries of COM and tlbimp/exp make .NET/COM integration a game,
> > though.

> > --
> > Frederic Claux



> > >     Lets not forget that .NET requires COM to run.

> > > --
> > >                               - Nicholas Paldino



> > > > Hi Ryan,

> > > >     1. .NET objects are not COM objects
> > > >     2. .NET objects can be used as COM objects by creating a COM
> > Callable
> > > > Wrapper (CCW). This is the purpose of the tlbexp.exe tool.
> > > >     3. COM objects can be used as .NET objects through a Runtime
> > Callable
> > > > Wrapper (RCW) created by the tlbimp.exe tool
> > > >     4. The Common Language Runtime (CLR) consists of .NET classes
> that,
> > in
> > > > turn, may or may not use COM objects to implement certain
technologies
> > > (e.g.
> > > > ADO).

> > > >     COM is so intrinsic to the architecture of Windows that I doubt
it
> > > will
> > > > go away any time soon. In the mean time, .NET must interoperate
> smoothly
> > > > with COM.

> > > > Regards,
> > > > Dan



> > > > > Hello, groups.

> > > > > Pardon my cross-posting if it bothers.

> > > > > I have 2 questions.

> > > > > 1. What does COM mean to .NET?

> > > > > 2. What does .NET mean to COM?

> > > > > Looks like simple question, but I guess not.

> > > > > I'm not asking a one's opinion. I'm asking the exact relationship.

> > > > > Thanks in advance.

> > > > > Regards,
> > > > >  Ryan



Mon, 01 Dec 2003 16:23:54 GMT  
 Relationship between COM and .NET?
The article you mentionned is interesting.

However, the figure you're talking about precisely talks about .NET and COM
integration. CorBindToRuntimeEx can be found in Windows, but does not have
to be present on another system for example.

You could perfectly imagine a .NET environment under Linux, without any COM
support. The CLR as we know it today wouldn't be complete since Interop
services probably wouldn't be present aswell.
The Win32 registry portion of the spec would also be useless.
So what ? Nobody would care : there's no components registered under Linux.

.NET is probably going to be ported to Mac and/or Linux in a few years but
COM obviously won't be ported. Software AG's port of COM to Linux required
them to re-design a part of Win32 and make a registry (libmutant). What a
pain.
This won't be the case with .NET ports.
Forget System.Win32.Registry, System.Runtime.InteropServices and so on.

--
Frederic Claux



Quote:
> Frederic,

>     Actually, .NET does reqiure COM to run.  Instantiating the .NET
runtime
> requires the use of COM.  Take a look at the following article on MSDN:

> http://msdn.microsoft.com/msdnmag/issues/01/03/clr/clr.asp

>     If you take a close look at the code that Figure 2 comes from, you
will
> realize that to start the runtime in a process, COM must be instantiated.
> This would require the COM subsystem to be on the machine that the .NET
> environment is being run on.

>     You are right when you say that you can focus on .NET programming
> without knowing COM, but that wasn't the original statement, which was:

>     "Lets not forget that .NET requires COM to run."

>     As you can see, this doesn't make a statement as to what the knowledge
> of the programmer is, just what is required to execute code in the .NET
> environment.

> --
>                               - Nicholas Paldino



> > No, .NET does not require COM to be present at all.
> > You can see .NET as a brand new technology, like Java is.
> > And you can focus on .NET programming without knowing COM at all.
> > Typelibraries of COM and tlbimp/exp make .NET/COM integration a game,
> > though.

> > --
> > Frederic Claux



> > >     Lets not forget that .NET requires COM to run.

> > > --
> > >                               - Nicholas Paldino



> > > > Hi Ryan,

> > > >     1. .NET objects are not COM objects
> > > >     2. .NET objects can be used as COM objects by creating a COM
> > Callable
> > > > Wrapper (CCW). This is the purpose of the tlbexp.exe tool.
> > > >     3. COM objects can be used as .NET objects through a Runtime
> > Callable
> > > > Wrapper (RCW) created by the tlbimp.exe tool
> > > >     4. The Common Language Runtime (CLR) consists of .NET classes
> that,
> > in
> > > > turn, may or may not use COM objects to implement certain
technologies
> > > (e.g.
> > > > ADO).

> > > >     COM is so intrinsic to the architecture of Windows that I doubt
it
> > > will
> > > > go away any time soon. In the mean time, .NET must interoperate
> smoothly
> > > > with COM.

> > > > Regards,
> > > > Dan



> > > > > Hello, groups.

> > > > > Pardon my cross-posting if it bothers.

> > > > > I have 2 questions.

> > > > > 1. What does COM mean to .NET?

> > > > > 2. What does .NET mean to COM?

> > > > > Looks like simple question, but I guess not.

> > > > > I'm not asking a one's opinion. I'm asking the exact relationship.

> > > > > Thanks in advance.

> > > > > Regards,
> > > > >  Ryan



Mon, 01 Dec 2003 16:33:17 GMT  
 Relationship between COM and .NET?
Patrice,

    You should choose one or the other based on the your needs.  If your app
is going to be a completely internal app, running on a LAN/WAN, then you
probably will benefit from using the binary protocol.  However, if you plan
on exposing your object to clients over the Internet, or want clients to be
developed in other languages/development environments, then the XML protocol
is the way to go.

--
                              - Nicholas Paldino


Quote:
> AFAIK you can choose what protocol to use (the "binary" protocol is
probably
> DCOM but you could choose XML instead) at least from what I read...

> --
> Patrice Scribe



> > Doesn't .NET remoting leverage the DCOM standard as a transport
protocol?

> > -Mike



> > > No, .NET does not require COM to be present at all.
> > > You can see .NET as a brand new technology, like Java is.
> > > And you can focus on .NET programming without knowing COM at all.
> > > Typelibraries of COM and tlbimp/exp make .NET/COM integration a game,
> > > though.

> > > --
> > > Frederic Claux


le

> > > >     Lets not forget that .NET requires COM to run.

> > > > --
> > > >                               - Nicholas Paldino



> > > > > Hi Ryan,

> > > > >     1. .NET objects are not COM objects
> > > > >     2. .NET objects can be used as COM objects by creating a COM
> > > Callable
> > > > > Wrapper (CCW). This is the purpose of the tlbexp.exe tool.
> > > > >     3. COM objects can be used as .NET objects through a Runtime
> > > Callable
> > > > > Wrapper (RCW) created by the tlbimp.exe tool
> > > > >     4. The Common Language Runtime (CLR) consists of .NET classes
> > that,
> > > in
> > > > > turn, may or may not use COM objects to implement certain
> technologies
> > > > (e.g.
> > > > > ADO).

> > > > >     COM is so intrinsic to the architecture of Windows that I
doubt
> it
> > > > will
> > > > > go away any time soon. In the mean time, .NET must interoperate
> > smoothly
> > > > > with COM.

> > > > > Regards,
> > > > > Dan



> > > > > > Hello, groups.

> > > > > > Pardon my cross-posting if it bothers.

> > > > > > I have 2 questions.

> > > > > > 1. What does COM mean to .NET?

> > > > > > 2. What does .NET mean to COM?

> > > > > > Looks like simple question, but I guess not.

> > > > > > I'm not asking a one's opinion. I'm asking the exact
relationship.

> > > > > > Thanks in advance.

> > > > > > Regards,
> > > > > >  Ryan



Mon, 01 Dec 2003 20:30:50 GMT  
 Relationship between COM and .NET?
Patrick,

    Sounds good to me! (although I'll make you a bed as to whether a
^workable^ Linux version of .NET ever comes out)

--
                              - Nicholas Paldino


Quote:


> > Instantiating the .NET runtime
> > requires the use of COM.

> So wouldn't it be more correct to say Microsoft's version of the .NET
> runtime (not the .NET platform) requires COM?  I don't think there's any
> COM restrictions that would prevent someone from creating a .NET runtime
> for Linux.

> --
> Patrick Steele

> Lead Software Architect
> Image Process Design



Mon, 01 Dec 2003 20:32:42 GMT  
 Relationship between COM and .NET?
Frederic,

    The contents of figure two show how to set up shims to load a particular
version of the runtime into memory.  In the section that Figure 2 is
attached to, you will notice the first paragraph reads:

In order to start running managed code in a process, the CLR must be loaded
and initialized and, as I just described, the host is responsible for
loading the CLR. Because all hosts must start with an unmanaged stub, the
.NET Framework provides a set of unmanaged APIs the host can use to get the
CLR running.

    Microsoft chooses COM as its unmanaged environment to load the CLR in.

    Now, the original statement was:

Lets not forget that .NET requires COM to run.

    However, it should have read (as Patrick Steele pointed out):

So wouldn't it be more correct to say Microsoft's version of the .NET
runtime (not the .NET platform) requires COM?  I don't think there's any COM
restrictions that would prevent someone from creating a .NET runtime for
Linux.

    This is more correct.

    As for .NET appearing on Linux, it is completely possible, with the
limitations that you pointed out.  Some additional limitations I can see are
the WinForms namespace as well (then again, does it really matter,
considering the kinds of programs .NET are ^really^ targeted for?).

--
                              - Nicholas Paldino


Quote:
> The article you mentionned is interesting.

> However, the figure you're talking about precisely talks about .NET and
COM
> integration. CorBindToRuntimeEx can be found in Windows, but does not have
> to be present on another system for example.

> You could perfectly imagine a .NET environment under Linux, without any
COM
> support. The CLR as we know it today wouldn't be complete since Interop
> services probably wouldn't be present aswell.
> The Win32 registry portion of the spec would also be useless.
> So what ? Nobody would care : there's no components registered under
Linux.

> .NET is probably going to be ported to Mac and/or Linux in a few years but
> COM obviously won't be ported. Software AG's port of COM to Linux required
> them to re-design a part of Win32 and make a registry (libmutant). What a
> pain.
> This won't be the case with .NET ports.
> Forget System.Win32.Registry, System.Runtime.InteropServices and so on.

> --
> Frederic Claux



> > Frederic,

> >     Actually, .NET does reqiure COM to run.  Instantiating the .NET
> runtime
> > requires the use of COM.  Take a look at the following article on MSDN:

> > http://msdn.microsoft.com/msdnmag/issues/01/03/clr/clr.asp

> >     If you take a close look at the code that Figure 2 comes from, you
> will
> > realize that to start the runtime in a process, COM must be
instantiated.
> > This would require the COM subsystem to be on the machine that the .NET
> > environment is being run on.

> >     You are right when you say that you can focus on .NET programming
> > without knowing COM, but that wasn't the original statement, which was:

> >     "Lets not forget that .NET requires COM to run."

> >     As you can see, this doesn't make a statement as to what the
knowledge
> > of the programmer is, just what is required to execute code in the .NET
> > environment.

> > --
> >                               - Nicholas Paldino



> > > No, .NET does not require COM to be present at all.
> > > You can see .NET as a brand new technology, like Java is.
> > > And you can focus on .NET programming without knowing COM at all.
> > > Typelibraries of COM and tlbimp/exp make .NET/COM integration a game,
> > > though.

> > > --
> > > Frederic Claux


le

> > > >     Lets not forget that .NET requires COM to run.

> > > > --
> > > >                               - Nicholas Paldino



> > > > > Hi Ryan,

> > > > >     1. .NET objects are not COM objects
> > > > >     2. .NET objects can be used as COM objects by creating a COM
> > > Callable
> > > > > Wrapper (CCW). This is the purpose of the tlbexp.exe tool.
> > > > >     3. COM objects can be used as .NET objects through a Runtime
> > > Callable
> > > > > Wrapper (RCW) created by the tlbimp.exe tool
> > > > >     4. The Common Language Runtime (CLR) consists of .NET classes
> > that,
> > > in
> > > > > turn, may or may not use COM objects to implement certain
> technologies
> > > > (e.g.
> > > > > ADO).

> > > > >     COM is so intrinsic to the architecture of Windows that I
doubt
> it
> > > > will
> > > > > go away any time soon. In the mean time, .NET must interoperate
> > smoothly
> > > > > with COM.

> > > > > Regards,
> > > > > Dan



> > > > > > Hello, groups.

> > > > > > Pardon my cross-posting if it bothers.

> > > > > > I have 2 questions.

> > > > > > 1. What does COM mean to .NET?

> > > > > > 2. What does .NET mean to COM?

> > > > > > Looks like simple question, but I guess not.

> > > > > > I'm not asking a one's opinion. I'm asking the exact
relationship.

> > > > > > Thanks in advance.

> > > > > > Regards,
> > > > > >  Ryan



Mon, 01 Dec 2003 20:41:43 GMT  
 Relationship between COM and .NET?


Quote:
>     Sounds good to me! (although I'll make you a bed as to whether a
> ^workable^ Linux version of .NET ever comes out)

Oh no!  I'm not taking that bet!  :)

--
Patrick Steele

Lead Software Architect
Image Process Design



Mon, 01 Dec 2003 21:18:47 GMT  
 Relationship between COM and .NET?

Quote:
>     As for .NET appearing on Linux, it is completely possible, with the
> limitations that you pointed out.  Some additional limitations I can see
are
> the WinForms namespace as well (then again, does it really matter,
> considering the kinds of programs .NET are ^really^ targeted for?).

Windows.Forms is not part of the submitted framework, so I imagine that you
would see namespaces like:

gnome.forms
osx.forms
cokemachine.forms
mobiletoaster.forms
sun.networkenabled.refrigerator.forms
flyingpigs.forms

assuming ports to the relevant platforms :)

You can get the latest ECMA docs at several places on the web, including
www.dotnetexperts.com/ecma

--
Mickey Williams
www.CodevTech.com
www.DotNetExperts.com



Mon, 01 Dec 2003 22:39:10 GMT  
 
 [ 69 post ]  Go to page: [1] [2] [3] [4] [5]

 Relevant Pages 

1. Relationship between COM and .NET?

2. Relationship between COM and .NET?

3. COM ATL Relationship ??

4. .NET: COM vs NET

5. Using a COM object in .NET that calls back to the invoking .NET class

6. com and com+ in .net

7. com and com+ in .net

8. anyway to mimick a COM server using .Net?

9. COM Interface and Callbacks in .NET?

10. Com .Net Message Queues and Console applications

11. .NET to COM Interop with VSS - Deployment Question

12. Build COM object in C++.NET

 

 
Powered by phpBB® Forum Software