And so begins the era of the Plug-In.
I didn’t even get around to fixing the bugs I said I would for this release: not yet. They’ll be in the next beta or the beta after that.
I also said the Plug-In stuff would include the Amazon Plug-In and it will, eventually. I wanted to get the initial release of the interface out there first, to see if it was a) usable and b) anything anyone would care about in the first place.
Example Plug-In: Included in this first cut is the ExamplePlugIn.dll. This doesn’t do much, actually, but there’s a DLL, a read me TXT file, and a CS file. As the name implies, it’s there to be an example. An example to the end users and an example to developers.
From an end user perspective, it’s an example to test the Add Plug-In tab on the Options; by default, no Plug-In is loaded as part install. When this Plug-In is selected from the menu or tool bar, it will open the Input dialog. This dialog is used by all Plug-Ins: it can handle up to three parameters – if the Plug-In doesn’t need any, it won’t show them . The labels shown are defined by the Plug-In. The list box will display all of the responses from the Plug-In, and when is one is select, it will be inserted into the draft.
From a developer’s perspective, an example of the ISharpMTExtension interface is shown in the ExamplePlugIn.cs file, using C#, but any .NET language should be able to code a Plug-In. The Class Library that offers this interface is SharpMTExtension.dll, which is in the SharpMT directory – you’ll need to Add a Reference this file when working on your own code. There’s also a little read me type file in the PlugIn directory off the SharpMT root that describes the properties and methods that are required.
The Interface is pretty stable, even though it’s listed as 0.9.1 – I have no plans to change that. The next step for Beta 2 will be getting my Amazon Plug-In to start consuming the Web Services up at Amazon. That will make for a more robust example, but I also don’t plan to offer source code for that – Amazon has some kinda key that is particular to my “account” so that code stays with me. But that’s also why I made the silly Example Plug-In, too.
Read: SharpMT FAQ