wiki:Maestro3ApiSplit

Split implementations across multiple assemblies

The problem

The current Maestro API assembly has direct references to the offical MapGuide API (MapGuideDotNetApi.dll). The problem here is that MapGuideDotNetApi.dll has unmanaged dependencies, making it unsuitable for use in pure-managed environments such as Mono or Silverlight.

The solution

The solution is to split the ServerConnectionI implementations into their respective assemblies. Work on the 2.1 version of the API has already laid the groundwork for this (with the ConnectionProviderRegistry class), but the separate implementations still physically resided in the same assembly. The work involved will be simply to:

  • Move the http implementation to OSGeo.MapGuide.MaestroAPI.Http
  • Move the native implementation to OSGeo.MapGuide.MaestroAPI.Native

The existing ConnectionProviders.xml file will be changed to point to these new assemblies.

A thing to note as well, is that through this approach, we can actually have native implementations that target specific versions of the MapGuide API without having to resort to bindingRedirect hacks as we currently do

Last modified 14 years ago Last modified on Jul 7, 2010, 6:23:16 AM
Note: See TracWiki for help on using the wiki.