Developing a PDMWorks Enterprise add-in in Microsoft VB.NET
description
Transcript of Developing a PDMWorks Enterprise add-in in Microsoft VB.NET
Developing a PDMWorks Enterprise add-in in Microsoft VB.NET Jonathan FreesonSenior Consultant / Partner xLM Solutions, LLC
Overview
Programming with the PDMWE API
Development and Debugging Techniques– Using the VB.NET Example Program in the API Help File
found on the PDMWE CD (API_GB.CHM)
Note: There are hidden slides and slide notes in the deck that go into more detail in some areas.
API: Very Important Change in PDMWE 2008
Visual Basic 6 is no longer supported.
VB6 applications upgrade to VB.NET Relatively Easily
API: Requirements
Suggest Microsoft .NET 2.0 Development Environment– Documentation has screenshots showing Visual Studio/Visual
Basic 2002 which is .NET 1.0. – 64 Bit Support introduced in .NET 2.0– SQL 2005 uses .NET 2.0– Visual Basic 2005 and 2008 can target .NET 2.0
Visual Basic Express Edition can be used in a limited fashion
Development : Getting Started – Creating The Project
Start Microsoft Visual Basic 2005 or 2008
Create a new “Class Library”
Development: Visual Basic 2008 Notes
Default target runtime is .NET 3.5
.NET 2.0 is more common that 3.5 and is more likely to be installed on all clients. – Target should be changed to .NET 2.0
Environment Setup – Adding References
2007 and 2008 use the “EDMLIB” COM Library.
Environment Setup – Adding References
Adding the COM reference creates an “COM Interop Assembly” called “Interop.EdmLib.DLL”
This DLL is a wrapper/bridge between .NET and COM
Very important: The Interop.EdmLib.DLL that is automatically created must be deployed with the Add In DLL.
Environment Setup – Project Settings
In VB 2005 and 2008, mark Assembly as “COM-Visible.”
Writing Code – Implementing Interface
The class that is called from PDMWE must implement the EdmLib.IEdmAddIn5 interface.
Getting Started -- Interfaces
GetAddInInfo– Called by PDMWE to determine what the AddIn is capable of
o Specifying which version of PDMWE is supportedo Events to which it is subscribed
OnCmd– Called whenever a subscribed event occurs– Can abort/cancel certain operations
The API
Uses a lot of Object Orientated Programming (OOP) structures.– Not easily visible to the development environment– Examples:
o Multiple versions of same object exist. IEdmVault7 is compatible with IEdmVault6, IEdmVault5, etc.
o An IEdmVault object can also be a IEdmVariableMgr5.
Well documented in the API_GB.CHM file found on the PDMWE CD. Good starting point.
Developing And Debugging
Using example from API_GB.CHM
Compiling And Deploying Test Version
Debugging
Up to now, everything could be done with “Express Editions” of Visual Basic.
Debugging requires a full Visual Studio
PDMWE runs as part of Windows Explorer– Use Visual Studio to Debug the “explorer.exe” process– Usually requires explorer.exe to be killed so close important
windows and save work
Tips: In windows, CTRL-SHIFT-ESCAPE brings up task manager– Can be used to start explorer.exe when it is killed and there is
no task bar to right click on.
Debugging – Attaching to running explorer.exe
Attach to running explorer.exe
Debugging – Create new explorer.exe
Recommended: Kill existing explorer.exe then use debugger to start new one
Debugging Demonstration
Attaching to existing explorer.exe via the “Debug -> Attach Process” command
Configuring Visual Studio Project to start explorer.exe for debugging– Must kill explorer.exe before starting
Production Deployment
VERY Important to select ALL the .DLL files
Questions?
Contact Information
Jonathan Freeson – Managing Partner, xLM [email protected]+1-517-579-9539
Slide materials and the VB.NET project file can be found at: http://www.xlmsolutions.com/sww2008