The Evolution of Exchange Development…
The Exchange Developer Roadmap has been discussed by more authoritative sources before leading up to the release of Exchange 2010. I’d like to revisit this roadmap and take it from where Jason left off, going forward into Exchange Online in Office 365. For enterprise customers this is important to understand – if you are upgrading from Exchange 2003 to 2010 or Online then many applications that touch Exchange today will require an upgrade to the “modern” Exchange APIs. For an ISV looking at these API sets will help you understand what APIs you need to leverage to support the versions of Exchange you’re targeting.
When I talk about this roadmap or evolution of Exchange development, I typically do so by grouping the APIs in six categories:
Group Name | APIs used to… |
Client | …build clients including synchronization |
Notification | …get notifications or changes |
Management | …perform management tasks |
Backup | …backup Exchange mailbox data |
Transport | …inject custom logic into the transport and routing stack of Exchange |
OWA | …extend, customize, or reuse Outlook Web Access/App |
Let’s take a high-level walk through these groups from Exchange 2003 to Exchange 2010 and see how the APIs evolve over time and how they are different between on-premises and online…
Exchange 2003:
Group | APIs |
Client | MAPI * , CDO 1.21, Incremental Change Synchronization (ICS), WebDAV, ExOLEDB, CDOEX |
Notification | Exchange Store Events, WebDAV notifications |
Management | CDOEXM, Exchange WMI |
Backup | Exchange Streaming Backup and Restore API, VSS |
Transport | SMTP Event Sinks |
OWA | Web forms |
* All references to MAPI are in the context of Exchange’s MAPI provider which was removed from the product in Exchange 2007 completely. However, the Exchange 2003 version has been made available as a separate download for some time now although the support lifecycle is tied to Exchange 2003’s
Exchange 2007:
Group | APIs |
Client | WebDAV, ExOLEDB, CDOEX, Exchange Web Services (EWS) |
Notification | Exchange Store Events, WebDAV notifications, EWS Notifications |
Management | Exchange PowerShell |
Backup | VSS |
Transport | Transport Agents |
OWA | Forms Registry, UI Customization, Web Parts |
Exchange Online (BPOS):
Group | APIs |
Client | Exchange Web Services (EWS) * |
Notification | EWS Notifications |
Management | BPOS PowerShell ** |
Backup | none |
Transport | none |
OWA | none |
* Because Exchange Online in BPOS is based on Exchange 2007, the Exchange Impersonation configuration requires configuration of the CAS server as well as permissions on mailboxes. For this reason, Exchange Impersonation cannot be configured on BPOS Standard (BPOS-S).
** The BPOS PowerShell cmdlets are mainly provided for migration scenarios and not general management
Exchange 2010:
Group | APIs |
Client | Exchange Web Services (EWS) |
Notification | EWS Notifications * |
Management | Exchange PowerShell |
Backup | VSS, EWS (ExportItems/UploadItems) ** |
Transport | Transport Agents |
OWA | Forms Registry, UI Customization, Web Parts |
* Streaming notifications were added in Exchange 2010 and provide a critical balance between firewall friendly push notifications and the “real-enough-time-ness” of push notifications. ** Added in Exchange 2010 SP1
Exchange Online (Office 365):
Group | APIs |
Client | Exchange Web Services (EWS) |
Notification | EWS Notifications |
Management | Exchange PowerShell * |
Backup | EWS (ExportItems/UploadItems) |
Transport | Forefront Online Protection for Exchange (FOPE) |
OWA | none |
* Within the constraints of what management is allowable in general by an individual tenant in Office 365
I’ll get into more detail about this evolution with a discussion of online service descriptions in the coming weeks. I’ll also talk about how the features and APIs available in each version affect product planning for ISVs that want to support Exchange Online as well as Exchange on-premises.