Wednesday, 5 November 2008

Another FDO Toolbox update

Here's the current state of affairs on the FDO Toolbox front.

1. FDO Toolbox development is back in motion

Life has been less hectic than it was a few months ago, and as a result, you will be seeing more regular updates to FDO Toolbox.

2. FDO Toolbox is currently being re-written

This one will need a bit of explanation.

One of my original goals for FDO Toolbox has always been extensibility. This extensibility existed in the form of extension modules (case in point: The MapGuide extension module), but there wasn't really much thought put into the original design from an extensibility standpoint (I will admit that it was pretty much haphazardly put together).

Also most of the UI components of FDO Toolbox were developed in a similar ad-hoc fashion and as a result most of the UI code is a messy affair (example: The Data Preview component)

So I have made the tough (but ultimately beneficial) decision to take off and nuke the site (most of the code-base) from orbit. Here's a summary of the planned changes I intend to make:
  • SharpDevelop Core (ICSharpCode.Core) will be used as the extensibility framework for FDO Toolbox. This is a framework that has been proven to be both simple, powerful and versatile in my evaluation of the framework. Also it's one less component to worry about from a maintenance standpoint. I'm not a fan of reinventing the wheel. If a library/component exists that does what I require and has a proven track record, I will be using it. This is one such case.
  • On the UI front, most if not all of the components will be rewritten in a Model-View-Presenter fashion. This will make maintenance and testability much easier.
  • The FDO Toolbox Core library and command-line utilities will mostly survive intact, with refactorings to adapt to the new code base.
  • The ETL API will be overhauled and replaced with the proposed replacement API.

  • /branches/0.6 will be where the code base in its current form will reside. /trunk will be overhauled and replaced with the new code base.
As a result, v0.6.0 will be the last release of FDO Toolbox in its current form.

3. FDO Toolbox is almost certain to be moving to a new home.

A few weeks ago I submitted a RFC to make FDO Toolbox an official part of the FDO project. The gist of the RFC is that the FDO Toolbox codebase will move to OSGeo, while the existing Google Code repository will be the home for the development of FDO Toolbox extensions.

It is currently going through the voting phase, which looks to have unanimous approval. So expect an announcement soon from OSGeo or myself.

EDIT: Mono.AddIns is starting to look more attractive as it is based on SharpDevelop core and has gone through more refinements.

EDIT #2: After playing around with Mono.Addins, it doesn't look as attractive anymore (mainly because it requires a whole lot of Mono-specific libraries to get the whole thing working!)

2 comments: said...

Have you considered using MonoDeveop rather than SharpDevelop? I haven't tried it, but I wonder if this could give you cross-platform capabilities... unless the lack of Mono capabilities is because of something in the FDO libraries.

Jackie Ng said...

It's not so much Mono, it's FDO that is my concern. FDO itself is cross-platform, but the wrapper isn't (it is C++/CLI mixed goop that Mono doesn't like, in theory).

Maybe one day I'll actually get a Mono environment set up and actually see if this is really the case, rather than theorizing about it :-)

Having said that, Mono.AddIns does look like a more attractive extension framework, seeing it is based on SharpDevelop, it should be quite easy to pick up.