Friday, 15 June 2012

Announcing: MapGuide Maestro 5.0 beta 2

It's time for another beta release of MapGuide Maestro 5.0. Here's the main changes since the previous beta

Live Map Definition Editor

As seen previously, the Live Map Definition Editor is a new experimental way of authoring maps, though truth be told, it's actually more a test harness to exercise the capabilities of the new RuntimeMap viewer and its supporting components.

And it bears repeating that this is an experimental feature, so expect bugs and un-tested corner cases.

New XML Editor

We've taken out our vanilla XML editor, which was basically a glorified text field and replaced with something more feature-packed, proven and industrial-strength, the ICSharpCode.TextEditor component, the same text editor that was used by SharpDevelop before they moved to a WPF-based UI.

By using the ICSharpCode.TextEditor component for our XML editor, we get out-of-the-box niceties like:
  • Line Numbers
  • Syntax Highlighting
  • Whitespace Markers

With potential support for things in the future like:
  • XML element auto-completion
  • Code folding
Better support for Large Feature Sources

Ever try to work with a really large data store (that has 100s of feature classes / database tables) and Maestro just grinds to either a halt or timeout? Turns out there were many instances in the Maestro code base where we were doing a full schema walk just to list some schema names or class names, which is not only complete overkill, but is also the cause of the long waits and/or timeouts.

We've hunted down all instances where a full schema walk is performed and changed them to use GetSchemas/GetClassNames/GetClassDefinition where applicable. Using these APIs has the additional benefit of being able to tap into FDO RFC23 enhancements server-side where applicable, and in most cases the FDO providers that exhibit these problems with full schema walks (ie. RDBMS providers) implement the RFC23 enhancements that will make working with such data stores much faster.

Fixed/Enhanced ODBC configuration support

First the fix: It turns out that our configuration code was writing out bad XML, meaning your configuration documents were mostly non-functional and it was impossible to actually configure a table with X/Y/Z columns as a point feature class. This is now fixed (and backported to the 4.0.x branch), so any problematic ODBC configuration documents will have to be rebuilt.

Now for the enhancement: On a similar theme of better supporting Large Feature Sources with 100s of database tables, whenever you create an ODBC configuration document for the first time, or reset one, you will now be prompted for the list of class definitions to include in the document

This has the following benefits:
  • No more long wait to build the initial document for a 100-table database because we will only request a partial schema with only the specified classes. ODBC provider implements the FDO RFC23 APIs, so this is much faster than the full schema walk, which was done previously.
  • Because this is a schema override, any queries for the structure of this feature source will only return the classes that you specified when building the document. As mentioned previously, this is not only reduces the attack surface of your data store (by only exposing the necessary tables to MapGuide), but also improves performance
Speaking of long waits...

Background-threaded operations

Think of any operation in the past that could've taken a while and would bring up that good ol hourglass of busy-ness because Maestro's GUI thread is being clogged up by said operation. These operations are now moved into the background for better UI responsiveness.

Add-In Manager

Maestro 5.0 beta 2 includes a verbatim copy of SharpDevelop's Add-In Manager

Add-ins will definitely be a topic for a future post, but for now just understand that the infrastructure is now in place to build your own add-ins for Maestro.

And as always, beta 2 includes plenty of bug fixes from beta 1.

1 comment:

mapNinja said...

Wonderful work!

Maestro really does look like a top class app now and that's just the wrapper above the API.

The new XML editor is great to work with (something still causes additinal diffs - open in XML, add a space on one line and see several diffs)

My own work-in-progress add-in shows up as well in the new add-in manager!