Visual%20Basic:%20An%20Object%20Oriented%20Approach - PowerPoint PPT Presentation

About This Presentation
Title:

Visual%20Basic:%20An%20Object%20Oriented%20Approach

Description:

Components are packages of software. Composed of one or more classes ... DCOM (Distributed COM) operates across local and wide area networks. OLE Automation ... – PowerPoint PPT presentation

Number of Views:118
Avg rating:3.0/5.0
Slides: 19
Provided by: mcm80
Category:

less

Transcript and Presenter's Notes

Title: Visual%20Basic:%20An%20Object%20Oriented%20Approach


1
Visual Basic An Object Oriented Approach
  • 12 Creating and using ActiveX objects

2
Component Object Technologies
  • Components are packages of software
  • Composed of one or more classes
  • Can be used to provide service to programs
  • Can be used flexibly
  • a VB component can be used by a C program, a
    web page or an excel spreadsheet
  • Current development trends emphasize the
    development and use of components
  • More flexible systems
  • Reusability
  • Easier team development

3
ActiveX
  • ActiveX is Microsofts take on components
  • A marketing term, covering several technologies
  • Object Linking and Embedding (OLE)
  • OLE Automation
  • Component Object Model (COM)
  • ActiveX makes it possible to create components
    that can interact regardless of location,
    language or type
  • COM is the standard that ActiveX components
    conform to
  • DCOM (Distributed COM) operates across local and
    wide area networks

4
OLE Automation
  • Use statements in a program to control objects
    within components
  • Components are library files (DLLs) or separate
    executable files (EXEs)
  • Controlling program can be written in almost any
    language
  • VB, C, VBScript, JavaScript, Java, Perl,
    Python
  • Execute efficient binaries from inefficient (but
    easy to use) scripting languages

5
Use of OLE Automation
  • Typical use is to build a complex Business
    application from pre-built components
  • e.g an Access database, an Excel calculating
    engine and a Word reporting engine
  • Quick, simple and easy to maitain

6
Typical OLE Automation Code
Sub CreateCustomerDocument(CustDetails As
String) Dim WOLE As Word.Application Set WOLE
CreateObject(Word.Application)
WOLE.Documents.Add ATemplate, 0
WOLE.Selection.Goto wdGotoBookmark,
wdGotoAbsolute, _
1, Customer WOLE.Selection.Find
.Text .Replacement.Text End With
Selection.InsertAfter CustDetails
Application.Printout Set WOLE Nothing End Sub
Code uses Word to create a document (e.g. a
Customers invoice) and print it out.
7
Where to get information on OLE Auto servers
(ActiveX servers)
  • Documentation e.g. manuals supplied with
    libraries
  • VB on-line help for servers provided by
    Microsoft (e.g. Office applications)
  • Primary source The Object Browser
  • Built in to VB
  • Provides accurate interface information on any
    components on the system

8
VBs Object Browser
9
VBs Object Browser showing a user-defined class
10
Creating an ActiveX server
  • Almost trivial in VB
  • VB creates COM components without need for extra
    code (unlike VC)
  • Only changes required are type of project
    selected, and a few (very few) property settings
  • Instancing components strategy for creating
    objects from its classes
  • ActiveX type
  • In-process (Dynamic Link Library DLL)
  • Out-of-process (Executable EXE)

11
Instancing
  • States how objects can be created for use by the
    client application
  • Private only creatable by another class in the
    same component (Server)
  • PublicNotCreatable component creates objects for
    client application
  • SingleUse only one object of class allowed
    client creates it
  • Global SingleUse as above, but no need to create
    object reference
  • MultiUse possible to create many objects from
    the component many clients can create them
  • GlobalMulitUse can be used by many clients

12
Use of Instancing Property
  • Allows memory and processor allocations to be
    optimised depending on the type of component
  • e.g. no point in a MultiUse Printing component if
    there is only one printer that can be used by one
    client at a time
  • e.g. Many applications could make use of several
    Invoice objects simultaneously MultiUse
    obviously
  • Careful design consideration at the stage of
    deciding on instancing setting can greatly
    improve application efficiency

13
Process allocation
  • Server can be in-process or out-of-process
  • In-process uses the client applications memory
    allocation
  • Client finds it inherently easier to work with
    because it is inside its own memory space
  • Faster
  • Limited to one client per instance of the
    component
  • Out-of-process runs in its own memory allocation
  • Clients need to communicate with it using
    operating system resources
  • Slower and more resource hungry
  • Several clients can make use of the same server
  • Server can execute in its own right (without a
    cllient)
  • E.g. Word, Excel, Access etc.

14
Building an ActiveX project
  • Before use, server component must be compiled
  • It will be executed by another program out-with
    Visual Basic
  • This can complicate debugging, since client is
    required to make component work
  • Can crate VB Project groups (for in-process
    components)
  • Can run multiple instances of VB (for
    out-of-process components)
  • Can use the Immediate Window (to do limited test
    and debug)

15
Deploying an ActiveX Component
  • Must be registered on the system it will be used
    on
  • VB does this automatically on the system it was
    developed on
  • To move the component to another system, must
    register it explicitly
  • Use RegSvr32.exe, or
  • Build a setup program using the Packaging and
    Deployment Wizard registers component
    automatically
  • Old components can clutter up a system
  • Use RegServer32 /unregserver to remove
    registration

16
Version Compatibility
  • Once a component is registered
  • Windows maintains its registry entry
  • Can not replace it with an incompatible version
  • VB allows three forms of compatibility setting
  • None Windows does not check for compatibility
  • Project for use while a project is under
    development
  • Changes to component interfaces will result in
    registration information being updated
    accordingly to allow compatibility between
    components and clients
  • Binary for use in deployed components
  • changes made to the interface of one or more
    classes will result in VB updating the registry
    information to ensure that incompatible client
    programs do not try to interoperate with the
    component

17
Creating a Server
  • Start an ActiveX EXE or DLL Project
  • Implement server classes as required
  • Set appropriate instancing for each class
  • Create suitable public methods and properties for
    communication with client
  • Compile project to target form (EXE or DLL)
  • For an ActiveX EXE, run it once on the target
    computer
  • For an ActiveX DLL, use Package and Deployment
    Wizard, or execute RegSvr32.exe

RegSvr32 c\MyComponents\NewComponent.dll
18
Using a Server in a VB Program
  • Register the server with the program using
    Project/References menu and checking on the
    server component
  • Create an instance of the component and use its
    methods
Write a Comment
User Comments (0)
About PowerShow.com