CSE775 - Distributed Objects

image not found

Course Scope:

Design and implement software components that use the Win32 API, Component Object Model (COM), and the .Net object model. Students will develop projects requiring them to build and use components and controls. At least one of these will be a distributed application. We will also do a small amount of windows programming.

Component technologies are a very important part of the software development process. COM is a major part of the Windows family of operating systems, and the .Net Common Run-Time is implemented as a COM component. Many of our former students are currently working on COM-based implementations in the industry. However, I expect the .Net component technology to eventually supercede COM. Therefore this course will emphasize both and discuss interoperability between these two implementation paradigms.

Required Texts and Notes:

  1. The COM and COM+ Programming Primer (CACP), Alan Gordon, Prentice Hall, 2000 ISBN 0-13-085032-2
  2. Class Notes, available on www.ecs.syr.edu/faculty/fawcett/handouts/cse775
  3. References available at desk in SciTech Library:
    • Windows Internals (WI), Fourth Edition, Russinovich and Solomon, Microsoft Press, 2005
    • Programming Windows (PW), Fifth Edition, Charles Petzold, Microsoft Press, 1999, ISBN 1-57231-995-X
    • Programming Microsoft .Net (PMDN), Jeff Prosise, Microsoft Press, 2002 ISBN 0-7356-1376-1
    • Programming .Net Components (PDC), Juval Lowy, O'Reilly, 2003, ISBN 0-596-00347-1
    • COM and .Net Component Services (CDNCS), Juval Lowy, O'Reilly, 2001, ISBN 0-596-00102-7

Prerequisites

CSE687 - Object Oriented design is a co-requisite. That is, you may take CSE687 while taking this course.

Syllabus - Spring 2007:

Lecture Topics Read Before Class Project
Mon, Jan 15 Martin Luther King Jr. Day, no classes    
Lecture #1
Wed, Jan 17
Syllabus, Projects, Exams, Why Components?
Win32 programming, COM and .Net object models
  Pr1
Lecture #2
Mon, Jan 22
Win32 Programming, Windows Messages and Controls skim PW 1, 2, read PW 3, 4 Pr1
Lecture #3
Wed, Jan 24
files, directories, and their management, DLLs, programming the Registry MSDN Links, class notes Pr1
Lecture #4
Mon, Jan 29
in-process COM components, interfaces, dynamic linking, GUIDs, registry skim CACP chp 1-3, read CACP 4, class notes Pr1
Lecture #5
Wed, Jan 31
Class Factory, Service Control Manager, Activation, IDL class notes Pr1
Lecture #6
Mon, Feb 5
IDL, COM Clients class notes, CACP chap 4 Pr1
Lecture #7
Wed, Feb 7
COM Types: BSTRs, Variants, SafeArrays class notes, CACP chap 7 Pr1
Lecture #8
Mon, Feb 12
Win32 Threads and Thread Synchronization class notes Pr1
Lecture #9
Wed, Feb 14
Win32 Sockets class notes Pr1
Lecture #10
Mon, Feb 19
out-of-process components, activation read CACP chp 5, 6, class notes Pr1 due
Lecture #11
Wed, Feb 21
apartments and threading models, STAs and MTAs class notes Pr2
Lecture #12
Mon, Feb 26
Active Template Library (ATL) - structure, facilities, examples read CACP chp 5 Pr2
Lecture #13
Wed, Feb 28
ATL, CComBSTR, CComQIPtr, more examples read CACP chp 5 Pr2
Lecture #14
Mon, Mar 5
Midterm Review class notes Pr2
Lecture #15
Wed, Mar 7
Midterm Examination   Pr2
Mon, Mar 12 Spring Break   Pr2
Wed, Mar 14 Spring Break   Pr2
Lecture #16
Mon, Mar 19
Events, Connection Points, and Dispatch interfaces read CACP chp 8, 9 Pr2 due
Lecture #17
Wed, Mar 21
return and discuss Midterm Examinations   Pr3
Lecture #18
Mon, Mar 26
DCOM remoting and monikers read CACP chp 12 Pr3
Lecture #19
Wed, Mar 28
COM+ read CACP chp 11, 12 Pr3
Lecture #20
Mon, Apr 2
Managed C++, interoperation between COM, C++, and C# class notes Pr3
Lecture #21
Wed, Apr 4
.Net control model class notes, PMDN 7, 8 Pr3
Lecture #22
Mon, Apr 9
controls, user controls, components, controls hosts class notes Pr3 due
Lecture #23
Wed, Apr 11
remote activation models, pass-by-value, pass-by-reference read PMDN 15 Pr4
Lecture #24
Mon, Apr 16
remoting examples class notes Pr4
Lecture #25
Wed, Apr 18
Web Services PMDN 11 Pr4
Lecture #26
Wed, Apr 23
virtual directories, creating web services, WSDL, message-passing example class notes Pr4
Lecture #27
Wed, Apr 25
AppDomains and AppDomain Managers class notes Pr4
Lecture #28
Wed, Apr 30
Where do we go from here?   Pr4 due