Data Collaboration Data Objects for Exchange 2000 - PowerPoint PPT Presentation

1 / 37
About This Presentation
Title:

Data Collaboration Data Objects for Exchange 2000

Description:

CDO today and tomorrow. Design goals. Integration with ADO and OLE DB ... Requests, Responses, Cancellations, Updates. IMIP Transport over email ... – PowerPoint PPT presentation

Number of Views:50
Avg rating:3.0/5.0
Slides: 38
Provided by: naveenk1
Category:

less

Transcript and Presenter's Notes

Title: Data Collaboration Data Objects for Exchange 2000


1
Collaboration Data Objects for Exchange 2000
Overview Naveen KachrooProgram
ManagerExchange Server Product UnitMicrosoft
Corporation
2
(No Transcript)
3
Agenda
  • CDO today and tomorrow
  • Design goals
  • Integration with ADO and OLE DB
  • Detailed coverage of CDO objects and interfaces

4
CDO 1.x Recap
  • CDO 1.0 - Client messaging apps
  • CDO 1.1 - Web and server apps
  • CDO 1.2 - Scheduling and calendaring
  • CDO for Windows NT Server 4.0 - SMTP mail, MHTML

5
What Is CDO?
  • CDO is a different object model than CDO 1.2
  • CDO is an API specification
  • Objects, interfaces, methods, properties
  • CDO is an object library
  • Currently two implementations
  • CDO for Windows 2000
  • CDO for Exchange 2000

6
CDO Design Goals
  • Extend ADO and OLE DB 2.5
  • Pick up where ADO/OLE DB leaves off
  • One Library for all languages
  • Dual interfaced
  • C, Visual Basic, Visual Basic Scripting
    Edition, JScript
  • Fully integrate Internet standards
  • Make development easier
  • Multiple levels of data access

7
CDO For Windows 2000
  • In Windows 2000 Professional and Server
  • Delivers base messaging functionality
  • Send/receive email messages
  • Post/process discussion/news messages
  • Extensive MIME content creation and management
  • Inbound protocol events and agents
  • No mailboxes or public folders

8
CDO For Windows 2000Target applications
  • Targeted mailers
  • Simple and complex content
  • Email notifications
  • E.g., 401K renewal, expense approvals
  • Inbound message filtering and pre-processing
  • Mail based replication
  • Any application needing to construct MIME content

9
DEMOCDO AND ASP
10
CDO For Exchange
  • Superset of CDO for Windows 2000
  • Fully backward compatible
  • Delivers extensive set of objects for rich
    collaborative applications
  • Access to public and private stores
  • Enables creation of many new classes of
    applications

11
CDO For ExchangeTarget applications
  • Outlook scenarios
  • E-mail, discussions, contacts, calendaring, etc.
  • Sales Force Automation / Tracking
  • Document Management
  • Scheduling and task management
  • Class registration
  • Interview scheduling

12
Extensible Design
  • Create your own application specific objects
  • Aggregate or contain existing CDO objects
  • E.g., custom MIME content types
  • Support for 3rd-party first class objects
  • Not limited to objects Microsoft ships
  • Extensible database schema and classes
  • Server events allow for custom backend processing

13
Internet Standards
  • Completely adopt Internet standards at API and
    storage level
  • Make the Internet a great platform for
    collaboration applications
  • Internet standard data formats
  • RFC822 (mail), RFC1036 (news), MIME, HTML, MHTML,
    ICalendar, VCard, and others
  • Internet standard protocols
  • SMTP, NNTP, LDAP, HTTP, HTTP-DAV

14
CDO and ADO/OleDB
VB, C, JScript, VBScript Application
CDO
ADO 2.5
Exchange OLE DB 2.5 Provider
ADSI
DS OLE DB Provider
ExchangeStore
Windows 2000 Active Directory
15
Database Schema
  • Based on Internet standards
  • RFC822, MIME, ICalendar
  • Contacts based on LDAP, not VCARD
  • VCard import/export supported
  • Uses OLE DB data types
  • No opaque binary blobs
  • Fully documented
  • Extensible by 3rd parties

16
CDO and MIME
  • The basis for serializing all items into stream
    based storage
  • Not just for messaging
  • Provides for structured storage
  • Message bodies, attachments, inline images,
    documents, ICalendar data, XML data, custom
    properties
  • CDO IBodyPart interface used to manipulate content

17
Messaging And MIMEObjects and interfaces
IUnknown
IUnknown
IDispatch _Field
ADO Field
IDispatch IMessage IBodyPart IDataSource IRow
Message
IUnknown
IDispatch _Stream
ADO Stream
IUnknown
IUnknown
BodyPart
IDispatch IBodyPart IRow
IDispatch _Fields
ADO Fields
18
IDataSourceOverview
  • Provides access through CDO to data sources
  • Open from and Save to URL-addressable data
    through an OLE/DB 2.5 provider
  • Open from and Save data to objects in memory
  • Allows you to manipulate content with the right
    object

IDataSource
Methods Open OpenObject Save SaveTo SaveToObject S
aveToContainer Properties ActiveConnection
(Connection) IsDirty (Boolean) Source
(IDispatch) SourceClass (String) SourceURL
(String)
19
Code Example 1Accessing mail from a folder
Dim conn as New Connection Dim rs as
Recordset Dim msg as New Message fldr
file//./backofficestorage/domain/MBX/user/inbox
conn.open fldr,fred,whatever,adRunAsync Set
rs conn.execute Select from
scope(shallow traversal of fldr
) where urnschemasmailheadersubject
hello msg.DataSource.Open
rs(DAVhref),conn msg.Attachments(1).SaveToFile
C\temp\file.doc msg.Attachments.DeleteAll msg.D
ataSource.Save
20
Calendaring
  • Based on ICalendar Internet drafts
  • ICalendar Calendar/scheduling protocol
  • ITIP Adds group scheduling methods
  • Requests, Responses, Cancellations, Updates
  • IMIP Transport over email
  • Includes all time based data
  • Calendars, appointments, events, tasks, requests
    and responses
  • Build personal, group custom scheduling
    applications

21
CalendaringObjects and interfaces
IUnknown
IUnknown
CalendarPart
IDispatch IAppointment IBodyPart IDataSource IRow
Appointment
IDispatch IAppointment ICalendarPart
IUnknown
IUnknown
Recurrence Pattern
IDispatch IRecurrencePattern
IDispatch ICalendarMessage IMessage IBodyPart IDat
aSource IRow
CalendarMessage
IUnknown
Exception
IDispatch IException IRow
22
Code Example 2Simple meeting request
Public Sub SimpleMeetingRequest() Dim objAppt As
New Appointment Dim objReq As CalendarMessage o
bjAppt.Subject "MEC 99" objAppt.StartTime
"10/4/99 100PM" objAppt.EndTime "10/4/99
100PM" objAppt.Attendees.Add ("user2_at_domain")
Set objReq objAppt.CreateRequest objReq.Mes
sage.Send End Sub
23
Contact Management
  • Unified API over multiple address book sources
  • Complements ADSI
  • Schema based on LDAP
  • Extended for contact mgmt attributes
  • Import/export VCard content

24
CDO.Person
  • Models a Person in the contact database and in
    the Directory
  • Provides simple access to name, addresses,
    telephone numbers and email addresses properties
  • All other properties available through the fields
    collection
  • Supports VCard import and export

25
Code Example 3CDO Person code sample
Dim aperson as new Person Dim rs as
RecordSet Rs.open file//./backofficestorage/doma
in/MBX/dougw/contacts rs.MoveFirst While NOT
rs.EOF aperson.DataSource.Open
rs.Fields(DAVHREF) Debug.Print
aperson.FirstName Debug.Print aperson.LastName D
ebug.Print aperson.MailingAddress rs.MoveNext WEn
d
26
CDO And Event Sinks
  • CDO code is invoked on events firing
  • Protocol Event Sinks
  • Store Event Sinks
  • Create CDO applications as in-proc/out-of-proc
    applications
  • Register DLLs with MTS under a specific context
  • Run compiled EXEs out of proc

27
DEMONT Service Demo
28
Exchange Management
  • Exchange Management Objects
  • Extension to CDO, OLE DB/ADO, and ADSI
  • Additional interfaces on CDO Person and Folder
    objects
  • Target applications
  • Web-based administration of Exchange
  • Self provisioning of servers
  • Custom admin applications
  • Integrated management systems

29
Management Extensions To CDO Objects And
Interfaces
IUnknown
IUnknown
IDispatch IPerson IMailbox IMailRecipient IMailbox
Store IBodyPart IDataSource IRow
Person
IDispatch IFolder IFolderAdmin IMailRecipient IDat
aSource IRow
Folder
30
Code Example 4Mailbox enabling a user
Dim objUser As New CDO.Person Dim objMailbox As
EMO.IMailboxStore objUser.DataSource.Open
"LDAP//skipton/CNuser1,CNUsers,
DCdougw,DCextest,DCmicrosoft,DCcom" objUser.F
ields(urnschemascontactsfirstname)
fred Set objMailbox objUser objMailbox.Create
Mailbox File//skipton/New Private
MDB" objMailbox.OverQuotaLimit
100000 objMailbox.GarbageCollectOnlyAfterBackup
true objUser.DataSource.Save
31
ADSI Integration
  • Use ADSI if you a writing a Directory only
    application
  • Use CDO.Person for contact management and
    accessing Exchange mailboxes
  • Easily integrated with existing scripts and
    applications

32
DEMOWeb-based User Management
33
Custom CDO Objects Expense reporting
  • A custom expense reporting object could be built
    on top of CDO.Message
  • Object used for reporting expenses and for
    approving or rejecting expense reports
  • Content-Class defines this new class
  • Custom properties used to store report data
  • COM containment or aggregation used to expose CDO
    interfaces

34
Custom CDO Objects Expense report object
IExpenseReport
Methods Reject (IExpenseReport) Approve
(IExpenseReport) Properties DataSource
(IDataSource) Type (Enum) TotalCost
(Long) StartDate (Date) EndDate
(Date) Description (String) OriginatorEmail
(String) Message (IMessage) ReviewerComment
(String) ReviewerEmail (String) Collections Expens
es (IExpenseInfo)
ExpenseReport
Message
35
Code Example 4Sending an expense report
Public Sub IssueReport Dim Rpt as New
ExpenseReport Dim Ex as New Expense
Rpt.StartDate 1/6/98
Rpt.EndDate 1/7/98
Rpt.OriginatorEmail bob_at_samples.microsoft.com
Rpt.ReviewerEmail bobsboss_at_samples.m
icrosoft.com Rpt.Description
Important Client Meeting Ex.Date
1/6/98 Ex.Cost 57.32
Ex.Description Dinner with client
Rpt.Expenses.Add Ex Rpt.Message.Send En
d Sub
36
Summary
  • CDO ADO is a big step forward for collaborative
    app development
  • Full Exchange 5.5 and Outlook app compatibility
  • Migrate or create new apps as capabilities warrant

37
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com