200 likes | 387 Views
Exchange Web Services Managed API Unified Communications Development For Exchange. Jason Henderson Senior Program Manager Microsoft Corporation. Agenda. Software plus services Microsoft Exchange 2007 Architecture Microsoft Exchange 2007 APIs “Cloud Ready” Exchange Web Services
E N D
Exchange Web Services Managed APIUnified Communications Development For Exchange Jason Henderson Senior Program Manager Microsoft Corporation
Agenda • Software plus services • Microsoft Exchange 2007 Architecture • Microsoft Exchange 2007 APIs • “Cloud Ready” • Exchange Web Services • Overview • Drilldown • Exchange Web Services Managed API
Moving Exchange Into The Cloud Complexity Control
Exchange 2000/2003Mailbox Server Exchange 2007Mailbox Server Exchange N-Tier Architecture CDOEx ExoleDB WebDAV CDO 1.2.1 Exchange 2000/2003 HTTP RPC Windows Client Exchange Web Services Exchange 2007 RPC WS-* X-Platform Client Exchange 2007Client Access Server
Simplifying The API Matrix Outlook interop responsibility Developer Microsoft OleDB CDO for Exchange Local Access CDO 1.2.1 MAPI Intranet Remote access from WebDAV Exchange Web Services Internet
Exchange Web ServicesOverview • Open Standards-based protocol • XML/SOAP/WSDL-based Web Service • Implements Exchange/Outlook business logic • Strongly typed access • Message/tasks/contacts/calendar/folders • Workflow • Free/busy • Suggested meeting times • Accepting/sending/updating meeting requests • Delegation and permissions • Replying to messages • Notifications • Synchronization
EWS Overview Exchange mailboxes Public folders Business logic layer (shared with Outlook Web Access) Public folders Post items Create, get, update, delete items, folders and attachments Availability OOF settings • Utilities • ResolveNames • ExpandDL Delegate management Folder permissions OWA/Availability Id conversion Exchange 2007 Exchange 2007 Service Pack 1 HTTP/SOAP HTTP/SOAP Auto-generated proxies, raw XML EWS Managed API or
Did You Say Easy? GetFolderType request = new GetFolderType(); request.FolderShape = new FolderResponseShapeType(); request.FolderShape.BaseShape = DefaultShapeNamesType.AllProperties; DistinguishedFolderIdTypeinboxId = new DistinguishedFolderIdType(); inboxId.Id = DistinguishedFolderIdNameType.inbox; request.FolderIds = new BaseFolderIdType[] { inboxId }; GetFolderResponseTyperesponse = serviceBinding.GetFolder(request); FolderInfoResponseMessageTyperesponseMessage = response.ResponseMessages.Items[0] as FolderInfoResponseMessageType; if (responseMessage.ResponseClass == ResponseClassType.Success) { FolderTypeinbox = responseMessage.Folders[0] as FolderType; } <soap:Envelope> <soap:Body> <m:GetFolder> <m:FolderShape> <t:BaseShape>AllProperties</t:BaseShape> </m:FolderShape> <m:FolderIds> <t:DistinguishedFolderIdId="inbox" /> </m:FolderIds> </m:GetFolder> </soap:Body> </soap:Envelope> <s:Envelope> <s:Body> <m:GetFolderResponse> <m:ResponseMessages> <m:GetFolderResponseMessage ResponseClass="Success"> <m:ResponseCode>NoError</m:ResponseCode> <m:Folders> <t:Folder> <t:FolderIdId="..." ChangeKey="..." /> <t:FolderClass>IPF.Note</t:FolderClass> <t:DisplayName>Inbox</t:DisplayName> ... </t:Folder> </m:Folders> </m:GetFolderResponseMessage> </m:ResponseMessages> </m:GetFolderResponse> </s:Body> </s:Envelope> Folder inbox = Folder.Bind(service, WellKnownFolderName.Inbox); Increased Productivity Raw XML Auto-generated proxies EWS Managed API • Cross-platform • No client-side logic • Manual plumbing • Multiple platforms • Class-based access • No client-side logic • Windows only (.NET 3.5) • Fully Object Oriented • Smart client-side logic
Exchange Web Services Managed APIDesign Goals • Exchange development is easy! • Object oriented design • Smart client features • AutoDiscover built in • Expose full power of web services • Batch processing • Delegate Access • Custom Properties • Cloud/On-Premises same code
Let’s Start Coding! • Initialize the service • Authentication • Windows integrated • Basic • Use AutoDiscover • Locate service endpoint • Bootstrap on smtpaddress
Calendaring • Rich Calendaring Support • Retrieve/Create appointments • Recurring meetings • Recurrence expansion • Meeting Requests • Accept/tentative/decline/update/cancel • Automatically send responses/updates • Free/Busy views • Meeting suggestions
Recap • Always use AutoDiscover to boostrap based on mailbox address • Use Tracing to understand underlying SOAP protocol • Use FindAppointments/FindItems to efficiently query and retrieve Items • Use Load*/Bind to retrieve streamed and calculated properties
Call To Action • Learn about Exchange Online • http://microsoft.com/online • Learn more about Exchange Web Services • MSDN • http://msdn.microsoft.com/en-us/library/bb204119(EXCHG.80).aspx • “Inside Microsoft Exchange 2007 Web Services” • Hands On Lab • http://blogs.msdn.com/exchangedev/ • Watch for the Managed API Beta Release • Fill out session evaluations
Final Slide For PDC Presentations • Are you interested in receiving the VPCs for Microsoft Exchange 2007 and Microsoft Office Communications Server 2007 R2 after RTM in early 2009? If yes, please email ucvpc@microsoft.com with your contact information and subject line: UC VPC Download Request
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.