Presentation is loading. Please wait.

Presentation is loading. Please wait.

MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation.

Similar presentations


Presentation on theme: "MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation."— Presentation transcript:

1 MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation

2 Agenda Overview of Exchange 2003 General Design Guidelines Messaging Scenarios Calendaring Scenarios Customizing Exchange Behavior with Store Events Componentizing with Web Services Looking forward to XSO

3 Overview of Exchange 2003

4 Exchange 2003 What still works? Data access methods CDO for Exchange 2000 (CDOEX) ADO access using ExOLEDB ADO access using MSDAIPP CDO 1.2x (server and client) HTTP and WebDAV Extended MAPI (MAPI) CDO for Exchange Management (CDOEXM) Events and notifications ExOLEDB store events Transport events MAPI notifications WebDAV notifications Incremental Change Synchronization (ICS) Exchange 5.5 event agent service Application technologies Exchange Web forms Exchange 2000 workflow model Exchange 5.5 routing engine

5 Exchange 2003 What’s changed? Heavy focus on security fixes Improved ExOLEDB startup performance Fixed 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 default Permission denied by default to create top level folders

6 Exchange 2003 What’s new? Managed wrapper for transport event sinks MSG 332: Developing Transport Event Messaging Solutions for Windows and Exchange Additional WMI providers MSG 334: Creating Exchange Administrative Scripting for the Non- Programmer

7 General Design Guidelines

8 Exchange Applications Best Bets Fundamental collaboration services Calendaring, Messaging, Contacts, etc. Web services, ASPX/ASP, public folder apps Customizing Exchange Behavior Events and notifications Stand-alone or application enhancers Customizing a Client Modifying Outlook, OWA Person-to-person workflow Exchange Workflow Exchange management applications CDOEXM, WMI, Active Directory Specialized applications (infrastructure) Anti-virus, backup/restore

9 Exchange Resource Options Resource mailbox Exposes server-side services such as scheduling logic and AV scanning Uses a “provider” access model More flexibility in applying quotas Public folder Allows ad-hoc creation Built-in access roles (reviewer, editor, publishing author, etc) Accessible by default through Outlook or OWA

10 Resource Mailbox demo demo

11 Data Access Guidelines Binaries deployed on the Exchange server Application scenarios Store events Transport events Web services ASP / ASPX applications Data access CDOEx, ExOLEDB (native ADO) Others: CDO 1.2, MAPI

12 Data Access Guidelines Binaries deployed on another server or client Application scenarios Transport events Web services ASP / ASPX applications Data access WebDAV, System.Web.Mail, CDOSYS Others: CDO 1.2, MAPI, MSDAIPP (native ADO), Outlook object model (OOM)

13 Data Access Guidelines Application written in managed code Application scenarios Web services ASPX applications Data access Deploying on the Exchange server CDOEx, ExOLEDB Deploying on another server or client WebDAV, System.Web.Mail Others: CDOSYS, OOM

14 Messaging Scenarios

15 Creating Newsletter Generators Just want to generate a bunch of e-mail CDOSYS is the best bet Ships in Windows (2000, XP, 2003) Pure subset of CDOEx Replaced by CDOEx on Exchange servers Sends mail using SMTP port, pickup directory, or Exchange

16 Sending Mail in ASP.Net System.Web.Mail Optimized for ASP.Net Wrapper to CDOSYS No POP support WebDAV Uses the DAV:submissionuri Must have the user's credentials or Send On Behalf Of rights for that mailbox Only method that writes to the Sent Items folder CDOEx Application must reside on the Exchange Server Maintains custom properties

17 Sending Mail from an ASP.Net Application demo demo

18 Calendaring Scenarios

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

20 Calendaring In.NET Apps Creating appointments and scheduling meetings WebDAV Appointments are easy enough but meetings are tough (KB 308373) Must provide UID OWA commands Easy to schedule meetings Not recommended because OWA reserves the right to change any calls CDOEx Easiest to use Application must reside on the Exchange server

21 Calendaring from an Application Server Using WebDAV demo demo

22 Querying for Free/Busy Information Free/busy interfaces (CDOEx, OWA) General access to anyone’s published data Easier to determine open slots Requires a call to Active Directory to resolve the target address Data could be stale Query a calendar directly (WebDAV, ADO) Public folders and resource mailboxes Best suited for finding previous bookings Requires permission to view the calendar Existing data can be more up-to-date

23 Using Free/Busy Interfaces CDOEx GetFreeBusy () method Exchange Docs SDK Must be on the Exchange server OWA Freebusy command http://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

24 Using OWA to Get Free/ Busy Information demo demo

25 Customizing Exchange Behavior with Store Events

26 Basics of Store Events Can be used on public folders and mailboxes Save, Delete, Timer, MDBStartup, MDBShutdown Exposed via ExOLEDB.DLL Must run on the server Two steps: Build the event sink and encapsulate it in a COM+ package Create a store event registration binding Exchange Explorer Tool (Exchange Tools SDK) Regevent utility (Exchange SDK)

27 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

28 Automatically Processing Requests in a Resource Mailbox demo demo

29 Using Web Services

30 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

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

32 Calendaring Web Service demo demo

33 Code Name… XSO

34 XSO Overview Managed code class library Leverages.NET Framework data types and classes Talks WebDAV to Exchange 2003 Remotable Works anywhere with CLR installed Makes it easier to build.NET applications Intuitive Targets the enterprise developer Don’t need to be an Exchange expert to use it Public beta expected to be available this fall

35 Sample XSO Code Dim 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 With Mbx.Folders(“Tasks”).Items.Add(tsk)

36 Summary Use CDOEX and ExOLEDB when the source code runs on the Exchange server Use System.Web.Mail or WebDAV when the source code must run elsewhere You can build store and transport event sinks in managed code Web services expand the Exchange data access options and make it easier to code XSO is the future

37 Resources http://msdn.microsoft.com/exchange Exchange SDK downloads Samples and Documentation Tools Workflow Designer White papers Writing Managed Sinks for SMTP and Transport Events Exchange 2003 Developer Roadmap (Summer ’03) Exchange XML Web Services Toolkit Additional helpful sites: HTTP://www.WebStorageD2D.com/ HTTP://www.CDOLive.com/ HTTP://www.slipstick.com/ Send comments, suggestions, etc. (especially on XSO!) to: mindym@microsoft.com

38 Exchange Community Resources Exchange Community Web Page http://www.microsoft.com/exchange/community Exchange Newsgroups http://www.microsoft.com/exchange/community/newsgroups Attend s Free Chat or Webcast http://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.asphttp://www.microsoft.com/usa/Webcasts/ ondemand/1589.asp Decide between Exchange 2000 & Exchange 2003: http://searchwin2000.techtarget.com/content/0,290959, sid1_gci875523,00.html http://searchwin2000.techtarget.com/content/0,290959, sid1_gci875523,00.html Locate A Local User Group http://microsoft.com/communities/usergroups/default.mspx

39 Exchange Developer Focus Groups Give us feedback about your Exchange development experience Today at 14:00 Tomorrow at 14:00 Sign up See me after this session

40 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

41 Ask The Experts Get Your Questions Answered 16:00 this afternoon

42 Suggested Reading And Resources The tools you need to put technology to work! TITLE Available Programming Microsoft® Outlook® and Microsoft Exchange 2003, Third Edition: 0-7356-1464-4 Today Microsoft® Exchange Server 2003 Administrator's Companion: 0-7356-1979-4 Today Microsoft Press books are 20% off at the TechEd Bookstore Also buy any TWO Microsoft Press books and get a FREE T-Shirt

43 Community Resources http://www.microsoft.com/communities/default.mspx Most Valuable Professional (MVP) http://www.mvp.support.microsoft.com/ Newsgroups Converse online with Microsoft Newsgroups, including Worldwide http://www.microsoft.com/communities/newsgroups/default.mspx User Groups Meet and learn with your peers http://www.microsoft.com/communities/usergroups/default.mspx

44 evaluations evaluations

45 © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.


Download ppt "MSG330 Developing with Microsoft® Exchange Susan Hill Lead Programmer Writer Microsoft Corporation."

Similar presentations


Ads by Google