Microsoft hasn’t ever had a definitive path for Outlook and Exchange development. Or at least when it seemed they did, they changed the technology in the next version while trying to maintain backward compatibility with the previous version. The result is a dizzying array of APIs and technologies to access Outlook and Exchange data for application development and design. With Exchange Server 2007, Microsoft is moving toward Web Services (HTTP, XML, SOAP, and WDSL) as the interface for developing applications. Exchange Web Services (EWS) is going to expand and improve with Exchange Server 14. As suggested in the Exchange Team blog, Microsoft will be introducing a managed API for EWS in Exchange 14.

Recently, Microsoft updated their online documentation for MAPI for Office Outlook 2007. Missing from that update is coverage of Collaboration Data Objects (CDO) version 1.2.1. CDO 1.2.1 was last shipped with Exchange Server 2003 Service Pack 2, so it makes sense not to cover it in new documentation. In addition, there isn’t a 64-bit version of CDO 1.2.1. Microsoft provides the MAPI Client and CDO 1.2.1 libraries as a separate download for now, as there are many applications out there using what is now legacy code. I ran into this recently with Quest MessageStats 6.5.1, an Exchange Server reporting application. In a native Exchange 2007 environment, the MAPI/CDO client libraries had to be installed on the MessageStats reporting server (which is not an Exchange server) first for the application to be able to gather data from the information stores. If Exchange 2003 was part of the environment, the Exchange System Manager (ESM) would provide the MAPI client subsystem for MessageStats.

So if you are updating an existing application or considering a new application, what APIs should you be considering? First and foremost, you will get the most accomplished through EWS because Microsoft is investing in its development, using it for part of Exchange 2007 and future releases, and it leverages your knowledge of existing development techniques. In Exchange 14, EWS will replace several APIs: WebDAV, CDO 3.0, ExOLEDB, and Store Event Sinks. EWS, with the help of the Outlook MAPI client and the Outlook Object Model (OOM) can also accommodate almost all of the functionality lost with the removal of MAPI/CDO 1.2.1. You can see in Figure 1 that there is a consistent solution going forward. If you are considering developing applications for Exchange and Outlook, the choice of API is getting simpler. If you maintain an application for Exchange, then your choice for upgrading that application to accommodate newer versions of Exchange Server is also clearer.