== !MapGuide Maestro Developer Documentation == This page describes how to use the MaestroAPI from the [wiki:maestro MapGuide Maestro] project in your own application. '''NOTE:''' Most of this content is out of date and refers to MaestroAPI for Maestro 2.x and older releases. For the latest developer documentation for Maestro 3.x and newer, consult the documentation in the Maestro SDK The official API for !MapGuide is a wrapper for the C++ classes, and focuses on portability and map interactions with the displayed map. The !MapGuide server has a large set of functionality that handles authoring and managing maps and spatial data. This functionality is only exposed through a few methods that allow reading and writing of Xml. The C++ classes are wrapped for PHP and Java as well as for .Net. This means that they do not support native streams or other .Net components. The C++ classes communicate with the !MapGuide server through a dedicated port. This means that it is only possible to interact with servers on the local intranet (opening the port is not recommended for security reasons). The MaestroAPI attempts to deal with those shortcommings. It exposes all the Xml structures in the !MapGuide server as managed .Net classes. It reads and writes .Net native streams and documents. Finally it has an optional usage that will communicate with the standard installation of the Web server through regular http communcation. This last point makes it possible to write standalone applications that manage the server, just like the [wiki:maestro MapGuide Maestro] application does. The developer contents currently consists of the following pages: * '''[wiki:maestro/MaestroAPI/basics Basic MaestroAPI]''' Basic explanation of the MaestroAPI and features. * '''[wiki:maestro/MaestroAPI/codebasics Code overview]''' An explanation of different parts of the MaestroAPI. * '''[http://trac.osgeo.org/mapguide/browser/branches/maestro-2.x/MaestroAPI/Documentation/Msdn-Chm/MaestroAPI.chm?format=raw MaestroAPI.chm]''' A compiled help document describing the MaestroAPI 2.x details (If you are unable to use it, try rightclicking the file and choose "Properties", then click "Unblock"). * '''[wiki:maestro/MaestroAPI/MapGuideDotNetApiVersions Native API Versions]''' An explanation how to use the !LocalNative connection with different !MapGuide versions. If you want some extra information or explanations, please ask at the [http://mapguide.osgeo.org/user.html MapGuide Users Mailing list]. You may add your own examples of MaestroAPI usage here: * '''[wiki:maestro/MaestroAPI/2.xSamples MaestroAPI 2.x Samples]''' * '''[wiki:maestro/MaestroAPI/4.0Samples MaestroAPI 4.0 Samples]''' Notes regarding API changes can be found here: * '''[wiki:maestro/MaestroAPI/2.1ApiChanges 2.1 API changes]''' * '''[wiki:maestro/MaestroAPI/Maestro3ApiComparisons 3.x API comparison]''' * '''[wiki:maestro/MaestroAPI/Maestro4ApiComparisons 4.x API comparison]'''