[MonoDevelop] Thoughts about AddIns

John Luke jluke@users.sourceforge.net
Wed, 07 Apr 2004 17:51:19 -0400


On Wed, 2004-04-07 at 17:41 -0400, John Luke wrote:
> Hello everyone,
> 
> 	Since we are now at the point where there are a few different addins
> and the possibility of more on the way, I began thinking about how to
> manage them.  Currently you simply place an addin file and its assembly
> in the right spot (depending on where your are running Monodevelop from)
> and then addin is loaded.  This is nice and works ok.  We even have the
> ability to have addins compiled and installed conditionally, etc.
> 
> The problem that I see arising is enabling/disabling various addins with
> various dependencies (which may not even be written in C#) and
> installing them easily.  Most plugin-enabled apps I have used have a UI
> for managing these things, which could include the possibility of adding
> an addin automatically via a url.  Also, I think shipping most of the
> possible addins with monodevelop may become a burden and even be
> undesirable for people with simple needs.
> 
> I think the solution will be to offer a mechanism similar to the
> following.  Enable/Disable existing addins without requiring removal of
> the dll/addin files.  Functionality to download a zip of an independent
> addin and have it automatically installed to the right place (it may
> require a xml file that self-describes the functionality and
> dependencies of the addin).  Installing an addin manually or via a rpm
> should also still work.
> 
> These are just my initial thoughts and I am only talking about the
> functionality not the UI yet, so comments and suggestion are welcome
> especially from the SharpDevelop guys [1] in case they want to have
> something similar (or maybe they already do?).  There are a few things I
> need to finish before I can even get to this, so it may be a while once
> we decide what to do.
> 
> [1] I'm not CC'ing Mike because I assume he is on this list, someone let
> me know if thats not true.
> 

Grrr, I forgot the part about having a small addin repository on the web
of said zip files and that the enable/disable status of an addin
probably only requires adding an enabled attribute to the addin file,
like so:
<addin enabled="true">
</addin>