How can you make a BONES like application?

No “bones” about it, you could definitely make an application like the one Nathan’s team put together but it will not be trivial.  I wish my team could have developed this kind of demo years ago – Notes 8 could have used a first class application like this to demonstrate the power of the Eclipse framework.  This truly is a composite application at its best – mixing the world of Eclipse and Notes so seamlessly you don’t even know its a Lotus Notes based application – congrats!  It is really just an Eclipse RCP application surfaced through the composite application framework.  So even though it doesn’t use wiring, properties, or actions – it uses the CA to surface the RCP application from an NSF and then the application leverages all of the power of Notes that has been there forever.

So what would you need to know in order to create a similar application?  Here are a few pointers you can reference to get started:

  • The Notes.jar API’s.  From what I understand the communication with Notes is almost completely through the Java API’s.  This has challenges in itself because of the threading problems.  So you will also need to understand threading…a few bullets down.
  • SWT programming – ok, you might not have to go to the point Lotus911 did and create all of your own custom controls but you will need to know a good level of SWT programming if you do not intend on using the canned UI from the Notes Java views.  The key here is to look at the JFace stuff and learn how to create Data and Label providers.  If you want some of the low level Notes controls then check out the SWidgets that ship with Notes.  Your controls will then at least be compatible with the Notes themes.
  • The Eclipse Jobs framework – know this in and out.  You really need to understand multi-threading and the Eclipse Jobs framework makes it alot easier then working directly with threads.
  • SWT Layouts – these are a bare, not only in SWT but also AWT/Swing.  They are just very hard to figure out.
  • Eclipse plugin development.  You need to fully grasp plugins, features, and fragments. Especially if you intend on supporting multiple operating systems.  I always recommend this book, which covers jobs, swt, plugins,etc.

The last thing you need is a lot of ambition.  The application these guys put together is nothing short of amazing when you think about how long it took them or just think about the end result and realize its Lotus Notes.