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 - all texts available at desk in SciTech Library:

  1. Windows System Programming, Third Edition, Johnson Hart, Addison Wesley, 2005
  2. ATL Internals, Second Edition, Working with ATL 8, Tavares, Fertitta, Rector, and Sells, Addison Wesley, 2007.
  3. The COM and COM+ Programming Primer (CACP), Alan Gordon, Prentice Hall, 2000 ISBN 0-13-085032-2
  4. Class Notes, available on www.ecs.syr.edu/faculty/fawcett/handouts/CSE775
  5. Other Recommended References:
    • 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
    • Understanding ActiveX and OLE, David Chappell, Microsoft Press, 1996
    • Essential COM, Don Box, Addison Wesley, 1998

Other Useful References

  1. Strings the OLE Way, The Safe OLE Way of Handling Arrays, The Ultimate Data Type, all by Bruce McKinney

Prerequisites

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

Syllabus - Spring 2008:

Lecture Topics Read Before Class Project
Lecture #1
Mon, Jan 14
Syllabus, Projects, Exams, Why Components?
Win32 programming, COM and .Net object models
  Pr1
Lecture #2
Wed, Jan 16
Win32 Programming, files, directories, and their management, DLLs, Windows, Messages, and Controls skim PW chp 1, 2, read PW chp 3, 4 Pr1
Mon, Jan 15 Martin Luther King Jr. Day, no classes    
Lecture #3
Wed, Jan 23
Windows, Messages, and Controls MSDN Links, class notes Pr1
Lecture #4
Mon, Jan 28
Win32 Threads and Thread Synchronization class notes, MSDN - see links in
Win32Programming - pg 9
Pr1
Lecture #5
Wed, Jan 30
in-process COM components, interfaces, dynamic linking, GUIDs, registry skim CACP chp 1-3, read CACP chp 4, class notes Pr1
Lecture #6
Mon, Feb 04
Class Factory, Service Control Manager, Activation, IDL CACP chp 3-4, class notes Pr1
Lecture #7
Wed, Feb 06
IDL, COM Clients class notes, CACP chp 3-4 Pr1
Lecture #8
Mon, Feb 11
COM Types: BSTRs, Variants, SafeArrays, Intro to Apartments class notes, CACP chp 7, 9 Pr1
Lecture #9
Wed, Feb 13
Win32 Sockets class notes Pr1 due
Lecture #10
Mon, Feb 18
out-of-process components, activation read CACP chp 6-7, class notes Pr2
Lecture #11
Wed, Feb 20
apartments and threading models, STAs and MTAs CACP chp 4-5, class notes Pr2
Lecture #12
Mon, Feb 25
Active Template Library (ATL) - structure, facilities, examples read CACP chp 5 Pr2
Lecture #13
Wed, Feb 27
ATL, CComBSTR, CComQIPtr, more examples read CACP chp 5 Pr2
Lecture #14
Mon, Mar 03
Midterm Review class notes Pr2
Lecture #15
Wed, Mar 05
Midterm Examination   Pr2
Mon, Mar 10 Spring Break   Pr2
Wed, Mar 12 Spring Break   Pr2
Lecture #16
Mon, Mar 17
return and discuss Midterm Examinations   Pr2
Lecture #17
Wed, Mar 19
Events, Connection Points, and Dispatch interfaces, ActiveX Controls read CACP chp 7-8, class notes Pr2
Lecture #18
Mon, Mar 24
Managed C++, interoperation between COM, C++, and C# class notes, PMDN 7, 8 Pr2 due
Lecture #19
Wed, Mar 26
.Net Control Model class notes Pr3
Lecture #20
Mon, Mar 31
Controls, user controls, components, controls hosts read PMDN 15 Pr3
Lecture #21
Wed, Apr 02
Windows Presentation Foundation basics class notes Pr3
Lecture #22
Mon, Apr 07
Windows Presentation Foundation, Navigation, Graphics, Documents Class notes Pr3
Lecture #23
Wed Apr 09
Windows Communication Foundation, basics class notes Pr3
Lecture #24
Mon, Apr 14
Windows Communication Foundation, Remoting, Web services, REST class notes Pr3 due
Lecture #25
Wed, Apr 16
COM+ read CACP chp 11, 12 Pr4
Lecture #26
Mon, Apr 21
DCOM remoting and monikers read CACP chp 10, 12 Pr4
Lecture #27
Wed, Apr 23
COM/.Net interop revisited class notes Pr4
Lecture #28
Mon, Apr 28
Where do we go from here?   Pr4 due