[mapguide-users] Re: Seeking testers for Maestro 3.0

Jackie Ng jumpinjackie at gmail.com
Wed Oct 20 07:21:27 EDT 2010


Most of what's thrown out was the UI code, the backend stuff has been
re-organised to be more cleaner and clearer.

The main changes you'll see API-wise are:

 * No giant, monolithic ServerConnectionI (now called IServerConnection)
interface. Methods that were in this interface are now broken up and added
to the respective service interfaces (IFeatureService, IResourceService,
etc). These service interface are accessible from the server connection
interface. The server connection is still your root object in this new API.
Most of the underlying implementation of this connection remains the same,
just a re-org of the API into something more manageable.

 * Implementations of the server connection interface now reside in separate
assemblies so there's one for http, one for the official MapGuide API.
ConnectionProviders.xml is used to determine which appropriate impl to
return, but from the consumer's perpsective, they still see and interact
through the same interface.

 * All resources are defined via interfaces, so you have:
   - IFeatureSource
   - ILayerDefinition
   - IMapDefinition
   - IWebLayout
   - etc, etc

 All xsd generated classes implement these interfaces. The server connection
will handle all the serialization and deserialization for you (Just like
before). If you need to create fresh instances, you use the new
ObjectFactory class to create any resource type you need. This plugs up a
major hole in the previous xsd generated classes where you normally have to
init all the reference fields/properties of a resource object manually (such
was the quality of the code generated by xsd.exe), otherwise you may get a
NullReferenceException. 

 These interfaces cover the properties exposed through the v1.0.0 schema of
each respective resource type. Changes in newer versions are exposed via
separate interfaces (eg. IWebLayout2 interface for the WebLayout 1.1.0
schema, which exposes a ping server property), and you can use version
checking built into each resource interface to determine whether it is safe
to cast to these newer interfaces to tap in to that extra functionality.

In summary: More modular server connection interface, access resource
objects (most things in this API actually) through interfaces. Definite
break in backward compatibility.

- Jackie
-- 
View this message in context: http://osgeo-org.1803224.n2.nabble.com/Seeking-testers-for-Maestro-3-0-tp5653936p5654381.html
Sent from the MapGuide Users mailing list archive at Nabble.com.


More information about the mapguide-users mailing list