eXtropia: the open web technology company
Technology | Support | Tutorials | Development | About Us | Users | Contact Us
 ::   Tutorials
 ::   Presentations
Perl & CGI tutorials
 ::   Intro to Perl/CGI and HTML Forms
 ::   Intro to Windows Perl
 ::   Intro to Perl 5
 ::   Intro to Perl
 ::   Intro to Perl Taint mode
 ::   Sherlock Holmes and the Case of the Broken CGI Script
 ::   Writing COM Components in Perl

Java tutorials
 ::   Intro to Java
 ::   Cross Browser Java

Misc technical tutorials
 ::   Intro to The Web Application Development Environment
 ::   Introduction to XML
 ::   Intro to Web Design
 ::   Intro to Web Security
 ::   Databases for Web Developers
 ::   UNIX for Web Developers
 ::   Intro to Adobe Photoshop
 ::   Web Programming 101
 ::   Introduction to Microsoft DNA

Misc non-technical tutorials
 ::   Misc Technopreneurship Docs
 ::   What is a Webmaster?
 ::   What is the open source business model?
 ::   Technical writing
 ::   Small and mid-sized businesses on the Web

Offsite tutorials
 ::   ISAPI Perl Primer
 ::   Serving up web server basics
 ::   Introduction to Java (Parts 1 and 2) in Slovak


Introduction to Microsoft DNA
COM - The Component Object Model  
Previous Page | Next Page | Table of Contents

COM is without doubt, the center of the Microsoft universe. Few Microsoft products are not built with it.

What is COM? what is its purpose?

COM was designed to solve a number of problems that have existed for sometime, not just in the Windows sphere but also within the development and application spheres.

Code re-use is a nirvana that developers endure to achieve. However there have been very few situations where that could be realized. Take for instance an implementation of a solution in a C++ application. The developer builds generic classes to address a problem. From then on, the developer can re-use the code and can share it with others. While this looks good in theory, some problems arise in practice.

First, the new code is language specific. So, if the second developer ONLY knew Visual Basic, the newly created C++ classes would be of no use.

In COM, language independence is achieved.

Encapsulation is also a target of the COM specification. If a developer builds an object that exposes some functionality and the new code becomes publicly consumed the interfaces exposed and used cannot subsequently change. If the exposed implementation details changed we could face the real prospect of causing a problem we had strived to avoid.

By the nature of the COM specification objects provide methods to expose their implementation details and allow dynamic discovery. This enables such facilities as scripting languages to use such functionality without having to bind details in an early fashion. Coupling implementation details in such a fashion is called late binding.

One of the more important concepts of the COM model enables object implementations in the notion of location transparency. When an application calls an object's interfaces the application need not know whether the actual code is being executed locally or on a distributed machine. This location independence is provided through the use of proxy objects that sit between locations and marshals information between their instances.

Additionally, the COM specification includes implementation guidelines for transaction processing, distributed co-operation, and integrated security. Initially, COM implementations could only be targeted to Windows platforms (original COM was implemented as OLE - Object Linking and Embedding) however; other platforms are now supported by third party implementations

In the DNA methodology COM is a very important strand, involved in all the products and implemented directly, and natively, within the NT platform upon which the DNA technical implementation runs. However, DNA isn't COM alone, so we shall discuss where the other product fit and what they contribute.

Previous Page | Next Page | Table of Contents