Genii Weblog


Civility in critiquing the ideas of others is no vice. Rudeness in defending your own ideas is no virtue.


Mon 24 Nov 2003, 01:00 PM
As my previous post jovially points out, I am looking at Eclipse more these days as the IBM "rich client" picture grows slightly clearer.  There is lots of good material on the Eclipse website, and I have been reading a lot, and the latest article is called PDE Does Plug-ins by two IBMers, Wassim Melhem and Dejan Glozic.

The article is well written, and seems to comprehensively cover the steps necessary to get your Eclipse plug-in to actually plug in.  I am certain that I will use it extensively when (and if) I get to that point.  Still and all, it leaves me with renewed appreciation for the ease with which one adds plug-ins to Lotus Notes/Domino.  Below are a few different types of extensions for Lotus Notes/Domino and what it takes to get them working.  This is by no means complete, just enough to point out the differences.

LSX - Lotus Software Extension (formerly LotusScript Extension)
These are obviously the bread and butter for Genii Software, so I'll start with them.  
  1. Write the LSX, using the LSX Toolkit (I don't mean to minimize this step, just that I am talking about deployment, not construction of plug-ins).
  2. Copy the LSX to the Notes or Domino executable directory
  3. Optionally (I don't with Midas) register the LSX in the Registry
  4. Reference the LSX in a script using the UseLSX statement or the UseLSX method of the NotesUIWorkspace


And you're done.  And that is one of the harder extensions.

Extension Manager
COEX! Links and our new products use these, so I'll mention them next.
  1. Write the extension manager (See LSX step 1 comment above).
  2. Copy the extension manager DLL or shared library to the Notes or Domino executable directory
  3. Add the extension manager to the NOTES.INI file under Extmgr_Addins= line
  4. Re-start Notes or Domino


And you're done.  Phew!

DB extension (Uses @DbCommand/@DbColumn/@DbLookup)
@YourCommand, or first Notes/Domino product, and our new @Midas Formulas both use this technology, so I'll mention them next.
  1. Write the db extension (See LSX step 1 comment above).
  2. Copy the db manager DLL or shared library to the Notes or Domino executable directory
  3. Use the @DbCommand/@DbColumn/@DbCommand specifying the name 


And you're done.  Getting the picture here, yet?

All the rest
There are lots more kinds of extensions, including add-in menus, import/export filters, server tasks, etc.  They all look pretty much like this:
  1. Write the extension (See LSX step 1 comment above).
  2. Copy the db manager DLL or shared library to the Notes or Domino executable directory
  3. Either add a couple of entries to the NOTES.INI file or add a program document or something similar


Conclusions
Draw your own conclusions.  I know I am oversimplifying, and I am not saying anything against Eclipse, but it does reflect awfully well on the Iris developers and IBM/Lotus product development team that the Notes/Domino world is as extendable as it is with such an incredibly easy interface.  Easy isn't everything, but it is something.

Copyright © 2003 Genii Software Ltd.