tags:

views:

211

answers:

3
+3  Q: 

COM and OLE

What is the difference between COM and OLE, if any ?

A: 

Sounds like an interview question. Easily discovered by Googling, http://www.google.com.au/search?rlz=1C1GGLS_enAU291AU303&sourceid=chrome&ie=UTF-8&q=difference+between+com+and+ole.

Stu Andrews
+3  A: 

COM is OLE evolved. OLE was a set of interfaces and data storage mechanisms to facilitate sharing data between applications. COM was the natural extension of using interfaces not only to share data, but runtime functionality - where the data was fronted by actual mechanisms to facilitate use. I've always pictured it roughly as the difference between C and C++, where with C, you can share header files and structures, and with C++ you share encapsulated objects.

As a bit of a soapbox, I still miss OLE Structured Storage, since there is something nice about sharing opaque data storage between collaborating systems. Seeing as drag-and-drop/clipboard still depends on it, I wonder what the .Net replacement will be?

codekaizen
A: 

The OLE technology predates COM as a separate entity by a significant amount of time. Before that, OLE was implemented as a way of Embedding and Linking Objects. The classic example is that of embedding a spreadsheet within a word document. The underlying technology of COM was enabled so that other languages such as VB could interact with those objects as well.

Then, historically, we had a lot of server type programmers which were looking on these cool things like language independence, reference counting and threading models with envy, but really didn't care too much about the embedding technology at all. The logical thing to do was to split out the underlying server functionality as COM - this was a more naturally low-level API.

Both technologies still exist. OLE is kind of linked up with or may be the same as ActiveX these days.

1800 INFORMATION