As I am working on my first application the thought occured to me:

1) Are "plug-ins" a common thing for applications to support? As in..."copy this .dll (or whatever) to this folder and bam! you get more features!"

2) How do most people handle updates? Replace the entire executable or "patch" the file?

>> 1) Are "plug-ins" a common thing for applications to support? As in..."copy this .dll (or whatever) to this folder and bam! you get more features!"

That really depends on the type of application. Some applications also offer plugins but only from the software vendors. ie an accounting software package might have different modules that under the hood they treat as plugins, but you have to purchase the plugins from the vendor. However if you take a look at WinAmp they offer plugins that anyone can author. It takes quite a bit of labor & documentation to expose a plugin interface to your application.

>>2) How do most people handle updates? Replace the entire executable or "patch" the file?
This depends on your deployment package and how the code base changed. If you use a Visual Studio .NET deployment package it replaces the contents of the old installer with the updated version.

If you use InstallShield you have minor, major and patch upgrades -- and this is up to the author. I personally use "major" upgrades with InstallShield making the installation package basically reinstall everything. If you have a software suite the size of Microsft Office then patch updates are more valuable since a reinstall of the entire software set would require large downloads and a very long reinstall period. It all depends on how you want to use it, how big the software is, and what kind of user experience you can tolerate or desire.

>> 1) Are "plug-ins" a common thing for applications to support? As in..."copy this .dll (or whatever) to this folder and bam! you get more features!"

That really depends on the type of application. Some applications also offer plugins but only from the software vendors. ie an accounting software package might have different modules that under the hood they treat as plugins, but you have to purchase the plugins from the vendor. However if you take a look at WinAmp they offer plugins that anyone can author. It takes quite a bit of labor & documentation to expose a plugin interface to your application.

>>2) How do most people handle updates? Replace the entire executable or "patch" the file?
This depends on your deployment package and how the code base changed. If you use a Visual Studio .NET deployment package it replaces the contents of the old installer with the updated version.

If you use InstallShield you have minor, major and patch upgrades -- and this is up to the author. I personally use "major" upgrades with InstallShield making the installation package basically reinstall everything. If you have a software suite the size of Microsft Office then patch updates are more valuable since a reinstall of the entire software set would require large downloads and a very long reinstall period. It all depends on how you want to use it, how big the software is, and what kind of user experience you can tolerate or desire.

Very good points...thanks!

This question has already been answered. Start a new discussion instead.