Content, Management, Control Exchange Web Services APIs API for interacting with Mailbox Content • Email, Calendaring, Tasks, Contacts • Mailbox Autodiscovery • Authentication and Login •

Download Report

Transcript Content, Management, Control Exchange Web Services APIs API for interacting with Mailbox Content • Email, Calendaring, Tasks, Contacts • Mailbox Autodiscovery • Authentication and Login •

3
Content, Management, Control
Exchange Web Services APIs
API for interacting with Mailbox Content
• Email, Calendaring, Tasks, Contacts
• Mailbox Autodiscovery
• Authentication and Login
• Delegation and Impersonation
• Change Notifications
• User and Application Settings Configuration
PowerShell APIs
API for Exchange Management
• Mailbox creation
• Server Configuration
• Resource Management
Transport APIs
API for controlling the flow of content
• Access to message properties and content in transport
• Transport Rules
4
API Deprecation Roadmap
Exchange Server 2007
Exchange Server 2010
Client
CDO 1.2.1
Exchange MAPI
Client
PowerShell
Client
Outlook
Object Model
Exchange
Web Services
System.NET.Mail
Agents
Client Access Server
Outlook
MAPI
CDO 1.2.1
Exchange
Web Services
Transport APIs
EWS
Managed API
PowerShell
MAPI
Outlook Object
Model
Agents
Client Access Server
Transport Server
MAPI
Exchange MAPI
Client
Roadmap
ExOLE DB
CDOEx (3.0)
Store Events
Deemphasized
Virus Scan API
5
Mailbox Server
VSS
Deprecated
Virus Scan API
Mailbox Server
Outlook MAPI
Transport APIs
Transport Server
NonExchange API
WebDav
NET.Mail
VSS
6
The power of Web Services and .NET
NEW
For more information:
http://msdn.microsoft.com/Exchange
7
8
Calendar
• Create/Modify/Retrieve Appointments
• Retrieve Availability Information
• Suggest Best Appointment Time
• Time Zone Service
• Retrieve Available Rooms
E-mail
• Send/Retrieve/Forward/Reply Mail
• Retrieve MIME Content
• Search/Delete/Move/Copy Mail
• Folder Move/Copy/Create/Permissions
• Setting Auto-Response Message
Tasks
• Create/Delete/Update Tasks
• Search for Tasks
Contacts
• Create/Update/Delete Contacts
• Set picture
• Set all properties like e-mail addresses, phone numbers, location
• Create Contact Groups
9
10
Client Applications
Portal Applications
Service Applications
Like:
• Email Clients
• Outlook
• Entourage
• Apple Mail.app
• Free/Busy, VoiceMail, Contacts
• Microsoft Office Communicator
Like:
• Web Parts
• Shared Calendar Views
• 5 Most Recent E-mails
• PIM Systems
• Course Management
Like:
• Synchronization
• Project Server 2010
• CRM Contact Synchronization
• Notifications
• Auto-Scheduler Applications
• Room Availability
NEW
Exchange Web Services Managed API 1.1
Exchange 2010 Exchange Web Services API
Exchange 2010 SP1
Exchange 2010
Exchange 2007 SP1
Exchange 2007
• Full access to items,
folders and attachments:
• Create
• Get
• Update
• Delete
• Availability
• Out of Office settings
• Notifications
• Synchronization
• Name Resolution
• Distribution Lists Expansion
• Search
11
•
•
•
•
•
Delegate management
Folder permissions
Public folders
Post items
Id conversion
•
•
•
•
•
•
•
•
•
•
•
Full Private Distribution List support
User Configuration Objects
Folder Associated Items
Message tracking
Unified Messaging
SOAP AutoDiscover
Enhanced Time Zone support
Room resource Availability information
Indexed Search
Dumpster Access
MailTips information
•
•
•
•
•
•
•
•
•
Create, retrieve and modify Inbox Rules
Programmatic access to Archive Mailbox
Conversations Actions
Firewall traversing Notifications
Improved Administration features
Improved Mixed Version support
Throttling Protection Support
Control Application access to EWS
Client Certificate Authentication support
12
Coding in the various EWS APIs paradigms available
GetFolderType request = new GetFolderType();
<soap:Envelope>
request.FolderShape = new FolderResponseShapeType(); <s:Envelope>
<soap:Body>
<s:Body>
request.FolderShape.BaseShape = DefaultShapeNamesType.AllProperties;
<m:GetFolder>
<m:GetFolderResponse>
<m:FolderShape>
<m:ResponseMessages>
DistinguishedFolderIdType inboxId = new DistinguishedFolderIdType();
<t:BaseShape>AllProperties</t:BaseShape>
<m:GetFolderResponseMessage
inboxId.Id = DistinguishedFolderIdNameType.inbox;
</m:FolderShape>
ResponseClass="Success">
<m:FolderIds>
<m:ResponseCode>NoError</m:ResponseCode>
request.FolderIds = new BaseFolderIdType[] { inboxId };
<t:DistinguishedFolderId Id="inbox" />
<m:Folders>
Folder inbox = Folder.Bind(service, WellKnownFolderName.Inbox);
</m:FolderIds>
<t:Folder>
GetFolderResponseType response = serviceBinding.GetFolder(request);
</m:GetFolder>
<t:FolderId Id="..." ChangeKey="..." />
FolderInfoResponseMessageType responseMessage =
</soap:Body>
<t:FolderClass>IPF.Note</t:FolderClass>
response.ResponseMessages.Items[0] as FolderInfoResponseMessageType;
</soap:Envelope>
<t:DisplayName>Inbox</t:DisplayName>
...
</t:Folder>
if (responseMessage.ResponseClass == ResponseClassType.Success)
</m:Folders>
{
</m:GetFolderResponseMessage>
FolderType inbox = responseMessage.Folders[0] as FolderType;
</m:ResponseMessages>
}
</m:GetFolderResponse>
</s:Body>
</s:Envelope>
Increased Productivity
Raw XML
Auto-generated proxies
EWS Managed API
“After working with Exchange for about 10 years I can say that this is by far the most intuitive and easy to
•use
Cross-platform
• Multiple
platforms
• Windows
only using
(.NET 3.5)
API ever and developers who never
worked
with Exchange before have little
trouble
it. “
• No client-side logic
• Class-based access
• Fully Object Oriented
– Fortune 500 Financial Services Company
Developer
• Manual plumbing
• No client-side logic
• Smart client-side logic
13
Streaming Notifications
OpenStreamingConnection Request
Notification
Subscription
Subscription Request
Event Data
Subscription Response
Client Application
Exchange 2010
SP1
Client Access
Server
Exchange
2010 SP1
Mailbox
Server
16
Roadmap for Exchange Cloud Development
Traditional Development
• Exchange on Premise
• Applications on Premise
Hybrid S+S Software
• Exchange in the cloud (Exchange Online)
• Applications on Premise
Pure Cloud Development
• Exchange in the Cloud (Exchange Online)
• Applications in the Cloud (Azure)
17
AppServer verifies John’s
identity
John
“John” authenticates with
http:/appserver
Client Application
Server
AppServer granted the
ApplicationImpersonation
role to John’s department
AppServer$\
NetworkService
Impersonating “John”
Request for calendar data
made “as” John
Exchange 2010
Client Access
Server
Exchange
2010
Mailbox
Server
Area
Exchange 2010 On- Premises
Exchange 2007 Service
Exchange 2010 Service
URL Discovery
AutoDiscover
AutoDiscover
AutoDiscover
Authentication
Windows Integrated
Windows Integrated
HTTP Basic
Authorization
Delegation
Application Impersonation
Delegation
Delegation
Application Impersonation
Throttling
N/A
Service Level
Service and User Level
You have learned…
http://microsoft.com/online
http://msdn.microsoft.com/en-us/library/bb204119(EXCHG.80).aspx
Download the Exchange Web Services Managed API 1.0
http://blogs.msdn.com/exchangedev/
Building Communications Enabled Business Processes with Microsoft
Communications Server “14”
UNCS 322: The New Microsoft Communicator “14” SDK: Integrating, Extending
and Adding Contextual Data to the New Communicator Experience
UNC 401: Advanced SIP-Based Solutions Built on the Microsoft Unified
Communications Managed API 3.0 and Microsoft Communications Server
“14”
TechEd Online
microsoft.com/communicationsserver
Technical Library
NextHop
Partner Link
Customer Link
Exchange 2010 SP1 Beta download
DrRez on Twitter
Communications Server
Exchange Server
www.microsoft.com/teched
www.microsoft.com/learning
http://microsoft.com/technet
http://microsoft.com/msdn
Sign up for Tech·Ed 2011 and save $500
starting June 8 – June 31st
http://northamerica.msteched.com/registration
You can also register at the
North America 2011 kiosk located at registration
Join us in Atlanta next year