FYI: Exchange 2007 SP-1 Extensibility (Development) Updates

So Exchange 2007 SP1 is coming and you'll want review the updates and new features for Exchange developers. Ray and Mike have put together a nice walkthrough with links to the new MSDN docs.

There is a whole new topic to discuss in the way of OWA customization available in Exchange 2007 SP1. Some of the OWA customization features listed are from Exchange 2007's initial release including OWA themes and web parts. But there is new SP1 functionality that is bound to impress. 

We have a custom forms registry which replaces the old custom OWA form technology - this is not the old stuff resurrected, this is a brand new architecture for custom forms in OWA...

"Outlook Web Access in Exchange 2007 SP1 includes an XML file that is named the Custom Forms Registry. The default installation includes a template forms registry file that you can rename and then customize to fit the application. The forms registry file specifies how to handle custom content types by indicating what form to display when the user performs the actions that are indicated in the registry file.

To display a custom small icon for a content type, specify the icon file and content class in the SmallIconMapping section of the user interface customization file."

There is also the ability to enhance OWA navigation and menus including the navigation pane...

"To enhance the experience of users who are working with custom content classes, you can register new entries to the New drop-down menu. In this manner, you can enable users to create new items of a custom content class from Outlook Web Access.

To embed Web-based applications within the Outlook Web Access user interface, you can add entries to the navigation pane. This is useful when you want to provide access within Outlook Web access to applications that are loosely integrated with Exchange; for example, expense-tracking applications that store data outside the Exchange store."

Regarding the updates to Exchange Web Services in SP1, make sure to understand the impact of using versioning requests...

"Requests that do not include version headers are handled as requests from the initial release version of Exchange 2007. If the Exchange2007_SP1 version is not specified, schema validation errors might occur because the request will be validated against the initial release version of the Exchange Web Services schema instead of the Exchange 2007 SP1 version of the schema. Other errors might also occur because Exchange 2007 SP1 identifiers will be processed as identifiers for the initial release version of Exchange 2007."

... This is one of those paragraphs in MSDN documentation that is so important to understand but my taking reading a couple times to make sure you get it. Basically, you want to include the SP1 header in any request from a client that is using SP 1 features because if you don't the Exchange server will respond to use as if you are a Pre-SP1client.

...Many of these updates are the result of customer feedback and cases that my team has worked since RTM of Exchange 2007. It is awesome to see the Product Group so focused on supporting the API sets - improving and extending them with each milestone.