Date post: | 31-Mar-2015 |
Category: |
Documents |
Upload: | shyann-lampshire |
View: | 221 times |
Download: | 4 times |
Exchange Web Services Managed APIUnified Communications Development For Exchange
Jason HendersonSenior Program ManagerMicrosoft 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
Traditional Software Development•Exchange on Premises•Applications on Premises
Hybrid S+S Software Development•Exchange in the cloud (Exchange Online)•Applications on Premises
Pure S+S Development•Exchange in the Cloud (Exchange Online)•Applications in the Cloud (Strata)
Com
plex
ity Control
Exchange N-Tier Architecture
Exchange 2000/2003Mailbox Server
Exchange 2007Mailbox Server
Exchange 2007Client Access Server
CDOExExoleDBCDO 1.2.1
Windows Client
Exchange Web Services
X-Platform Client
Exchange 2000/2003
Exchange 2007
WebDAV
WS-* RPC
RPC HTTP
Simplifying The API Matrix
Developer Microsoft
Outlook interop responsibility
Intr
anet
Inte
rnet
Rem
ote
acce
ss fr
om
MAPI CDO 1.2.1
Loca
l A
cces
s
OleDB CDO for Exchange
WebDAV Exchange Web Services
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 2007
Create, get, update, delete items, folders and attachments
Utilities• ResolveNames• ExpandDL
AvailabilityOOF settings
Delegate managementFolder permissions
Public foldersPost items
OWA/Availability Id conversion
Exchange 2007 Service Pack 1
Business logic layer (shared with Outlook Web Access)
Exchange mailboxesPublic folders
Auto-generated proxies, raw XML
HTTP/SOAP HTTP/SOAP
EWS Managed APIor
GetFolderType request = new GetFolderType();request.FolderShape = new FolderResponseShapeType();request.FolderShape.BaseShape = DefaultShapeNamesType.AllProperties;
DistinguishedFolderIdType inboxId = new DistinguishedFolderIdType();inboxId.Id = DistinguishedFolderIdNameType.inbox;request.FolderIds = new BaseFolderIdType[] { inboxId };
GetFolderResponseType response = serviceBinding.GetFolder(request);FolderInfoResponseMessageType responseMessage =
response.ResponseMessages.Items[0] as FolderInfoResponseMessageType;
if (responseMessage.ResponseClass == ResponseClassType.Success){ FolderType inbox = responseMessage.Folders[0] as FolderType;}
Folder inbox = Folder.Bind(service, WellKnownFolderName.Inbox);
Did You Say Easy?
Raw XML• Cross-platform• No client-side logic• Manual plumbing
Auto-generated proxies• Multiple platforms• Class-based access• No client-side logic
EWS Managed API• Windows only (.NET 3.5)• Fully Object Oriented• Smart client-side logic
<s:Envelope> <s:Body> <m:GetFolderResponse> <m:ResponseMessages> <m:GetFolderResponseMessage
ResponseClass="Success"> <m:ResponseCode>NoError</m:ResponseCode> <m:Folders> <t:Folder> <t:FolderId Id="..." 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>
<soap:Envelope> <soap:Body> <m:GetFolder> <m:FolderShape> <t:BaseShape>AllProperties</t:BaseShape> </m:FolderShape> <m:FolderIds> <t:DistinguishedFolderId Id="inbox" /> </m:FolderIds> </m:GetFolder> </soap:Body></soap:Envelope>
Increased Productivity
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
Item Class HierarchyItem
Appointment
EmailMessage
MeetingMessage
MeetingRequest
MeetingRespons
e
MeetingCancella
tion
Contact Task PostItem
Folder Class Hierarchy
Folder
CalendarFolder
ContactFolder TaskFolder SearchFold
er
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 [email protected] with your contact information and subject line: UC VPC Download Request
PDC UC Sessions
Session TitleSpeaker Name/s Date Timeslot Location
BB09 - Office Communication Server and Exchange: Platform Futures
Chris Mayo; David
Ollason 10/27/20081:45 PM to
3:00 PM Room 408A
BB45 - Office Communications Server
2007 R2: Enabling Unified Communications
Oscar Newkerk;
David Ollason 10/27/2008
5:15 PM to 6:30 PM Room 406A
BB46 - Exchange Web Services Managed API:
Unified Communications Development for Microsoft
ExchangeJason
Henderson 10/30/20088:30 AM to
9:45 AM Room 408B
Appendix
© 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.