A.E.C. Programmer Analyst LEA.CK: Profile Microsoft Full ...
MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.
-
Upload
gabriel-hancock -
Category
Documents
-
view
218 -
download
0
Transcript of MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.
![Page 1: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/1.jpg)
MSG330
Developing with Microsoft® Exchange
Susan HillLead Programmer WriterMicrosoft Corporation
![Page 2: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/2.jpg)
Agenda
Overview of Exchange 2003General Design GuidelinesMessaging ScenariosCalendaring ScenariosCustomizing Exchange Behavior with Store EventsComponentizing with Web ServicesLooking forward to XSO
![Page 3: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/3.jpg)
Overview of Exchange 2003
![Page 4: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/4.jpg)
Exchange 2003What still works?
Data access methodsCDO for Exchange 2000 (CDOEX)ADO access using ExOLEDBADO access using MSDAIPPCDO 1.2x (server and client)HTTP and WebDAV Extended MAPI (MAPI) CDO for Exchange Management (CDOEXM)
Events and notificationsExOLEDB store eventsTransport eventsMAPI notificationsWebDAV notificationsIncremental Change Synchronization (ICS)Exchange 5.5 event agent service
Application technologiesExchange Web formsExchange 2000 workflow modelExchange 5.5 routing engine
![Page 5: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/5.jpg)
Exchange 2003What’s changed?
Heavy focus on security fixesImproved ExOLEDB startup performanceFixed the 256 logon limitation in WebDAV
Ex 2000 and Ex 2003 Hotfix; Ex 2003 SP1
Secure by Default Exchange Domain Servers security group locked down by defaultPermission denied by default to create top level folders
![Page 6: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/6.jpg)
Exchange 2003What’s new?
Managed wrapper for transport event sinks
MSG 332: Developing Transport Event Messaging Solutions for Windows and Exchange
Additional WMI providersMSG 334: Creating Exchange Administrative Scripting for the Non-Programmer
![Page 7: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/7.jpg)
General Design Guidelines
![Page 8: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/8.jpg)
Exchange ApplicationsBest Bets
Fundamental collaboration servicesCalendaring, Messaging, Contacts, etc.Web services, ASPX/ASP, public folder apps
Customizing Exchange BehaviorEvents and notificationsStand-alone or application enhancers
Customizing a ClientModifying Outlook, OWA
Person-to-person workflowExchange Workflow
Exchange management applicationsCDOEXM, WMI, Active Directory
Specialized applications (infrastructure) Anti-virus, backup/restore
![Page 9: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/9.jpg)
Exchange Resource Options
Resource mailboxExposes server-side services such as scheduling logic and AV scanningUses a “provider” access modelMore flexibility in applying quotas
Public folderAllows ad-hoc creationBuilt-in access roles (reviewer, editor, publishing author, etc)Accessible by default through Outlook or OWA
![Page 10: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/10.jpg)
Resource MailboxResource Mailbox
demodemo
![Page 11: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/11.jpg)
Data Access Guidelines Binaries deployed on the Exchange server
Application scenariosStore events
Transport events
Web services
ASP / ASPX applications
Data accessCDOEx, ExOLEDB (native ADO)
Others: CDO 1.2, MAPI
![Page 12: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/12.jpg)
Data Access Guidelines Binaries deployed on another server or client
Application scenariosTransport events
Web services
ASP / ASPX applications
Data accessWebDAV, System.Web.Mail, CDOSYS
Others: CDO 1.2, MAPI, MSDAIPP (native ADO), Outlook object model (OOM)
![Page 13: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/13.jpg)
Data Access Guidelines Application written in managed code
Application scenariosWeb servicesASPX applications
Data accessDeploying on the Exchange server
CDOEx, ExOLEDB
Deploying on another server or clientWebDAV, System.Web.MailOthers: CDOSYS, OOM
![Page 14: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/14.jpg)
Messaging Scenarios
![Page 15: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/15.jpg)
Creating Newsletter Generators
Just want to generate a bunch of e-mail
CDOSYS is the best betShips in Windows (2000, XP, 2003)
Pure subset of CDOExReplaced by CDOEx on Exchange servers
Sends mail using SMTP port, pickup directory, or Exchange
![Page 16: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/16.jpg)
Sending Mail in ASP.Net
System.Web.MailOptimized for ASP .NetWrapper to CDOSYSNo POP support
WebDAVUses the DAV:submissionuriMust have the user's credentials or Send On Behalf Of rights for that mailbox Only method that writes to the Sent Items folder
CDOExApplication must reside on the Exchange ServerMaintains custom properties
![Page 17: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/17.jpg)
Sending Mail from an Sending Mail from an ASP.Net ApplicationASP.Net Application
demodemo
![Page 18: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/18.jpg)
Calendaring Scenarios
![Page 19: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/19.jpg)
Calendaring In .NET Apps Querying a calendar
WebDAV, (ExOLEDB)
Dates must be UTC normalized time
Dim sSQL As String = "SELECT "
sSQL += """urn:schemas:httpmail:subject"" AS subject, "
sSQL += """urn:schemas:calendar:dtstart"" AS startTime, "
sSQL += """urn:schemas:calendar:dtend"" AS endTime "
sSQL += " FROM SCOPE(‘SHALLOW TRAVERSAL OF """ & urlFld & """')"
sSQL += " WHERE (""urn:schemas:calendar:dtend"" < '" &
Format(utcEnd, "yyyy/MM/dd hh:mm:ss") + "')"
sSQL += " AND (""urn:schemas:calendar:dtstart"" > '" &
Format(utcStart, "yyyy/MM/dd hh:mm:ss") + "')"
sSQL += " ORDER BY ""urn:schemas:calendar:dtstart"" ASC"
![Page 20: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/20.jpg)
Calendaring In .NET Apps Creating appointments and scheduling meetings
WebDAVAppointments are easy enough but meetings are tough (KB 308373)Must provide UID
OWA commandsEasy to schedule meetingsNot recommended because OWA reserves the right to change any calls
CDOExEasiest to useApplication must reside on the Exchange server
![Page 21: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/21.jpg)
Calendaring from an Calendaring from an Application Server Using Application Server Using WebDAVWebDAV
demodemo
![Page 22: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/22.jpg)
Querying for Free/Busy Information
Free/busy interfaces (CDOEx, OWA)General access to anyone’s published dataEasier to determine open slotsRequires a call to Active Directory to resolve the target addressData could be stale
Query a calendar directly (WebDAV, ADO)Public folders and resource mailboxesBest suited for finding previous bookingsRequires permission to view the calendarExisting data can be more up-to-date
![Page 23: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/23.jpg)
Using Free/Busy Interfaces
CDOEx GetFreeBusy () method Exchange Docs SDKMust be on the Exchange server
OWA Freebusy commandhttp://Server_Name/public/?cmd=freebusy&start=ISO8601time&end=ISO8601time&interval=minutes&u=SMTP address [&u=user2&u=user3]
Both return integers representing the free/busy status for a particular interval
0:free; 1:tentative; 2:busy; 3:out of office; 4 unknown
![Page 24: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/24.jpg)
Using OWA to Get Free/ Using OWA to Get Free/ Busy InformationBusy Information
demodemo
![Page 25: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/25.jpg)
Customizing Exchange Behavior with Store Events
![Page 26: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/26.jpg)
Basics of Store Events
Can be used on public folders and mailboxesSave, Delete, Timer, MDBStartup, MDBShutdown
Exposed via ExOLEDB.DLLMust run on the server
Two steps:Build the event sink and encapsulate it in a COM+ package
Create a store event registration bindingExchange Explorer Tool (Exchange Tools SDK)
Regevent utility (Exchange SDK)
![Page 27: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/27.jpg)
Creating Store Event Sinks with Visual Studio .NET
Create a new class project
Derive the class from ServicedComponent
Strongly name an interop version of ExOLEDB.DLL and reference it
Add info on the target COM+ package
Strongly name the assembly
Register the assembly with regsvcs.exe
![Page 28: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/28.jpg)
Automatically Processing Automatically Processing Requests in a Resource Requests in a Resource MailboxMailbox
demodemo
![Page 29: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/29.jpg)
Using Web Services
![Page 30: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/30.jpg)
Why Use Web Services with Exchange?
Can provide access to Exchange data outside of the firewall
Allows you to encapsulate and remote Exchange functionality
Easier to incorporate Exchange into existing applications
![Page 31: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/31.jpg)
Building Web Services for Exchange 2000
General web service guidelines apply
Things to think about:Where will you store the web service?
What data access method will you use?
Which side of the firewall are your users?
Who will the Web service run as?
What do you want to do with the returned data?
![Page 32: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/32.jpg)
Calendaring Web Calendaring Web ServiceService
demodemo
![Page 33: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/33.jpg)
Code Name… XSO
![Page 34: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/34.jpg)
XSO Overview
Managed code class libraryLeverages .NET Framework data types and classesTalks WebDAV to Exchange 2003
RemotableWorks anywhere with CLR installedMakes it easier to build .NET applications
IntuitiveTargets the enterprise developerDon’t need to be an Exchange expert to use it
Public beta expected to be available this fall
![Page 35: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/35.jpg)
Sample XSO CodeDim mbx As ItemStore = New ItemStore()With mbx
.Source = strName + "@pangea.com"
.Credentials = New NetworkCredential( _strName, strpassword, "PANGEA.COM")
.Open()End With
Dim tsk As Task = New Task()With tsk
.Subject = "Task class" .Start = DateTime.Now .Due = .Start.AddDays(2) .Reminder = .Due.AddHours(-4) .Body.Text = "Build the task class!"End WithMbx.Folders(“Tasks”).Items.Add(tsk)
![Page 36: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/36.jpg)
Summary
Use CDOEX and ExOLEDB when the source code runs on the Exchange serverUse System.Web.Mail or WebDAV when the source code must run elsewhereYou can build store and transport event sinks in managed code Web services expand the Exchange data access options and make it easier to codeXSO is the future
![Page 37: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/37.jpg)
Resources
http://msdn.microsoft.com/exchangeExchange SDK downloads
Samples and DocumentationToolsWorkflow Designer
White papersWriting Managed Sinks for SMTP and Transport EventsExchange 2003 Developer Roadmap (Summer ’03)
Exchange XML Web Services ToolkitAdditional helpful sites:
HTTP://www.WebStorageD2D.com/HTTP://www.CDOLive.com/HTTP://www.slipstick.com/
Send comments, suggestions, etc. (especially on XSO!) to:[email protected]
![Page 38: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/38.jpg)
Exchange Community Resources
Exchange Community Web Pagehttp://www.microsoft.com/exchange/community
Exchange Newsgroupshttp://www.microsoft.com/exchange/community/newsgroups
Attend s Free Chat or Webcasthttp://www.microsoft.com/exchange/community/webcasts.asp Some recent Exchange webcasts still available for viewing
Exchange 2003 Overview: http://www.microsoft.com/usa/Webcasts/ondemand/1589.aspDecide between Exchange 2000 & Exchange 2003: http://searchwin2000.techtarget.com/content/0,290959,sid1_gci875523,00.html
Locate A Local User Grouphttp://microsoft.com/communities/usergroups/default.mspx
![Page 39: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/39.jpg)
Exchange Developer Focus Groups
Give us feedback about your Exchange development experience
Today at 14:00
Tomorrow at 14:00
Sign upSee me after this session
![Page 40: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/40.jpg)
Related Sessions
MSG 331: Exchange Server 2000/2003 Software Development Kit
Thursday, 03 July 11:45 - 13:00
MSG 334: Creating Exchange Administrative Scripting for the Non-Programmer
Thursday 03 July 16:45 - 18:00
MSG 332: Developing Transport Event Messaging Solutions for Microsoft® Windows® and Microsoft Exchange Server
Friday, 04 July 08:30 - 09:45
![Page 41: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/41.jpg)
Ask The ExpertsGet Your Questions Answered
16:00 this afternoon
![Page 42: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/42.jpg)
Suggested Reading And Resources
The tools you need to put technology to work!The tools you need to put technology to work!
TITLETITLE AvailableAvailable
Programming Microsoft® Programming Microsoft® Outlook® and Microsoft Exchange Outlook® and Microsoft Exchange 2003, Third Edition: 0-7356-1464-42003, Third Edition: 0-7356-1464-4
TodayToday
Microsoft® Exchange Server Microsoft® Exchange Server 2003 Administrator's 2003 Administrator's Companion: 0-7356-1979-4Companion: 0-7356-1979-4
TodayToday
Microsoft Press books are 20% off at the TechEd Bookstore
Also buy any TWO Microsoft Press books and get a FREE T-Shirt
![Page 43: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/43.jpg)
Community Resources
Community Resourceshttp://www.microsoft.com/communities/default.mspx
Most Valuable Professional (MVP)http://www.mvp.support.microsoft.com/
NewsgroupsConverse online with Microsoft Newsgroups, including Worldwidehttp://www.microsoft.com/communities/newsgroups/default.mspx
User GroupsMeet and learn with your peershttp://www.microsoft.com/communities/usergroups/default.mspx
![Page 44: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/44.jpg)
evaluationsevaluations
![Page 45: MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.](https://reader035.fdocuments.us/reader035/viewer/2022062518/56649e905503460f94b94322/html5/thumbnails/45.jpg)
© 2003 Microsoft Corporation. All rights reserved.© 2003 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.