Last week, I delved into to the world of Exchange 2000 Server as a development platform. I did this as much for myself (to learn this stuff) as I did for readers. I discussed the foundation of the Exchange 2000 development platform (the Web Store) and the primary method of access (OLE DB). This week, I conclude this topic with a look at ActiveX Data Objects (ADO) and Collaboration Data Objects (CDO).
In continuing up the Exchange 2000 access hierarchy I discussed last week, ADO is layered on top of OLE DB and is both a consumer and a partner of OLE DB. Together, they provide complete Web Store navigation. This architecture lets traditional data consumers (using existing toolsets) access Exchange 2000 with reduced development complexity. ADO is a high-level interface into OLE DB that allows scripted access via C++, Visual Basic (VB), and VBScript. ADO is designed for Web-based client/server applications and provides a high-performance and easy-to-use object model. Exchange 2000 supports ADO 2.5, which has new features such as URL addressing and hierarchical navigation to all data in the store. The ADO object model appears simple because it consists of merely seven objects: connection, command, property, recordset, parameters, field, and errors.
The next layer in the access hierarchy to Exchange 2000 data is CDO. CDO is a set of objects (messaging, calendaring, contacts) that enable development of collaborative solutions. CDO is confusing because several CDO versions are available, and they aren't necessarily interoperable or compatible. The original version, CDO 1.2, which Microsoft made available in Exchange 5.5/Outlook 98, is Messaging API (MAPI) based. There is also a different CDO 1.2 for Windows NT that is Internet protocol based. Finally, CDO 3.0, delivered in Exchange 2000 and Windows 2000, provides one unified object model that works on both the client and server side (although the client side won't be available for some time yet). CDO 3.0 for Win2K delivers some core messaging functionality (SMTP transport and Network News Transfer Protocol—NNTP), but it's further enhanced when Exchange 2000 is installed (CDO 3.0 for Exchange 2000 is actually a superset of CDO 3.0 for Win2K that exposes mailboxes and public folders). CDO 3.0 is not an upgrade to CDO 1.2, but MAPI applications should continue to run under the new version because the CDO 1.2 library is provided for backward compatibility. CDO 3.0 provides support for Internet protocol-centric access via standards and protocols such as MIME, HTML, ICal, vCard, SMTP, Lightweight Directory Access Protocol (LDAP), and NNTP.
OLE DB and ADO provide access to data in the Exchange 2000 Web Store. CDO builds on this access layer by providing objects that present the logic and behavior of the data. If you plan to extend your Exchange deployment beyond core messaging functionality, you need to understand this hierarchical access model that Microsoft provides in Exchange 2000 and Win2K.