CSE775 - Distributed Objects
Lecture #1 - Introduction to DO
Revised: 16 January 2008
Web Resources:
Code Project
Win32, COM, MFC
DevelopMentor
Windows Developer's Journal
Windows Forms
GotDotNet
C# Corner
IDL and WDSL
COM at MSDN
IDL Language
base MIDL types
OLE data types
IDL attributes
MIDL data types
MIDL Language Reference
conversion functions
Content:
This lecture is an introduction to the CSE775 course. Today we discuss topics to be covered
in this course, its
projects, examinations, and grading. We then introduce the notion of components and discuss
motivation for COM and .Net components.
-
Syllabus describes topics to be covered,
reading material for you to digest before coming to class, and due dates
for the assigned projects.
-
Lecture #1 folder contains a page of links to
presentations and code discussed in this class. The Lecture folders will occasionally
hold physical files of interest as well. Usually, however, all the materials
of interest to the class are in the presentations
and code folders. The contents of these folders will grow
as you progress through the course.
-
Starting Friday, January 16, I will hold help sessions from 9:00am until 11:45am each Friday in CST 4-201.
-
Why Components?
-
components in the large - distributed system updates
Update a program by copying a revised DLL to some folder, without rebuilding the program.
-
components in the small - Graphical User Interfaces
Put controls on forms or remove them, either at design time, or at runtime.
-
reduce dependencies between program parts by calling through interfaces
This prevents one part of a program from binding to the implementation of another part it uses.
The using part binds, instead, to the interface, which is much less likely to change.
-
What are components? And what is COM? Where is the technology going - and should I care?
-
A component architecture supports client use of an object by binding only to an interface, not its implementation.
That implies that
the technology supplies a means of managing the object's lifetime on behalf of the client.
The goal of a component technology is to reduce the affect of changes in a object on all its clients.
While developing software, change is almost constant. Changes to an implementation occur to fix latent defects,
improve performance, or add new features. Component technologies are an essential part of building large, complex
systems effectively.
-
The Component Object Model (COM) is a Microsoft programming model, that supports a weak object model.
In COM, client software accesses an object through a pointer to an interface, to which the object binds.
Both Object Linking and Embbeding (OLE) and ActiveX are based on COM.
-
COM components are everywhere in the Windows platform. The Windows operating system has many COM parts,
e.g., Windows Shell and Script Host, Windows Management Instrumentation (WMI), Internet Explorer, and many others.
Office, Visio, and most of the other Microsoft applications are based on COM. Even the .Net CLR is a COM component.
-
.Net components are, in many ways, a superior technology to COM (see the comparison item, below), and are expected to
replace COM in some of Microsoft's new application development.
- Windows Programming Models
- Functionality of Windows Presentation and Windows Communication Foundations
-
Comparison of COM and .Net component models
-
First Project: Sending messages between windows in different processes.
-
Project Grade Sheet - Structure, Style, Design, and Functionality.