210 likes | 371 Vues
This guide outlines the development of a PDMWorks Enterprise add-in using Microsoft VB.NET. It covers programming with the PDMWE API, essential development and debugging techniques, and how to utilize the VB.NET example program from the API help file. Important changes in PDMWE 2008 regarding API support and requirements are discussed, including transitioning from Visual Basic 6 to VB.NET. The document offers insights on starting projects, adding dependencies, implementing interfaces, and provides tips for debugging and deploying your add-in effectively.
E N D
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 • Specifying which version of PDMWE is supported • 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: • Multiple versions of same object exist. IEdmVault7 is compatible with IEdmVault6, IEdmVault5, etc. • 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
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
Contact Information • Jonathan Freeson – Managing Partner, xLM Solutionsjfreeson@xlmsolutions.com+1-517-579-9539 • Slide materials and the VB.NET project file can be found at: http://www.xlmsolutions.com/sww2008