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?
Plugin Distribution/Upgrade
Re: Plugin Distribution/Upgrade
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.
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.
Re: Plugin Distribution/Upgrade
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: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?)?
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.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?
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
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).Outside developers are able to maintain their own dlls. They can publish them, sell them, or keep them private.
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
Jason Salmon
Open Dental Software
http://www.opendental.com
Re: Plugin Distribution/Upgrade
Thanks gents, those are some quality answers.
Much appreciated,
Tyler
Much appreciated,
Tyler