What is it? As I understood it's a kind of Microsoft special technology for some objects. But what exactly?

link|improve this question

79% accept rate
feedback

3 Answers

up vote 2 down vote accepted

It's basically an old technology used for writing programs in the Windows environment. It's big and complex and wasn't enjoyable to manage/support. The .NET framework is its replacement.

link|improve this answer
aren't COM objects used in .NET framework? – Sergey Apr 21 '11 at 17:37
2  
They can be called from .NET, but they are a completely different system. It's called COM Interop. You can explore them a bit on your computer - under Control Panel >> Administrative Tools >> Component Services. – MorganTiley Apr 21 '11 at 20:00
COM isn't going anywhere any time soon. It's extensively used by Microsoft's own products. I think it's therefore a bit misleading that you call it "basically an old technology". Yes, it was first introduced in the early 90s, so technically it is "old" in the sense that it's been around a while, but you need to take care not to indicate that it is obsolete or outdated. – Cody Gray Apr 17 at 3:10
feedback

A COM object is basically a black box that implements some known interface. It can also register itself with Windows so that programs can get a hold of it.

For example, let's say there is some interface ICalculator, that I write my program to use. I can now swap in any object, written in any programming language (since it is a binary interface) that implements ICalculator. Then at runtime, I can provide some sort of option to my users so that they can choose to use the FooCorpCalculator COM object, written in Python, or perhaps if they need more speed they can choose a NinjaCalculator written in C. The point is, I write my program to depend on an interface, not an implementation, and then choose to use the actual COM object that implements the interface later.

There's a lot more to it, of course, but that may be an example that makes it more concrete for you.

link|improve this answer
feedback

See this Wikipedia article: Component Object Model

Component Object Model (COM) is a binary-interface standard for software componentry introduced by Microsoft in 1993. It is used to enable interprocess communication and dynamic object creation in a large range of programming languages. The term COM is often used in the Microsoft software development industry as an umbrella term that encompasses the OLE, OLE Automation, ActiveX, COM+ and DCOM technologies.

A COM object is often implemented in a DLL file. They can be used by programs for a variety of functions. The term "object" as used here refers to objects in object-oriented programming.

link|improve this answer
1  
that's why I asked this question. because the Wikipedia didn't answer it. The definition is very abstract and I don't see any real example. – Sergey Apr 21 '11 at 17:24
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.