exchange deployment planning services exchange 2010 developer platform

30
Exchange Deployment Planning Services Exchange 2010 Developer Platform

Upload: hilda-powell

Post on 24-Dec-2015

234 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Exchange Deployment Planning Services Exchange 2010 Developer Platform

Exchange Deployment Planning Services

Exchange 2010 Developer Platform

Page 2: Exchange Deployment Planning Services Exchange 2010 Developer Platform

Agenda

• Exchange as a platform• Exchange Web Services• Exchange PowerShell• Exchange Transport APIs• API changes in Exchange 2010• Resources

Page 3: Exchange Deployment Planning Services Exchange 2010 Developer Platform

Exchange API Evolution

1992 1995 1996 1997 2000 2001 2003 20061998

MS Mail 3.0• Simple MAPI

1.0

Windows 95• Extended MAPI

Exchange 4.0• Directory API• Electronic Forms Designer• Exchange Developer Kit

Gateway API• OLE Messaging 1.0a (a.k.a. CDO

1.0a)• Common Messaging Calls 1.0

Exchange 5.0• Active

Messaging 1.1 (a.k.a. CDO 1.1)

Exchange 5.5• Collaborative Data Objects 1.2• CDO Rendering Library

(CDOHTML)• Event Service Agents

NT Option Pack 4.0

• CDO for Windows NT (CDONTS)

Exchange 5.5 SP1• CDO 1.2.1• Routing Objects• HTML Forms

Converter

Exchange 5.5 SP3

• Virus Scanning API 1.0

Exchange 2000 Server• Backup and Restore API (a.k.a.

ESEdbcli2)• CDO for Exchange 2000 Server

(CDOEx)• CDO for Exchange Management

(CDOExM)• CDO for Workflow• Exchange Installable File System• Exchange OLEDB provider (ExOLEDB)• WSS Forms + FrontPage Extensions • OWA URL commands• Queue Viewer API• Store Events• WebDAV • WMI classes for Exchange

management• Workflow Designer for Exchange

2000 Server

Windows 2000• CDO for Windows 2000

(CDOSYS)• SMTP Transport Events

Exchange 2000 Server SP1

• Virus Scanning API 2.0

Exchange Server 2003• Virus Scanning API

2.5

2009

Exchange 2007• Exchange Web

Services• PowerShell• Transport APIs

Exchange 2010• Exchange Web

ServicesManaged API 1.0

• Remote PowerShell

Page 4: Exchange Deployment Planning Services Exchange 2010 Developer Platform

The Exchange 2010 PlatformContent, Management, Control

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

Exchange Web Services APIs

API for Exchange Management• Mailbox creation• Server Configuration• Resource Management

PowerShell APIs

API for controlling the flow of content • Access to message properties and content in transport

Transport APIs

Page 5: Exchange Deployment Planning Services Exchange 2010 Developer Platform

5

Exchange Web Services

Rich Experience− Enables full client functionality− Application logic consistent

with Outlook

Easy to Use− .NET-based EWS Managed API 1.0− Full Visual Studio support

Online-Ready− Single API for Server and Online

The power of Web Services and .NET

NEW

For more information:http://msdn.microsoft.com/Exchange

Page 6: Exchange Deployment Planning Services Exchange 2010 Developer Platform

EWS Functionality EnhancementsExposing the full power of Exchange through the APIs

Exchange Server 2007

• Full access to items, folders and attachments:

• Create• Get• Update• Delete

• Availability• OOF settings• Notifications• Synchronization• Name Resolution• Distribution Lists Expansion• Search

• Delegate management• Folder permissions• Public folders• Post items• ID conversion

Exchange 2010 Exchange Web Services API

• MailTips information• Full Private Distribution List support

• Get Service Configuration• User Configuration Objects• FAIs• Unified Messaging (exposed through the EWS endpoint)

• SOAP-based AutoDiscover• Message tracking• Windows Live ID integration• Contact and Calendar folder sharing

• Enhanced Time Zone support• Room resource availability information

• Indexed Search• Dumpster Access

Exchange Web Services Managed API 1.0

Exchange Server 2007 SP1

Exchange 2010NEW

NEW

Page 7: Exchange Deployment Planning Services Exchange 2010 Developer Platform

EWS Functionality EnhancementsExposing the full power of Exchange through the APIs

Exchange Server 2007

• Full access to items, folders and attachments:

• Create• Get• Update• Delete

• Availability• OOF settings• Notifications• Synchronization• Name Resolution• Distribution Lists Expansion• Search

• Delegate management

• Folder permissions• Public folders• Post items• ID conversion

Exchange 2010 Exchange Web Services API

• MailTips information• Full Private Distribution List

support• Get Service Configuration• User Configuration Objects• FAIs• Unified Messaging

(exposed through the EWS endpoint)

• SOAP-based AutoDiscover• Message tracking• Windows Live ID integration• Contact and Calendar Folder

sharing• Enhanced Time Zone support• Room resource Availability

information• Indexed Search• Programmatic access to

Dumpster

Exchange Web Services Managed API 1.1

Exchange Server 2007 SP1

Exchange 2010 SP1

Exchange 2010

• Create, retrieve, and modify Inbox Rules• Programmatic access to Archive Mailbox• Firewall traversing Notifications• Improved Administration features• Improved Mixed Version support  • Throttling Protection Support• Control Application access to EWS • Client Certificate Authentication support

NEW

NEW

Page 8: Exchange Deployment Planning Services Exchange 2010 Developer Platform

EWS 2010 Application Functionality

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

E-mail• Send/Retrieve/Forward/Reply Mail• Retrieve MIME Content• Search/Delete/Move/Copy Mail• Folder Move/Copy/Create/Permissions• Setting Auto-Response Message

Calendar• Create/Modify/Retrieve Appointments• Retrieve Availability Information• Suggest Best Appointment Time• Time Zone Service• Retrieve Available Rooms

Page 9: Exchange Deployment Planning Services Exchange 2010 Developer Platform

Client ApplicationsLike:• Email Clients

• Outlook• Entourage

• Free/Busy • Microsoft Office

Communicator

Service ApplicationsLike:• Synchronization

• CRM Contact Synchronization

• Notifications• Auto-Scheduler

Applications• Mailer Applications

Sample Application Models Using EWS

Portal ApplicationsLike:• Web Parts

• Shared Calendar Views

• 5 Most Recent E-mails

• PIM Systems• Course Management• Room Availability

Page 10: Exchange Deployment Planning Services Exchange 2010 Developer Platform

Client ApplicationsEntourage 2008

Entourage 2008 - www.microsoft.com/mac/products/entourage2008/

Page 11: Exchange Deployment Planning Services Exchange 2010 Developer Platform

Portal ApplicationsConference Room Booking Application

Page 12: Exchange Deployment Planning Services Exchange 2010 Developer Platform

Service ApplicationsConference Room Appointment Display

Page 13: Exchange Deployment Planning Services Exchange 2010 Developer Platform

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;}

<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>

Folder inbox = Folder.Bind(service, WellKnownFolderName.Inbox);

Easy: EWS Managed API Simplifies CodingCoding in the various EWS APIs paradigms available

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

Increased Productivity

“After working with Exchange for about 10 years  I can say that this is by far the most intuitive and easy to use API ever and developers who never worked with Exchange before have little trouble using it. “ – Denis Khodak - Morgan Stanley

Page 14: Exchange Deployment Planning Services Exchange 2010 Developer Platform

Sending An Email

ExchangeService service = new ExchangeService(); service.AutodiscoverUrl(“[email protected]");

EmailMessage message = new EmailMessage(service);message.Subject = "Email Subject";message.Body = "The is the email body";message.ToRecipients.Add("[email protected]");message.ToRecipients.Add("[email protected]"); message.SendAndSaveCopy(WellKnownFolderName.SentItems);

Code sample with the Exchange Web Services Managed API 1.0

Page 15: Exchange Deployment Planning Services Exchange 2010 Developer Platform

Moving Exchange into the CloudRoadmap for Exchange Cloud Development

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)

Traditional Development• Exchange on Premise• Applications on Premise

Exchange

2007 SP1

Exchange

2010

Exchange

2010+

Page 16: Exchange Deployment Planning Services Exchange 2010 Developer Platform

PowerShell in Exchange

• Exchange server configuration• User administration

− User/resource management− Mailbox creation/modification

• Distribution list creation/modification• Public folder creation/modification

For Exchange administrative tasks

Page 17: Exchange Deployment Planning Services Exchange 2010 Developer Platform

PowerShell with .NET

• Improved Runspace APIs− New PowerShell class simplifies invocation

of cmdlets

• Unleashes Exchange management from within compiled code− PowerShell.Create(“get-process”).Invoke();

NEW

Page 18: Exchange Deployment Planning Services Exchange 2010 Developer Platform

Invoking Exchange cmdlets from C#Code Sample

• SCredential credential = new PSCredential(username, password); • // Set the connection Info    • WSManConnectionInfo connectionInfo = new WSManConnectionInfo(      • new Uri(liveIdconnectionUri), http://schemas.microsoft.com/powershell/Microsoft.Exchange, credential);• connectionInfo.AuthenticationMechanism = AuthenticationMechanism.Basic;• • // create a runspace on a remote path; the returned instance must be of type RemoteRunspace• Runspace runspace = System.Management.Automation.Runspaces.RunspaceFactory.CreateRunspace(connectionInfo);

• // open the runspace• runspace.Open();• • // Set the runspace as a local variable on the runspace• PowerShell powershell = PowerShell.Create();• • // create the command• command = new PSCommand();• command.AddCommand("Get-Mailbox");• command.AddParameter("Identity", mailboxname);• powershell.Command = command; • try• {• // open the remote runspace• runspace.Open();• // associate the runspace with powershell• powershell.Runspace = runspace;• // invoke the powershell to obtain the results• return powershell.Invoke();• }• finally• {• // dispose the runspace and enable garbage collection• runspace.Dispose();          • runspace = null;• // finally dispose the powershell and set all variables to null to free up any resources.          • powershell.Dispose();          • powershell = null;• }

Page 19: Exchange Deployment Planning Services Exchange 2010 Developer Platform

PowerShell Remoting

• Allows cmdlets to be run from remote machines without Exchange administration tools installed− Only requires PowerShell v2 installed locally

• Access to Exchange administration from the internet when published though the firewall

• Solves cross-forest management issues• Utilizes RBAC model

NEW

Page 20: Exchange Deployment Planning Services Exchange 2010 Developer Platform

What are Transport Agents and APIs?• Allow access to e-mail messages and

their contents while the messages transverse the transport servers− Change message properties and content

during transport

• Transport agents are installed on Edge and Hub transport server roles

• Agents handle transport events and extend behavior

Page 21: Exchange Deployment Planning Services Exchange 2010 Developer Platform

Transport API Events

• Manipulate messages at many different levels of transport− SmtpReceiveAgent− RoutingAgent− DeliveryAgent− StoreDriverAgent

• Use transport agents to implement functionality that is not covered/available with transport rules

• Replacement for much of store event sink functionality

NEW

NEW

Page 22: Exchange Deployment Planning Services Exchange 2010 Developer Platform

Editing Email Subject

namespace MyAgents{ public sealed class MyAgentFactory : SmtpReceiveAgentFactory { public override SmtpReceiveAgent CreateAgent(SmtpServer server) { return new MyAgent(); } } public class MyAgent : SmtpReceiveAgent { public MyAgent() { this.OnEndOfData += new EndOfDataEventHandler(MyEndOfDataHandler); } private void MyEndOfDataHandler(ReceiveMessageEventSource source, EndOfDataEventArgs e) { // The following line appends text to the subject of the message that caused the event. e.MailItem.Message.Subject += " - this text appended by MyAgent"; } }}

Code Sample with SmtpReceiveAgent

Page 23: Exchange Deployment Planning Services Exchange 2010 Developer Platform

Exchange Server 2010 API ChangesAPI Deprecation Roadmap

Exchange Server 2007 Exchange 2010 Exchange Server 2007 Exchange 2010

Transport Server

AgentsTransport

APIs

Client

Exchange MAPI Client

OutlookMAPI

OutlookObj. Model

NET.Mail

Mailbox Server

MAPI WebDav

ExOLE DB

CDOEx (3.0)

Store Events

Virus Scan API

VSS

Client Access Server

Exchange Web

Services Transport Server

AgentsTransport

APIs

Client

CDO 1.2.1Outlook

MAPIOutlook

Obj. ModelNET.Mail

Mailbox ServerVirus

Scan APIVSS

Client Access Server

Exchange Web

ServicesMAPI

EWSManaged

API

Deprecated

Deemphasized

Roadmap

Non-Exchange

API

EWSManaged

API

CDO 1.2.1Exchange

MAPI Client

Page 24: Exchange Deployment Planning Services Exchange 2010 Developer Platform

Legacy API Overview Fragmented experience

Local Access Intranet Access

Internet Access

Outlook User Experience

CDO 3.0 for Exchange

CDO 1.2.1

Build-your-own User Experience

ExOleDB MAPI Exchange WebDAV

Page 25: Exchange Deployment Planning Services Exchange 2010 Developer Platform

EWS: Comparing against Legacy APIsEWS is the one API to support all application models

ExOleDB CDO 3.0 for Exchange

CDO 1.2.1 Exchange MAPI Client

Exchange WebDAV

Exchange Web

Services

EWS Managed

API 1.0

Supports User Experience Consistent with Outlook

√ √ √ √

Supports to Build your own Client User Experience

√ √ √ √ √

Supports Local Access √ √ √

Supports Intranet Access √ √ √ √

Supports Internet Access √ √ √

Supports New Exchange Server 2007 and Exchange 2010 functionality

√ √

Mainstream Support Available

√ √

Works on Exchange Server 2003

√ √ √ √ √

Works on Exchange 2007 SP1

√ √ √ √ √ √ √

Works on Exchange 2010 √ √ √ √

Page 26: Exchange Deployment Planning Services Exchange 2010 Developer Platform

Exchange 2010 API Changes

• Exchange Server 2003 client APIs are in to extended support− Collaboration Data Objects 1.2.1− Microsoft Exchange Server MAPI Client

Both can be replaced by Exchange Web Services

Deprecated APIs and alternatives

API Functionality Replacement

CDOEX Mailbox Access EWS

Exchange WebDAV Remote Mailbox Access

EWS

ExOleDB (ADO provider)

Mailbox Access EWS

OWA URL Commands Free/Busy and Name Resolution

EWS

Store Events Asynchronous and Synchronous Events

Transport Delivery Events/ EWS

Page 27: Exchange Deployment Planning Services Exchange 2010 Developer Platform

Extended Support PolicyExchange MAPI client and CDO 1.2.1 are in Extended Support• Exchange MAPI client+CDO remain available for download for Exchange 2010• Using the Exchange MAPI Client and CDO package against Exchange 2010 is

supported• Download Center is updated to reflect end-of-life status

During the Extended Support phase for Exchange Server, Microsoft provides:

• Paid support only• Non-security related hotfix support requires a separate Extended Hotfix

Support Agreement to be purchased (per-fix fees also apply)− A hotfix can not be redistributed

• Critical and Important Security update support at no additional cost

Please note: Microsoft will not accept requests for warranty support,

DCRs, or new features during the Extended Support phase− This could include Daylight Saving Time updates

Exchange MAPI Client and CDO 1.2.1 in Exchange 2010

Page 28: Exchange Deployment Planning Services Exchange 2010 Developer Platform

End of Exchange 2010 Developer Platform Module

Page 29: Exchange Deployment Planning Services Exchange 2010 Developer Platform

For More Information

• Exchange Server Tech Centerhttp://technet.microsoft.com/en-us/exchange/default.aspx

• Planning serviceshttp://technet.microsoft.com/en-us/library/cc261834.aspx

• Microsoft IT Showcase Webcasts http://www.microsoft.com/howmicrosoftdoesitwebcasts

• Microsoft TechNet http://www.microsoft.com/technet/itshowcase

Page 30: Exchange Deployment Planning Services Exchange 2010 Developer Platform

© 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.