Plugin Distribution/Upgrade

This forum is for programmers who have questions about the source code.
Post Reply
tholmes
Posts: 16
Joined: Fri Feb 16, 2018 10:39 am

Plugin Distribution/Upgrade

Post by tholmes » Thu Jun 07, 2018 7:38 pm

After reading the DLL Naming and Update Sequence at http://www.opendental.com/manual/plugins.html, I'm confused about how the Plugins under Setup -> Program Links are kept current.

Specifically, when a user chooses one of the stock plugins available with OD:
1) How does that Plugin's assemblies get onto the machine (e.g. are all of the Plugins under Setup -> Program Links shipped with OD?)?
2) How do any of the stock plugins manage their updates? Is there any guidance, or something that's known to work well here?

allends
Posts: 235
Joined: Fri Aug 23, 2013 11:29 am

Re: Plugin Distribution/Upgrade

Post by allends » Fri Jun 08, 2018 9:08 am

1) It is up to the customer to install your plugin on each of their computers. They must first add the program link to OpenDental, fill in the plugin dll name, and then enable it so your dll can be loaded. The stock programs are usually bridges, not plugins.
2) There are multiple ways to update plugins, but all of them are the responsibility of the developer. For instance, you could have the program ping a server of yours every time the dll was loaded and display a message stating that their version was out of date. If they clicked update on the form it would initiate a program to download and install the new dll and potentially restart OpenDental for the customer as well.
That is just one example, albeit a complicated one. The easiest method would be to simply have a message pop up that alerts them you have a version newer than their current version available for download and maybe a link to the download page.
Allen
Open Dental Software
http://www.opendental.com

User avatar
jsalmon
Posts: 1551
Joined: Tue Nov 30, 2010 12:33 pm
Contact:

Re: Plugin Distribution/Upgrade

Post by jsalmon » Fri Jun 08, 2018 9:11 am

tholmes wrote:1) How does that Plugin's assemblies get onto the machine (e.g. are all of the Plugins under Setup -> Program Links shipped with OD?)?
Stock Program Links, or Program Bridges, are treated on a case by case basis. Some don't require any assemblies and just monitor files on the harddrive so all the user has to do is purchase the 3rd party software and then we just work together. Some provide assemblies to us and we distribute them within our executable.
tholmes wrote:2) How do any of the stock plugins manage their updates? Is there any guidance, or something that's known to work well here?
Once again this is handled on a case by case basis because all softwares are different. Most write their software so that Open Dental doesn't need to know about versioning and we only know about command line args or config files.

Side note: We don't currently support "stock plugins" but only "stock bridges" (e.g. to imaging software). It would be a feature request to have us develop a "plug-in marketplace" so-to-speak. Heed the first two sentences on http://www.opendental.com/manual/plugins.html
Outside developers are able to maintain their own dlls. They can publish them, sell them, or keep them private.
The DLL Naming section you mentioned is the "automation" that Open Dental provides you so that your users can obtain the correct version of your plugin and then when Open Dental starts up it will notice the new dll. You can do this on a workstation by workstation basis or you would need to get the dll into the Update Files folder on the AtoZ share and zipped up within the "documentmisc" table (see PrefL.CopyFromHereToUpdateFiles() for details on doing that).
The best thing about a boolean is even if you are wrong, you are only off by a bit.

Jason Salmon
Open Dental Software
http://www.opendental.com

tholmes
Posts: 16
Joined: Fri Feb 16, 2018 10:39 am

Re: Plugin Distribution/Upgrade

Post by tholmes » Fri Jun 08, 2018 9:25 pm

Thanks gents, those are some quality answers.

Much appreciated,
Tyler

Post Reply