C U T B H P N

Lecture #5 - Component Model

Interfaces, Object Factories, and DLLs

Web Resources:

Linux:
The Linux Documentation Project, GNU Project, GCC, GDB, Make, glibc, Linux Tutorial - administration and basic knowledge, Linux Tutorials, eclipse
Windows:
SysInternals, Best SysInternals Tools, Dr. Dobb's Journal, Windows Forms
COM:
COM at MSDN, IDL Language, base MIDL types, OLE data types, IDL attributes, MIDL data types, MIDL Language Reference
Other:
Code Project, The Java Tutorials - Oracle

Content:

Use of components is cruical when building large system. Components provide isolation boundarys that stop the propagation of change effects. In this lecture we will look at the structure of components and why they are important. Dynamic Link Libraries are an essential part of software components, along with interfaces and object factories. In this lecture we also explore how you create DLLs in both Windows and Linux.
  1. Syllabus describes topics to be covered, reading material for you to digest before coming to class, and due dates for the assigned projects.
  2. Projects:

  3. Final Projects Reminder:

    Remember that Final Project Selections are due, via email, by Saturday, 1/27.
    Please name the project and any team member you want to work with.
    I prefer limiting to two per project, but, you can negotiate that.
  4. Components:

    Components Concept
    Interfaces and Object Factories isolate clients from implementation details.
    Windows Component Demo, Linux Component Demo
    Defining component DLLs (shared libraries) on Windows and Linux platforms.
    Factory for Abstract Product
    Components with multiple interfaces - supports extensions without breakage.
    Reference Counting Demo
    Manage component lifetime with cooperative garbage collection by tracking references.
    FileSystem-Windows, FileSystem-Linux, C++17 "standard" filesystem
    Programming to the Windows and Linux operating system APIs.
  5. Whiteboard discussion about Project #1 structure.
  6. Comparing COM with C++ and .Net

  7. Roadmap to COM

  8. Final Project teaming
  9. Dynamic Link Libraries Introduction

    Linux Libraries presentation, pptx

    Dynamic Link Libraries - Wikipedia
    Shared Libraries in GNU/Linux Environment
    TLDP - Shared Libraries Windows DLLs - MSDN

  10. Structure of Windows Dynamic Link Libraries

    DLL Functions
    Windows DLL demo
  11. Structure of Linux Dynamic Link Libraries

    Anatomy of Linux dynamic libraries
    Static, Shared Dynamic and Loadable Libraries
  12. Other DLL and Linux Resources:

    DLLs and SOs - codeproject
    GNU Linker, ld, GCC FAQ
    Making C++ Loadable Modules work
    The Linux Documentation Project - Excellent
    Linux Tutorial - good administration and basic knowledge tutorials
    Quick summaries of DLLs and COM

CST strip