[mapguide-commits] r5340 - in sandbox/maestro-3.0: . ExtendedModels/LayerDefinition-1.1.0 ExtendedModels/LayerDefinition-1.2.0 ExtendedModels/LayerDefinition-1.3.0 ExtendedModels/LoadProcedure-1.1.0 ExtendedModels/LoadProcedure-2.2.0 ExtendedModels/SymbolDefinition-1.1.0 ExtendedModels/WebLayout-1.1.0 Generated Localization Maestro Maestro.AddIn.ExtendedObjectModels Maestro.AddIn.ExtendedObjectModels/Commands Maestro.AddIn.ExtendedObjectModels/Templates Maestro.Base Maestro.Base/Commands Maestro.Base/Commands/SiteExplorer Maestro.Base/Commands/Test Maestro.Base/Editor Maestro.Base/Properties Maestro.Base/Services/DragDropHandlers Maestro.Base/Templates Maestro.Base/UI Maestro.Editors Maestro.Editors/Common Maestro.Editors/DrawingSource Maestro.Editors/FeatureSource Maestro.Editors/FeatureSource/Preview Maestro.Editors/Generic Maestro.Editors/LayerDefinition/Vector Maestro.Editors/LayerDefinition/Vector/Scales Maestro.Editors/LayerDefinition/Vector/StyleEditors Maestro.Editors/LayerDefi nition/Vector/Thematics Maestro.Editors/MapDefinition Maestro.Editors/PrintLayout Maestro.Editors/Properties Maestro.Editors/WebLayout Maestro.Editors/WebLayout/Commands Maestro.Login Maestro.Packaging Maestro.Shared.UI MaestroAPITests MaestroBaseTests MaestroFsPreview MgCooker OSGeo.MapGuide.MaestroAPI OSGeo.MapGuide.MaestroAPI/Capability OSGeo.MapGuide.MaestroAPI/Commands OSGeo.MapGuide.MaestroAPI/CoordinateSystem OSGeo.MapGuide.MaestroAPI/CrossConnection OSGeo.MapGuide.MaestroAPI/Exceptions OSGeo.MapGuide.MaestroAPI/Feature OSGeo.MapGuide.MaestroAPI/IO OSGeo.MapGuide.MaestroAPI/Mapping OSGeo.MapGuide.MaestroAPI/ObjectModels OSGeo.MapGuide.MaestroAPI/Properties OSGeo.MapGuide.MaestroAPI/Resource OSGeo.MapGuide.MaestroAPI/Resource/Conversion OSGeo.MapGuide.MaestroAPI/Resource/Validation OSGeo.MapGuide.MaestroAPI/Serialization OSGeo.MapGuide.MaestroAPI/Services OSGeo.MapGuide.MaestroAPI.Http OSGeo.MapGuide.MaestroAPI.Native Properties SDK

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Wed Oct 27 05:00:54 EDT 2010


Author: jng
Date: 2010-10-27 02:00:54 -0700 (Wed, 27 Oct 2010)
New Revision: 5340

Added:
   sandbox/maestro-3.0/Localization/
   sandbox/maestro-3.0/Localization/ConvertResX.exe
   sandbox/maestro-3.0/Localization/Duplicati.Library.Core.dll
   sandbox/maestro-3.0/Localization/LocalizationTool - license.txt
   sandbox/maestro-3.0/Localization/LocalizationTool - source.txt
   sandbox/maestro-3.0/Localization/LocalizationTool.exe
   sandbox/maestro-3.0/Localization/Translate.xml
   sandbox/maestro-3.0/Localization/configuration.xml
   sandbox/maestro-3.0/Localization/ignore.da-DK.xml
   sandbox/maestro-3.0/Localization/ignore.fr-FR.xml
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/MgServerConnectionBase.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/IRepositoryItem.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolLibraryInterfaces.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/PlatformConnectionBase.cs
   sandbox/maestro-3.0/Properties/maestroapi.key
   sandbox/maestro-3.0/SDK/
   sandbox/maestro-3.0/SDK/SDK.sln
Removed:
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/OSGeo.MapGuide.MaestroAPI.Native-1.2.0.csproj
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/OSGeo.MapGuide.MaestroAPI.Native-2.0.2.csproj
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/OSGeo.MapGuide.MaestroAPI.Native-2.1.0.csproj
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/OSGeo.MapGuide.MaestroAPI.Native-2.2.0.csproj
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/MaestroResourceObjectProviderAttribute.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ServerConnectionBase.cs
Modified:
   sandbox/maestro-3.0/ExtendedModels/LayerDefinition-1.1.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-1.1.0.csproj
   sandbox/maestro-3.0/ExtendedModels/LayerDefinition-1.2.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-1.2.0.csproj
   sandbox/maestro-3.0/ExtendedModels/LayerDefinition-1.3.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-1.3.0.csproj
   sandbox/maestro-3.0/ExtendedModels/LoadProcedure-1.1.0/OSGeo.MapGuide.ObjectModels.LoadProcedure-1.1.0.csproj
   sandbox/maestro-3.0/ExtendedModels/LoadProcedure-2.2.0/OSGeo.MapGuide.ObjectModels.LoadProcedure-2.2.0.csproj
   sandbox/maestro-3.0/ExtendedModels/SymbolDefinition-1.1.0/OSGeo.MapGuide.ObjectModels.SymbolDefinition-1.1.0.csproj
   sandbox/maestro-3.0/ExtendedModels/WebLayout-1.1.0/OSGeo.MapGuide.ObjectModels.WebLayout-1.1.0.csproj
   sandbox/maestro-3.0/Generated/ApplicationDefinition-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/ApplicationDefinitionInfo-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/BatchPropertyCollection-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/DataStoreList-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/DrawingSectionList-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/DrawingSectionResourceList-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/DrawingSource-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/Envelope-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/FdoLongTransactionList-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/FdoProviderCapabilities-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/FdoSpatialContextList-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/FeatureProviderRegistry-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/FeatureSet-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/FeatureSource-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/Group-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/GroupList-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/LayerDefinition-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/LayerDefinition-1.1.0.designer.cs
   sandbox/maestro-3.0/Generated/LayerDefinition-1.2.0.designer.cs
   sandbox/maestro-3.0/Generated/LayerDefinition-1.3.0.designer.cs
   sandbox/maestro-3.0/Generated/LoadProcedure-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/LoadProcedure-1.1.0.designer.cs
   sandbox/maestro-3.0/Generated/LoadProcedure-2.2.0.designer.cs
   sandbox/maestro-3.0/Generated/MapDefinition-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/PrintLayout-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/RepositoryList-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/ResourceDataList-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/ResourceList-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/ResourcePackageManifest-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/ResourceReferenceList-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/Role-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/SelectAggregate-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/Server-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/ServerList-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/SiteInformation-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/SiteVersion-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/StringCollection-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/SymbolDefinition-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/SymbolDefinition-1.1.0.designer.cs
   sandbox/maestro-3.0/Generated/SymbolLibrary-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/Types-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/UnmanagedDataList-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/User-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/UserList-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/WebLayout-1.0.0.designer.cs
   sandbox/maestro-3.0/Generated/WebLayout-1.1.0.designer.cs
   sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Commands/StartupCommand.cs
   sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Maestro.AddIn.ExtendedObjectModels.csproj
   sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Templates/SQLiteLoadProcedureItemTemplate.cs
   sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Templates/VectorLayer110ItemTemplate.cs
   sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Templates/VectorLayer120ItemTemplate.cs
   sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Templates/VectorLayer130ItemTemplate.cs
   sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Templates/WebLayout110ItemTemplate.cs
   sandbox/maestro-3.0/Maestro.Base/Commands/PasteCommand.cs
   sandbox/maestro-3.0/Maestro.Base/Commands/SiteExplorer/NewFolderCommand.cs
   sandbox/maestro-3.0/Maestro.Base/Commands/SiteExplorer/RenameCommand.cs
   sandbox/maestro-3.0/Maestro.Base/Commands/Test/SelectFdoProviderCommand.cs
   sandbox/maestro-3.0/Maestro.Base/Editor/LayerDefinitionEditor.cs
   sandbox/maestro-3.0/Maestro.Base/Editor/ResourceEditorService.cs
   sandbox/maestro-3.0/Maestro.Base/Editor/ResourcePreviewEngine.cs
   sandbox/maestro-3.0/Maestro.Base/Editor/XmlEditor.cs
   sandbox/maestro-3.0/Maestro.Base/Maestro.Base.addin
   sandbox/maestro-3.0/Maestro.Base/Maestro.Base.csproj
   sandbox/maestro-3.0/Maestro.Base/Properties/Resources.Designer.cs
   sandbox/maestro-3.0/Maestro.Base/Properties/Resources.resx
   sandbox/maestro-3.0/Maestro.Base/Services/DragDropHandlers/SdfFileHandler.cs
   sandbox/maestro-3.0/Maestro.Base/Services/DragDropHandlers/ShpFileHandler.cs
   sandbox/maestro-3.0/Maestro.Base/Services/DragDropHandlers/SltFileHandler.cs
   sandbox/maestro-3.0/Maestro.Base/Services/DragDropHandlers/XmlResFileHandler.cs
   sandbox/maestro-3.0/Maestro.Base/Templates/ApplicationDefinitionItemTemplate.cs
   sandbox/maestro-3.0/Maestro.Base/Templates/DrawingLayerDefinitionItemTemplate.cs
   sandbox/maestro-3.0/Maestro.Base/Templates/DrawingSourceItemTemplate.cs
   sandbox/maestro-3.0/Maestro.Base/Templates/DwfLoadProcedureItemTemplate.cs
   sandbox/maestro-3.0/Maestro.Base/Templates/FeatureSourceItemTemplate.cs
   sandbox/maestro-3.0/Maestro.Base/Templates/MapDefinitionItemTemplate.cs
   sandbox/maestro-3.0/Maestro.Base/Templates/PrintLayoutItemTemplate.cs
   sandbox/maestro-3.0/Maestro.Base/Templates/RasterLayerDefinitionItemTemplate.cs
   sandbox/maestro-3.0/Maestro.Base/Templates/SdfLoadProcedureItemTemplate.cs
   sandbox/maestro-3.0/Maestro.Base/Templates/ShpLoadProcedureItemTemplate.cs
   sandbox/maestro-3.0/Maestro.Base/Templates/SymbolDefinitionItemTemplate.cs
   sandbox/maestro-3.0/Maestro.Base/Templates/VectorLayerDefinitionItemTemplate.cs
   sandbox/maestro-3.0/Maestro.Base/Templates/WebLayoutItemTemplate.cs
   sandbox/maestro-3.0/Maestro.Base/UI/ResourcePropertiesDialog.cs
   sandbox/maestro-3.0/Maestro.Base/UI/SiteExplorer.cs
   sandbox/maestro-3.0/Maestro.Editors/Common/SymbolPicker.cs
   sandbox/maestro-3.0/Maestro.Editors/DrawingSource/SourceSectionCtrl.cs
   sandbox/maestro-3.0/Maestro.Editors/FeatureSource/ExtensionsCtrl.cs
   sandbox/maestro-3.0/Maestro.Editors/FeatureSource/Preview/PreviewPane.cs
   sandbox/maestro-3.0/Maestro.Editors/Generic/XmlEditorCtrl.cs
   sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/Scales/ConditionListButtons.cs
   sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeConditions.cs
   sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/StyleEditors/AreaFeatureStyleEditor.cs
   sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/StyleEditors/FontStyleEditor.cs
   sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/StyleEditors/LineFeatureStyleEditor.cs
   sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/StyleEditors/PointFeatureStyleEditor.cs
   sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/Thematics/ThemeCreator.cs
   sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/VectorLayerStyleSectionCtrl.cs
   sandbox/maestro-3.0/Maestro.Editors/Maestro.Editors.csproj
   sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapDefinitionEditorCtrl.cs
   sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapSettingsSectionCtrl.cs
   sandbox/maestro-3.0/Maestro.Editors/PrintLayout/LogoDialog.cs
   sandbox/maestro-3.0/Maestro.Editors/Properties/Resources.Designer.cs
   sandbox/maestro-3.0/Maestro.Editors/Properties/Resources.resx
   sandbox/maestro-3.0/Maestro.Editors/WebLayout/Commands/SearchCmdCtrl.cs
   sandbox/maestro-3.0/Maestro.Editors/WebLayout/WebLayoutCommandsCtrl.cs
   sandbox/maestro-3.0/Maestro.Editors/WebLayout/WebLayoutSettingsCtrl.cs
   sandbox/maestro-3.0/Maestro.Login/HttpLoginCtrl.cs
   sandbox/maestro-3.0/Maestro.Login/LoginDialog.cs
   sandbox/maestro-3.0/Maestro.Login/Maestro.Login.csproj
   sandbox/maestro-3.0/Maestro.Login/PreferedSite.cs
   sandbox/maestro-3.0/Maestro.Packaging/Maestro.Packaging.csproj
   sandbox/maestro-3.0/Maestro.Packaging/PackageBuilder.cs
   sandbox/maestro-3.0/Maestro.Shared.UI/Maestro.Shared.UI.csproj
   sandbox/maestro-3.0/Maestro/Maestro.csproj
   sandbox/maestro-3.0/Maestro/Maestro.sln
   sandbox/maestro-3.0/Maestro/Program.cs
   sandbox/maestro-3.0/MaestroAPITests/MaestroAPITests.csproj
   sandbox/maestro-3.0/MaestroAPITests/ObjectTests.cs
   sandbox/maestro-3.0/MaestroAPITests/ResourceTests.cs
   sandbox/maestro-3.0/MaestroAPITests/SerializationTests.cs
   sandbox/maestro-3.0/MaestroAPITests/ValidationTests.cs
   sandbox/maestro-3.0/MaestroBaseTests/MaestroBaseTests.csproj
   sandbox/maestro-3.0/MaestroFsPreview/MaestroFsPreview.csproj
   sandbox/maestro-3.0/MaestroFsPreview/Program.cs
   sandbox/maestro-3.0/MgCooker/MgCooker.csproj
   sandbox/maestro-3.0/MgCooker/Program.cs
   sandbox/maestro-3.0/MgCooker/SetupRun.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Http/HttpServerConnection.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Http/OSGeo.MapGuide.MaestroAPI.Http.csproj
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/LocalNativeConnection.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/OSGeo.MapGuide.MaestroAPI.Native.csproj
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/BindingListExtensions.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Capability/ConnectionCapabilities.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Check.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Commands/CommandType.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Commands/ExecuteLoadProcedure.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Commands/ICommand.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ConnectionProviderRegistry.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/CoordinateSystem.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/CoordinateSystemCatalog.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/CoordinateSystemCategory.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/ICoordinateSystemCatalog.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/CrossConnection/ResourceMigrator.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Enums.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/CustomPropertyNotFoundException.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/MaestroException.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/NestedExceptionMessageProcessor.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/ResourceConversionException.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/SerializationException.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/UnsupportedResourceTypeException.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/UnsupportedServiceTypeException.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Feature/ClassDefinition.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Feature/FeatureSetReader.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Feature/FeatureSourceDescription.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/IConnectionCapabilities.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/IO/FileBufferedStreamReader.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/IServerConnection.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/LengthyOperationCallbackArgs.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/MaestroApiProviderAttribute.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Mapping/MapSelectionBase.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeLayerBase.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMapBase.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/OSGeo.MapGuide.MaestroAPI.csproj
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/ApplicationDefinition.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/DrawingSource.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/DrawingSourceInterfaces.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/Envelope.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSource.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSourceInterfaces.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/GridLayerDefinitionImpl.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/IDynamicInvokable.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerFactory.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaceExtensions.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaces.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcFactory.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcedure.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcedureInterfaces.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinition.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinitionInterfaces.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/ObjectFactory.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/PrintLayout.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/PrintLayoutInterfaces.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/ResourceItems.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/ResourceList.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/ResourcePackageManifest.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolDefinition.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolInterfaces.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolLibrary.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/UnmanagedDataList.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/UntypedResource.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/VectorLayerDefinitionImpl.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/WebLayout.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/WebLayoutInterfaces.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Platform.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Properties/Resources.Designer.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Properties/Resources.resx
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Conversion/IResourceConverter.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Conversion/ResourceConverter.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Conversion/ResourceUpgrader.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/IResource.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/IResourceValidator.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/IVersionedEntity.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/ResourceContentVersionChecker.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/ResourceIdentifier.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/ResourceSchemaChain.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/ResourceTypeDescriptor.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ApplicationDefinitionValidator.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseLayerDefinitionValidator.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseLoadProcedureValidator.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseWebLayoutValidator.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/DrawingSourceValidator.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/FeatureSourceValidator.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/LayerDefinitionValidator.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/LoadProcedureValidator.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/MapDefinitionValidator.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/PrintLayoutValidator.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidatorLoader.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidatorSet.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/SymbolDefinitionValidator.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/SymbolLibraryValidator.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ValidationResultSet.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/WebLayoutValidator.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ResourceTypeRegistry.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Serialization/IBinarySerializeable.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Serialization/MgBinaryDeserializer.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Serialization/MgBinarySerializer.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IFeatureService.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IFusionService.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IMappingService.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IResourceService.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IService.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/ISiteService.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/ServiceType.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/SiteVersion.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Utf8XmlWriter.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Utility.cs
   sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/XmlValidator.cs
Log:
A mega set of changes for 3.0 sandbox:
 - #1507: Split the Maestro solution into application and SDK sub-solutions. Change build output paths of SDK-related projects.
 - Split ServerConnectionBase into a PlatformConnectionBase and a MgServerConnectionBase (which inherits from PlatformConnectionBase). PlatformConnectionBase provides a base implementation of resource and feature service APIs, while MgServerConnectionBase implements the rest of the former ServerConnectionBase
 - Remove un-used APIs from service interfaces and connection classes. Also remove folder related APIs from IResourceService as the resource version of these APIs also works on folders provided the folder resource ids are properly formatted.
 - Move all known localizable strings to the main string bundle of their respective assemblies.
 - Migrate localization framework from 2.x
 - Tweak the startup process of affected applications to accommodate localization
 - Add API documentation for MaestroAPI. Disable compiler warnings relating to XML documentation for generated classes.

Modified: sandbox/maestro-3.0/ExtendedModels/LayerDefinition-1.1.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-1.1.0.csproj
===================================================================
--- sandbox/maestro-3.0/ExtendedModels/LayerDefinition-1.1.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-1.1.0.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/ExtendedModels/LayerDefinition-1.1.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-1.1.0.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -17,7 +17,7 @@
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-    <OutputPath>..\..\out\Debug\</OutputPath>
+    <OutputPath>..\..\SDK\bin\Debug\</OutputPath>
     <DefineConstants>TRACE;DEBUG;LDF_110</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -25,7 +25,7 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-    <OutputPath>..\..\out\Release\</OutputPath>
+    <OutputPath>..\..\SDK\bin\Release\</OutputPath>
     <DefineConstants>TRACE;LDF_110</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -61,17 +61,17 @@
     </Compile>
   </ItemGroup>
   <ItemGroup>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+  </ItemGroup>
+  <ItemGroup>
     <ProjectReference Include="..\..\OSGeo.MapGuide.MaestroAPI\OSGeo.MapGuide.MaestroAPI.csproj">
       <Project>{80FA3158-8B5F-48D1-A393-0378AFE48A7E}</Project>
       <Name>OSGeo.MapGuide.MaestroAPI</Name>
     </ProjectReference>
   </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="Properties\Resources.resx">
-      <Generator>ResXFileCodeGenerator</Generator>
-      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
-    </EmbeddedResource>
-  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.

Modified: sandbox/maestro-3.0/ExtendedModels/LayerDefinition-1.2.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-1.2.0.csproj
===================================================================
--- sandbox/maestro-3.0/ExtendedModels/LayerDefinition-1.2.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-1.2.0.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/ExtendedModels/LayerDefinition-1.2.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-1.2.0.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -17,7 +17,7 @@
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-    <OutputPath>..\..\out\Debug\</OutputPath>
+    <OutputPath>..\..\SDK\bin\Debug\</OutputPath>
     <DefineConstants>TRACE;DEBUG;LDF_120</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -25,7 +25,7 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-    <OutputPath>..\..\out\Release\</OutputPath>
+    <OutputPath>..\..\SDK\bin\Release\</OutputPath>
     <DefineConstants>TRACE;LDF_120</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -61,17 +61,17 @@
     </Compile>
   </ItemGroup>
   <ItemGroup>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+  </ItemGroup>
+  <ItemGroup>
     <ProjectReference Include="..\..\OSGeo.MapGuide.MaestroAPI\OSGeo.MapGuide.MaestroAPI.csproj">
       <Project>{80FA3158-8B5F-48D1-A393-0378AFE48A7E}</Project>
       <Name>OSGeo.MapGuide.MaestroAPI</Name>
     </ProjectReference>
   </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="Properties\Resources.resx">
-      <Generator>ResXFileCodeGenerator</Generator>
-      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
-    </EmbeddedResource>
-  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.

Modified: sandbox/maestro-3.0/ExtendedModels/LayerDefinition-1.3.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-1.3.0.csproj
===================================================================
--- sandbox/maestro-3.0/ExtendedModels/LayerDefinition-1.3.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-1.3.0.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/ExtendedModels/LayerDefinition-1.3.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-1.3.0.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -17,7 +17,7 @@
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-    <OutputPath>..\..\out\Debug\</OutputPath>
+    <OutputPath>..\..\SDK\bin\Debug\</OutputPath>
     <DefineConstants>TRACE;DEBUG;LDF_130</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -25,7 +25,7 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-    <OutputPath>..\..\out\Release\</OutputPath>
+    <OutputPath>..\..\SDK\bin\Release\</OutputPath>
     <DefineConstants>TRACE;LDF_130</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -61,17 +61,17 @@
     </Compile>
   </ItemGroup>
   <ItemGroup>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+  </ItemGroup>
+  <ItemGroup>
     <ProjectReference Include="..\..\OSGeo.MapGuide.MaestroAPI\OSGeo.MapGuide.MaestroAPI.csproj">
       <Project>{80FA3158-8B5F-48D1-A393-0378AFE48A7E}</Project>
       <Name>OSGeo.MapGuide.MaestroAPI</Name>
     </ProjectReference>
   </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="Properties\Resources.resx">
-      <Generator>ResXFileCodeGenerator</Generator>
-      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
-    </EmbeddedResource>
-  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.

Modified: sandbox/maestro-3.0/ExtendedModels/LoadProcedure-1.1.0/OSGeo.MapGuide.ObjectModels.LoadProcedure-1.1.0.csproj
===================================================================
--- sandbox/maestro-3.0/ExtendedModels/LoadProcedure-1.1.0/OSGeo.MapGuide.ObjectModels.LoadProcedure-1.1.0.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/ExtendedModels/LoadProcedure-1.1.0/OSGeo.MapGuide.ObjectModels.LoadProcedure-1.1.0.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -17,7 +17,7 @@
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-    <OutputPath>..\..\out\Debug\</OutputPath>
+    <OutputPath>..\..\SDK\bin\Debug\</OutputPath>
     <DefineConstants>TRACE;DEBUG;LP110</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -25,7 +25,7 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-    <OutputPath>..\..\out\Release\</OutputPath>
+    <OutputPath>..\..\SDK\bin\Release\</OutputPath>
     <DefineConstants>TRACE;LP110</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>

Modified: sandbox/maestro-3.0/ExtendedModels/LoadProcedure-2.2.0/OSGeo.MapGuide.ObjectModels.LoadProcedure-2.2.0.csproj
===================================================================
--- sandbox/maestro-3.0/ExtendedModels/LoadProcedure-2.2.0/OSGeo.MapGuide.ObjectModels.LoadProcedure-2.2.0.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/ExtendedModels/LoadProcedure-2.2.0/OSGeo.MapGuide.ObjectModels.LoadProcedure-2.2.0.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -17,7 +17,7 @@
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-    <OutputPath>..\..\out\Debug\</OutputPath>
+    <OutputPath>..\..\SDK\bin\Debug\</OutputPath>
     <DefineConstants>TRACE;DEBUG;LP220</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -25,7 +25,7 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-    <OutputPath>..\..\out\Release\</OutputPath>
+    <OutputPath>..\..\SDK\bin\Release\</OutputPath>
     <DefineConstants>TRACE;LP220</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>

Modified: sandbox/maestro-3.0/ExtendedModels/SymbolDefinition-1.1.0/OSGeo.MapGuide.ObjectModels.SymbolDefinition-1.1.0.csproj
===================================================================
--- sandbox/maestro-3.0/ExtendedModels/SymbolDefinition-1.1.0/OSGeo.MapGuide.ObjectModels.SymbolDefinition-1.1.0.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/ExtendedModels/SymbolDefinition-1.1.0/OSGeo.MapGuide.ObjectModels.SymbolDefinition-1.1.0.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -17,7 +17,7 @@
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-    <OutputPath>..\..\out\Debug\</OutputPath>
+    <OutputPath>..\..\SDK\bin\Debug\</OutputPath>
     <DefineConstants>DEBUG;TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -25,7 +25,7 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-    <OutputPath>..\..\out\Release\</OutputPath>
+    <OutputPath>..\..\SDK\bin\Release\</OutputPath>
     <DefineConstants>TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>

Modified: sandbox/maestro-3.0/ExtendedModels/WebLayout-1.1.0/OSGeo.MapGuide.ObjectModels.WebLayout-1.1.0.csproj
===================================================================
--- sandbox/maestro-3.0/ExtendedModels/WebLayout-1.1.0/OSGeo.MapGuide.ObjectModels.WebLayout-1.1.0.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/ExtendedModels/WebLayout-1.1.0/OSGeo.MapGuide.ObjectModels.WebLayout-1.1.0.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -17,7 +17,7 @@
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-    <OutputPath>..\..\out\Debug\</OutputPath>
+    <OutputPath>..\..\SDK\bin\Debug\</OutputPath>
     <DefineConstants>TRACE;DEBUG;WL110</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -25,7 +25,7 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-    <OutputPath>..\..\out\Release\</OutputPath>
+    <OutputPath>..\..\SDK\bin\Release\</OutputPath>
     <DefineConstants>TRACE;WL110</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>

Modified: sandbox/maestro-3.0/Generated/ApplicationDefinition-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/ApplicationDefinition-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/ApplicationDefinition-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/ApplicationDefinitionInfo-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/ApplicationDefinitionInfo-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/ApplicationDefinitionInfo-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/BatchPropertyCollection-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/BatchPropertyCollection-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/BatchPropertyCollection-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/DataStoreList-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/DataStoreList-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/DataStoreList-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/DrawingSectionList-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/DrawingSectionList-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/DrawingSectionList-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/DrawingSectionResourceList-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/DrawingSectionResourceList-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/DrawingSectionResourceList-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/DrawingSource-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/DrawingSource-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/DrawingSource-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001
@@ -4,7 +5,8 @@
 //    <NameSpace>OSGeo.MapGuide.ObjectModels.Common</NameSpace><Collection>BindingList</Collection><codeType>CSharp</codeType><EnableDataBinding>True</EnableDataBinding><EnableLasyLoading>False</EnableLasyLoading><HidePrivateFieldInIDE>True</HidePrivateFieldInIDE><EnableSummaryComment>True</EnableSummaryComment><IncludeSerializeMethod>True</IncludeSerializeMethod><UseBaseClass>False</UseBaseClass><GenerateCloneMethod>True</GenerateCloneMethod><GenerateDataContracts>False</GenerateDataContracts><CodeBaseTag>Net20</CodeBaseTag><SerializeMethodName>Serialize</SerializeMethodName><DeserializeMethodName>Deserialize</DeserializeMethodName><SaveToFileMethodName>SaveToFile</SaveToFileMethodName><LoadFromFileMethodName>LoadFromFile</LoadFromFileMethodName><GenerateXMLAttributes>True</GenerateXMLAttributes><AutomaticProperties>False</AutomaticProperties><DisableDebug>False</DisableDebug><CustomUsings></CustomUsings><ExcludeIncludedTypes>False</ExcludeIncludedTypes><EnableInitializeFie
 lds>False</EnableInitializeFields>
 //  </auto-generated>
 // ------------------------------------------------------------------------------
-namespace OSGeo.MapGuide.ObjectModels.DrawingSource {
+namespace OSGeo.MapGuide.ObjectModels.DrawingSource_1_0_0
+{
     using System;
     using System.Diagnostics;
     using System.Xml.Serialization;
@@ -12,6 +14,7 @@
     using System.Xml.Schema;
     using System.ComponentModel;
     using System.IO;
+    using OSGeo.MapGuide.ObjectModels.DrawingSource;
     
     
     /// <summary>

Modified: sandbox/maestro-3.0/Generated/Envelope-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/Envelope-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/Envelope-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/FdoLongTransactionList-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/FdoLongTransactionList-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/FdoLongTransactionList-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/FdoProviderCapabilities-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/FdoProviderCapabilities-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/FdoProviderCapabilities-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/FdoSpatialContextList-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/FdoSpatialContextList-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/FdoSpatialContextList-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/FeatureProviderRegistry-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/FeatureProviderRegistry-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/FeatureProviderRegistry-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108, 1570
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/FeatureSet-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/FeatureSet-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/FeatureSet-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/FeatureSource-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/FeatureSource-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/FeatureSource-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001
@@ -4,7 +5,8 @@
 //    <NameSpace>OSGeo.MapGuide.ObjectModels.FeatureSource</NameSpace><Collection>BindingList</Collection><codeType>CSharp</codeType><EnableDataBinding>True</EnableDataBinding><EnableLasyLoading>False</EnableLasyLoading><HidePrivateFieldInIDE>True</HidePrivateFieldInIDE><EnableSummaryComment>True</EnableSummaryComment><IncludeSerializeMethod>True</IncludeSerializeMethod><UseBaseClass>False</UseBaseClass><GenerateCloneMethod>True</GenerateCloneMethod><GenerateDataContracts>False</GenerateDataContracts><CodeBaseTag>Net20</CodeBaseTag><SerializeMethodName>Serialize</SerializeMethodName><DeserializeMethodName>Deserialize</DeserializeMethodName><SaveToFileMethodName>SaveToFile</SaveToFileMethodName><LoadFromFileMethodName>LoadFromFile</LoadFromFileMethodName><GenerateXMLAttributes>True</GenerateXMLAttributes><AutomaticProperties>False</AutomaticProperties><DisableDebug>False</DisableDebug><CustomUsings></CustomUsings><ExcludeIncludedTypes>False</ExcludeIncludedTypes><EnableInitia
 lizeFields>False</EnableInitializeFields>
 //  </auto-generated>
 // ------------------------------------------------------------------------------
-namespace OSGeo.MapGuide.ObjectModels.FeatureSource {
+namespace OSGeo.MapGuide.ObjectModels.FeatureSource_1_0_0
+{
     using System;
     using System.Diagnostics;
     using System.Xml.Serialization;
@@ -12,8 +14,8 @@
     using System.Xml.Schema;
     using System.ComponentModel;
     using System.IO;
+    using OSGeo.MapGuide.ObjectModels.FeatureSource;
     
-    
     [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
     [System.SerializableAttribute()]
     [System.Diagnostics.DebuggerStepThroughAttribute()]

Modified: sandbox/maestro-3.0/Generated/Group-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/Group-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/Group-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/GroupList-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/GroupList-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/GroupList-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/LayerDefinition-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/LayerDefinition-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/LayerDefinition-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/LayerDefinition-1.1.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/LayerDefinition-1.1.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/LayerDefinition-1.1.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/LayerDefinition-1.2.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/LayerDefinition-1.2.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/LayerDefinition-1.2.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/LayerDefinition-1.3.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/LayerDefinition-1.3.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/LayerDefinition-1.3.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/LoadProcedure-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/LoadProcedure-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/LoadProcedure-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/LoadProcedure-1.1.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/LoadProcedure-1.1.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/LoadProcedure-1.1.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/LoadProcedure-2.2.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/LoadProcedure-2.2.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/LoadProcedure-2.2.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/MapDefinition-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/MapDefinition-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/MapDefinition-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001
@@ -4,7 +5,8 @@
 //    <NameSpace>OSGeo.MapGuide.ObjectModels.MapDefinition</NameSpace><Collection>BindingList</Collection><codeType>CSharp</codeType><EnableDataBinding>True</EnableDataBinding><EnableLasyLoading>False</EnableLasyLoading><HidePrivateFieldInIDE>True</HidePrivateFieldInIDE><EnableSummaryComment>True</EnableSummaryComment><IncludeSerializeMethod>True</IncludeSerializeMethod><UseBaseClass>False</UseBaseClass><GenerateCloneMethod>True</GenerateCloneMethod><GenerateDataContracts>False</GenerateDataContracts><CodeBaseTag>Net20</CodeBaseTag><SerializeMethodName>Serialize</SerializeMethodName><DeserializeMethodName>Deserialize</DeserializeMethodName><SaveToFileMethodName>SaveToFile</SaveToFileMethodName><LoadFromFileMethodName>LoadFromFile</LoadFromFileMethodName><GenerateXMLAttributes>True</GenerateXMLAttributes><AutomaticProperties>False</AutomaticProperties><DisableDebug>False</DisableDebug><CustomUsings></CustomUsings><ExcludeIncludedTypes>False</ExcludeIncludedTypes><EnableInitia
 lizeFields>False</EnableInitializeFields>
 //  </auto-generated>
 // ------------------------------------------------------------------------------
-namespace OSGeo.MapGuide.ObjectModels.MapDefinition {
+namespace OSGeo.MapGuide.ObjectModels.MapDefinition_1_0_0
+{
     using System;
     using System.Diagnostics;
     using System.Xml.Serialization;
@@ -14,8 +16,8 @@
     using System.IO;
     using OSGeo.MapGuide.MaestroAPI;
     using System.Drawing;
+    using OSGeo.MapGuide.ObjectModels.MapDefinition;
     
-    
     /// <summary>
     /// A MapDefinition defines the collection of layers, groupings of layers, and base map
     /// </summary>

Modified: sandbox/maestro-3.0/Generated/PrintLayout-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/PrintLayout-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/PrintLayout-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001
@@ -4,7 +5,7 @@
 //    <NameSpace>OSGeo.MapGuide.ObjectModels.PrintLayout</NameSpace><Collection>BindingList</Collection><codeType>CSharp</codeType><EnableDataBinding>True</EnableDataBinding><EnableLasyLoading>False</EnableLasyLoading><HidePrivateFieldInIDE>True</HidePrivateFieldInIDE><EnableSummaryComment>True</EnableSummaryComment><IncludeSerializeMethod>True</IncludeSerializeMethod><UseBaseClass>False</UseBaseClass><GenerateCloneMethod>True</GenerateCloneMethod><GenerateDataContracts>False</GenerateDataContracts><CodeBaseTag>Net20</CodeBaseTag><SerializeMethodName>Serialize</SerializeMethodName><DeserializeMethodName>Deserialize</DeserializeMethodName><SaveToFileMethodName>SaveToFile</SaveToFileMethodName><LoadFromFileMethodName>LoadFromFile</LoadFromFileMethodName><GenerateXMLAttributes>True</GenerateXMLAttributes><AutomaticProperties>False</AutomaticProperties><DisableDebug>False</DisableDebug><CustomUsings></CustomUsings><ExcludeIncludedTypes>False</ExcludeIncludedTypes><EnableInitiali
 zeFields>False</EnableInitializeFields>
 //  </auto-generated>
 // ------------------------------------------------------------------------------
-namespace OSGeo.MapGuide.ObjectModels.PrintLayout {
+namespace OSGeo.MapGuide.ObjectModels.PrintLayout_1_0_0 {
     using System;
     using System.Diagnostics;
     using System.Xml.Serialization;
@@ -12,8 +13,8 @@
     using System.Xml.Schema;
     using System.ComponentModel;
     using System.IO;
+    using OSGeo.MapGuide.ObjectModels.PrintLayout;
     
-    
     [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
     [System.SerializableAttribute()]
     [System.Diagnostics.DebuggerStepThroughAttribute()]

Modified: sandbox/maestro-3.0/Generated/RepositoryList-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/RepositoryList-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/RepositoryList-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/ResourceDataList-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/ResourceDataList-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/ResourceDataList-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/ResourceList-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/ResourceList-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/ResourceList-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/ResourcePackageManifest-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/ResourcePackageManifest-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/ResourcePackageManifest-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/ResourceReferenceList-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/ResourceReferenceList-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/ResourceReferenceList-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/Role-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/Role-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/Role-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/SelectAggregate-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/SelectAggregate-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/SelectAggregate-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/Server-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/Server-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/Server-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/ServerList-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/ServerList-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/ServerList-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/SiteInformation-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/SiteInformation-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/SiteInformation-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/SiteVersion-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/SiteVersion-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/SiteVersion-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/StringCollection-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/StringCollection-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/StringCollection-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/SymbolDefinition-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/SymbolDefinition-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/SymbolDefinition-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/SymbolDefinition-1.1.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/SymbolDefinition-1.1.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/SymbolDefinition-1.1.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/SymbolLibrary-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/SymbolLibrary-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/SymbolLibrary-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001
@@ -4,7 +5,7 @@
 //    <NameSpace>OSGeo.MapGuide.ObjectModels.SymbolLibrary</NameSpace><Collection>BindingList</Collection><codeType>CSharp</codeType><EnableDataBinding>True</EnableDataBinding><EnableLasyLoading>False</EnableLasyLoading><HidePrivateFieldInIDE>True</HidePrivateFieldInIDE><EnableSummaryComment>True</EnableSummaryComment><IncludeSerializeMethod>True</IncludeSerializeMethod><UseBaseClass>False</UseBaseClass><GenerateCloneMethod>True</GenerateCloneMethod><GenerateDataContracts>False</GenerateDataContracts><CodeBaseTag>Net20</CodeBaseTag><SerializeMethodName>Serialize</SerializeMethodName><DeserializeMethodName>Deserialize</DeserializeMethodName><SaveToFileMethodName>SaveToFile</SaveToFileMethodName><LoadFromFileMethodName>LoadFromFile</LoadFromFileMethodName><GenerateXMLAttributes>True</GenerateXMLAttributes><AutomaticProperties>False</AutomaticProperties><DisableDebug>False</DisableDebug><CustomUsings></CustomUsings><ExcludeIncludedTypes>False</ExcludeIncludedTypes><EnableInitia
 lizeFields>False</EnableInitializeFields>
 //  </auto-generated>
 // ------------------------------------------------------------------------------
-namespace OSGeo.MapGuide.ObjectModels.SymbolLibrary {
+namespace OSGeo.MapGuide.ObjectModels.SymbolLibrary_1_0_0 {
     using System;
     using System.Diagnostics;
     using System.Xml.Serialization;

Modified: sandbox/maestro-3.0/Generated/Types-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/Types-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/Types-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/UnmanagedDataList-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/UnmanagedDataList-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/UnmanagedDataList-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/User-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/User-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/User-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/UserList-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/UserList-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/UserList-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/WebLayout-1.0.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/WebLayout-1.0.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/WebLayout-1.0.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Modified: sandbox/maestro-3.0/Generated/WebLayout-1.1.0.designer.cs
===================================================================
--- sandbox/maestro-3.0/Generated/WebLayout-1.1.0.designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Generated/WebLayout-1.1.0.designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,3 +1,4 @@
+#pragma warning disable 1591, 0114, 0108
 // ------------------------------------------------------------------------------
 //  <auto-generated>
 //    Generated by Xsd2Code. Version 3.3.0.33001

Added: sandbox/maestro-3.0/Localization/ConvertResX.exe
===================================================================
(Binary files differ)


Property changes on: sandbox/maestro-3.0/Localization/ConvertResX.exe
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: sandbox/maestro-3.0/Localization/Duplicati.Library.Core.dll
===================================================================
(Binary files differ)


Property changes on: sandbox/maestro-3.0/Localization/Duplicati.Library.Core.dll
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: sandbox/maestro-3.0/Localization/LocalizationTool - license.txt
===================================================================
--- sandbox/maestro-3.0/Localization/LocalizationTool - license.txt	                        (rev 0)
+++ sandbox/maestro-3.0/Localization/LocalizationTool - license.txt	2010-10-27 09:00:54 UTC (rev 5340)
@@ -0,0 +1,491 @@
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+    Copyright 2008, http://www.hexad.dk, opensource at hexad.dk

Added: sandbox/maestro-3.0/Localization/LocalizationTool - source.txt
===================================================================
--- sandbox/maestro-3.0/Localization/LocalizationTool - source.txt	                        (rev 0)
+++ sandbox/maestro-3.0/Localization/LocalizationTool - source.txt	2010-10-27 09:00:54 UTC (rev 5340)
@@ -0,0 +1,2 @@
+LocalizationTool.exe is from the Duplicati project:
+http://code.google.com/p/duplicati
\ No newline at end of file

Added: sandbox/maestro-3.0/Localization/LocalizationTool.exe
===================================================================
(Binary files differ)


Property changes on: sandbox/maestro-3.0/Localization/LocalizationTool.exe
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: sandbox/maestro-3.0/Localization/Translate.xml
===================================================================
--- sandbox/maestro-3.0/Localization/Translate.xml	                        (rev 0)
+++ sandbox/maestro-3.0/Localization/Translate.xml	2010-10-27 09:00:54 UTC (rev 5340)
@@ -0,0 +1,715 @@
+<root>
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.ApplicationDefinitionEditor.containerEditor"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.ContainerEditor"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.ApplicationDefinitionEditor.widgetEntry"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.WidgetEntry"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.ApplicationDefinitionEditor.flyoutEntry"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.FlyoutEditor"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.widgetEditor"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.WidgetEditor"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.widgetEditorUI"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.WidgetEditorUI"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.BufferPanel"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.BufferPanel"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.Buffer"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.Buffer"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.ActivityIndicator"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.ActivityIndicator"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.About"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.About"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.CursorPosition"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.CursorPosition"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.EditableScale"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.EditableScale"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.ExtentHistory"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.ExtentHistory"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.Help"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.Help"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.InvokeScript"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.InvokeScript"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.Legend"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.Legend"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.MapMenu"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.MapMenu"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.Measure"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.Measure"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.OverviewMap"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.OverviewMap"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.Print"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.Print"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.SaveMap"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.SaveMap"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.Select"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.Select"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.SelectPolygon"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.SelectPolygon"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.SelectRadius"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.SelectRadius"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.SelectWithin"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.SelectWithin"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.TaskPane"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.TaskPane"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.ViewOptions"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.ViewOptions"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.ViewSize"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.ViewSize"
+/>
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.Zoom"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.Zoom"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.ZoomOnClick"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.ZoomOnClick"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.EditWidgets.ZoomToSelection"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.CustomizedEditors.ZoomToSelection"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FormLogin"
+	to="OSGeo.MapGuide.Maestro.LoginForm.FormLogin"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.MapEditor.ctlLayerProperties"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.MapLayerProperties"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.MapEditor.ctlGroupProperties"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.MapLayerGroupProperties"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.LayoutEditor.commandEditor.basicCommand"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayoutControls.BasicCommand"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.LayoutEditor.commandEditor.flyoutItem"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayoutControls.FlyoutItem"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.LayoutEditor.commandEditor.searchCommand"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayoutControls.SearchCommand"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.LayoutEditor.commandEditor.invokeURL"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayoutControls.InvokeURL"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.LayoutEditor.commandEditor.targetedCommand"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayoutControls.TargetedCommand"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.LayoutEditor.commandEditor.printCommand"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayoutControls.PrintCommand"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.LayoutEditor.commandEditor.helpCommand"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayoutControls.HelpCommand"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.LayoutEditor.commandEditor.invokeScript"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayoutControls.InvokeScript"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.LayoutEditor.commandEditor"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayoutControls.CommandEditor"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditor.vectorLayer"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.VectorLayer"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditor.rasterLayer"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.RasterLayer"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditorArcSDE"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ArcSDE.FeatureSourceEditorArcSDE"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditorGdal"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.Gdal.FeatureSourceEditorGdal"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditorKingMSSql"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.King.MSSql.FeatureSourceEditorKingMSSql"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditorKingOracle"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.King.Oracle.FeatureSourceEditorKingOracle"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditorMSSQLSpatial"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.MSQLSpatial.FeatureSourceEditorMSSQLSpatial"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditorMySQL"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.MySQL.FeatureSourceEditorMySQL"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditorODBC"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ODBC.FeatureSourceEditorODBC"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditorOGR"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.FeatureSourceEditorOGR"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditorPostGIS"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.PostGIS.FeatureSourceEditorPostGIS"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditorSHP"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.SHP.FeatureSourceEditorSHP"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditorSDF"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.SDF.FeatureSourceEditorSDF"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditorWFS"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.WFS.FeatureSourceEditorWFS"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.Gdal.FeatureSourceEditorGdal.simple"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.Gdal.Simple"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.Gdal.FeatureSourceEditorGdal.composite"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.Gdal.Composite"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditorGeneric.resourceDataEditor"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.ResourceDataEditor"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.SelectDataProvider.OKButton"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.SelectDataProvider.OKBtn"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.SelectDataProvider.CancelButton"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.SelectDataProvider.CancelBtn"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ODBC.FeatureSourceEditorODBC.dsn"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ODBC.DSN"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ODBC.FeatureSourceEditorODBC.managed"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ODBC.Managed"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ODBC.FeatureSourceEditorODBC.unmanaged"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ODBC.Unmanaged"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ODBC.wizard.msSQL"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ODBC.Wizards.MsSQL"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ODBC.FeatureSourceEditorODBC.wizard"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ODBC.Wizard"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ODBC.Managed.managedFileControl"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ManagedFileControl"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ODBC.Wizard.mySQL"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ODBC.Wizards.MySQL"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ODBC.Wizard.postgreSQL"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ODBC.Wizards.PostgreSQL"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ODBC.Wizard.informix"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ODBC.Wizards.Informix"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ODBC.Wizard.oracle"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ODBC.Wizards.Oracle"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ODBC.Wizard.oracleMS"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ODBC.Wizards.OracleMS"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.FeatureSourceEditorOGR.custom"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.Custom"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.FeatureSourceEditorOGR.mySQL"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.MySQL"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.FeatureSourceEditorOGR.oracle"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.Oracle"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.FeatureSourceEditorOGR.odbc"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.ODBC"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.FeatureSourceEditorOGR.postGIS"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.PostGIS"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.FeatureSourceEditorOGR.managed.managedFileControl"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ManagedFileControl"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.FeatureSourceEditorOGR.unmanaged"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.Unmanaged"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.FeatureSourceEditorOGR.dods"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.DODS"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.FeatureSourceEditorOGR.arcSDE"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.ArcSDE"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.FeatureSourceEditorOGR.grass"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.Grass"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.FeatureSourceEditorOGR.ogdi"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.OGDI"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.FeatureSourceEditorOGR.informix"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.Informix"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.FeatureSourceEditorOGR.fme"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.FME"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.SDF.FeatureSourceEditorSDF.UnmanagedEditor"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.Filebased.Unmanaged"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.SDF.FeatureSourceEditorSDF.ManagedEditor.managedFileControl"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ManagedFileControl"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.SDF.FeatureSourceEditorSDF"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.Filebased.FilebasedFeatureSourceEditor"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.SHP.FeatureSourceEditorSHP.unmanaged"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.Filebased.Unmanaged"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.SHP.FeatureSourceEditorSHP.managed.managedFileControl"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ManagedFileControl"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.SHP.FeatureSourceEditorSHP"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.Filebased.FilebasedFeatureSourceEditor"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.WidgetEditor.label4"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.WidgetEditorUI.label4"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.WidgetEditor.label5"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.WidgetEditorUI.label5"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.WidgetEditor.label6"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.WidgetEditorUI.label6"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.WidgetEditor.label7"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.WidgetEditorUI.label7"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.WidgetEditor.label8"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.WidgetEditorUI.label8"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.WidgetEditor.DisabledCheck"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.WidgetEditorUI.DisabledCheck"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.PackageManager.PackageProgress"
+	to="OSGeo.MapGuide.MaestroAPI.PackageBuilder.PackageProgress"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditorBase.CoordinateSystemOverride"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.CoordinateSystemOverride"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditorGeneric.btnTest"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditorBase.btnTest"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditorGeneric.TestConnectionResult"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditorBase.TestConnectionResult"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.OGR.FeatureSourceEditorOGR.managed"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ManageFileControl"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.Filebased.managed"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ManagedFileControl"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditorWMS"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.WMS.FeatureSourceEditorWMS"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.GeometryStyleEditors.AreaFeatureStyleEditor.fillStyleEditor"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.GeometryStyleEditors.FillStyleEditor"
+/>
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.GeometryStyleEditors.AreaFeatureStyleEditor.lineStyleEditor"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.GeometryStyleEditors.LineStyleEditor"
+/>
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.GeometryStyleEditors.LineFeatureStyleEditor.lineStyleEditor"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.GeometryStyleEditors.LineStyleEditor"
+/>
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.GeometryStyleEditors.PointFeatureStyleEditor.fillStyleEditor"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.GeometryStyleEditors.FillStyleEditor"
+/>
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.GeometryStyleEditors.PointFeatureStyleEditor.lineStyleEditor"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.GeometryStyleEditors.LineStyleEditor"
+/>
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.VectorLayer.schemaSelector"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.SchemaSelector"
+/>
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.VectorLayer.groupBox2"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.VectorLayer.groupViewerProperties"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.VectorLayer.SelectAllButton.Text"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.VectorLayer.SelectAllButton.ToolTipText"
+/>
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.VectorLayer.SelectNoneButton.Text"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.VectorLayer.SelectNoneButton.ToolTipText"
+/>
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.VectorLayer.SelectInverseButton.Text"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.VectorLayer.SelectInverseButton.ToolTipText"
+/>
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.RasterLayer.schemaSelector"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.SchemaSelector"
+/>
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.VectorLayer.scaleRangeList"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.ScaleControls.ScaleRangeList"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.BrowseResource"
+	to="OSGeo.MapGuide.Maestro.ResourceBrowser.BrowseResource"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.GeometryStyleEditors.LineFeatureStyleEditor.groupBox1"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.GeometryStyleEditors.LineFeatureStyleEditor.CompositeGroup"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.Filebased.FilebasedFeatureSourceEditor.managed"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ManagedFileControl"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.PackageManager.PackageEditor.LoaderGroup.Text"
+	to="Reading package contents ..."
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.Filebased.FilebasedFeatureSourceEditor.SDFType"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.Filebased.FilebasedFeatureSourceEditor.LocationType"
+/>
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.Filebased.Unmanaged.label2"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.SHP.FeatureSourceEditorSHP.label2"
+/>
+
+<translate
+	from="Unlimited"
+	to="infinite"
+/>
+<translate
+	from="Legendlabel"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.ScaleControls.ConditionListButtons.ShowInLegend.Text"
+/>
+<translate
+	from="Featurestyle"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.ScaleControls.ConditionListButtons.label3.Text"
+/>
+<translate
+	from="Labelstyle"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.ScaleControls.ConditionListButtons.label4.Text"
+/>
+<translate
+	from="Legendlabel"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.ScaleControls.ConditionListButtons.ShowInLegend.Text"
+/>
+<translate
+	from="There already exists a resource file with the name &quot;{0}&quot;. Do you want to overwrite the existing file?"
+	to="There already exists a resource file with the name \&quot;{0}\&quot;. Do you want to overwrite the existing file?"
+/>
+
+<translate
+	from="Download of resource &quot;{0}&quot; failed.\nReason: {1}\nHow do you want to continue?"
+	to="Download of file &quot;{0}&quot; failed.\nReason: {1}\nHow do you want to continue?"
+/>
+
+<translate
+	from="Delete of resource &quot;{0}&quot; failed.\nReason: {1}\nHow do you want to continue?"
+	to="Delete of resource \&quot;{0}\&quot; failed.\nReason: {1}\nHow do you want to continue?"
+/>
+
+<translate
+	from="The file &quot;{0}&quot; already exists. \nDo you want to overwrite?"
+	to="The file \&quot;{0}\&quot; already exists. \nDo you want to overwrite?"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.Filebased.FilebasedFeatureSourceEditor.FilePathType"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.Filebased.FilebasedFeatureSourceEditor.LocationType"
+/>
+
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.XmlEditorControl.ValidateButton.Text"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.XmlEditorControl.ValidateButton.ToolTipText"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.ApplicationDefinitionEditor.seperatorToolStripMenuItem.Text"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.ApplicationDefinitionEditor.AddWidgetSeperatorMenu.Text"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.ApplicationDefinitionEditor.submenuToolStripMenuItem.Text"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.ApplicationDefinitionEditor.AddWidgetSubmenuMenu.Text"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.FusionEditor.ApplicationDefinitionEditor.widgetToolStripMenuItem.Text"
+	to="OSGeo.MapGuide.Maestro.FusionEditor.ApplicationDefinitionEditor.AddWidgetEntryMenu.Text"
+/>
+
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceExtensions.EditExtensions.featureSourceExtension"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceExtensions.FeatureSourceExtension"
+/>
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceExtensions.FeatureSourceExtension.join"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceExtensions.Join"
+/>
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceExtensions.FeatureSourceExtension.extension"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceExtensions.Extension"
+/>
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceExtensions.FeatureSourceExtension.key"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceExtensions.Key"
+/>
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceExtensions.FeatureSourceExtension.calculated"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceExtensions.Calculated"
+/>
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.Filebased.FilebasedFeatureSourceEditor.ManagedEditor.managedFileControl"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.ManagedFileControl"
+/>
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.Scalecontrols.EditorTemplateForm"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.ScaleControls.EditorTemplateForm"
+/>
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.ScaleControls.ConditionListButtons.AddRuleButton.ToolTipText"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.ScaleControls.ConditionListButtons.AddRuleButton.ToolTip"
+/>
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.ScaleControls.ConditionListButtons.CreateThemeButton.ToolTipText"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.LayerEditorControls.ScaleControls.ConditionListButtons.CreateThemeButton.ToolTip"
+/>
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FiniteDisplayScales.RemoveScaleButton.ToolTipText"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FiniteDisplayScales.RemoveScaleButton.ToolTipText"
+/>
+<translate
+	from="OSGeo.MapGuide.Maestro.ResourceEditors.FilebasedFeatureSourceEditor.LocationType"
+	to="OSGeo.MapGuide.Maestro.ResourceEditors.FeatureSourceEditors.Filebased.FilebasedFeatureSourceEditor.LocationType"
+/>
+<translate
+	from=""
+	to=""
+/>
+
+</root>
\ No newline at end of file

Added: sandbox/maestro-3.0/Localization/configuration.xml
===================================================================
--- sandbox/maestro-3.0/Localization/configuration.xml	                        (rev 0)
+++ sandbox/maestro-3.0/Localization/configuration.xml	2010-10-27 09:00:54 UTC (rev 5340)
@@ -0,0 +1,20 @@
+<root>
+	<configuration name="OSGeo.MapGuide">
+		<assembly name="Maestro" folder="Maestro" namespace="Maestro" />
+		<assembly name="Maestro.AddIn.ExtendedObjectModels" folder="Maestro.AddIn.ExtendedObjectModels" namespace="Maestro.AddIn.ExtendedObjectModels" />
+		<assembly name="Maestro.Base" folder="Maestro.Base" namespace="Maestro.Base" />
+		<assembly name="Maestro.Editors" folder="Maestro.Editors" namespace="Maestro.Editors" />
+		<assembly name="Maestro.Login" folder="Maestro.Login" namespace="Maestro.Login" />
+		<assembly name="Maestro.Packaging" folder="Maestro.Packaging" namespace="Maestro.Packaging" />
+		<assembly name="Maestro.Shared.UI" folder="Maestro.Shared.UI" namespace="Maestro.Shared.UI" />
+		<assembly name="MaestroFsPreview" folder="MaestroFsPreview" namespace="MaestroFsPreview" />
+		<assembly name="MgCooker" folder="MgCooker" namespace="MgCooker" />
+		<assembly name="OSGeo.MapGuide.MaestroAPI" folder="OSGeo.MapGuide.MaestroAPI" namespace="OSGeo.MapGuide.MaestroAPI" />
+
+		<!-- <keyfile>..\MaestroAPI\Maestroapi.key</keyfile> -->
+		<versionassembly>..\out\Release\Maestro.exe</versionassembly>
+		<sourcefolder>..</sourcefolder>
+		<outputfolder>compiled</outputfolder>
+		<productname>Maestro</productname>
+	</configuration>
+</root>
\ No newline at end of file

Added: sandbox/maestro-3.0/Localization/ignore.da-DK.xml
===================================================================
--- sandbox/maestro-3.0/Localization/ignore.da-DK.xml	                        (rev 0)
+++ sandbox/maestro-3.0/Localization/ignore.da-DK.xml	2010-10-27 09:00:54 UTC (rev 5340)
@@ -0,0 +1,75 @@
+<root>
+	<ignore>OK</ignore>
+	<ignore>Min X</ignore>
+	<ignore>Max X</ignore>
+	<ignore>Min Y</ignore>
+	<ignore>Max Y</ignore>
+	<ignore>...</ignore>
+	<ignore>Browser program</ignore>
+	<ignore>SRS</ignore>
+	<ignore>MapGuide Maestro</ignore>
+	<ignore>Stop</ignore>
+	<ignore>Tooltip</ignore>
+	<ignore>Url</ignore>
+	<ignore>Preview</ignore>
+	<ignore>X</ignore>
+	<ignore>Y</ignore>
+	<ignore>Type</ignore>
+	<ignore>Rotation</ignore>
+	<ignore>Symbol</ignore>
+	<ignore>0</ignore>
+	<ignore>1</ignore>
+	<ignore>WMS</ignore>
+	<ignore>WFS</ignore>
+	<ignore>Metadata</ignore>
+	<ignore>Data type</ignore>
+	<ignore>Download</ignore>
+	<ignore>Status bar</ignore>
+	
+	<ignore>Link</ignore>
+	<ignore>Filter</ignore>
+	<ignore>Minimum</ignore>
+
+	<ignore>Driver</ignore>
+	<ignore>Server</ignore>
+	<ignore>Database</ignore>
+	<ignore>Port</ignore>
+	<ignore>Script</ignore>
+	<ignore>Azimuth</ignore>
+	<ignore>Raster</ignore>
+	
+	<ignore>Shell Script ({0})</ignore>
+	<ignore>Spatial</ignore>
+	<ignore>Widget</ignore>
+	<ignore>MapAgent</ignore>
+	<ignore>olsoctcp</ignore>
+	<ignore>Service</ignore>
+	<ignore>Datastore</ignore>
+	<ignore>Database type</ignore>
+	<ignore>DSN</ignore>
+	<ignore>Prompt</ignore>
+	<ignore>U</ignore>
+	<ignore>Well-Known-Text (WKT)</ignore>
+	<ignore>Stream</ignore>
+	<ignore>application/octet-stream</ignore>
+	<ignore>text/xml</ignore>
+	<ignore>Library://</ignore>
+	<ignore>http://localhost/mapguide/mapagent/mapagent.fcgi</ignore>
+	<ignore>Administrator</ignore>
+	<ignore>admin</ignore>
+	
+	<ignore>Tooltip type</ignore>
+	<ignore>Format</ignore>
+	<ignore>Label</ignore>
+	<ignore>Tolerance</ignore>
+	<ignore>Server:</ignore>
+	<ignore>ColorBrewer</ignore>
+	<ignore>-&gt;</ignore>
+	<ignore>Status</ignore>
+	<ignore>Total</ignore>
+	<ignore>Anonymous</ignore>
+	<ignore>1:</ignore>
+	<ignore>Widgets</ignore>
+	
+	<ignore>Pause</ignore>
+</root>
\ No newline at end of file

Added: sandbox/maestro-3.0/Localization/ignore.fr-FR.xml
===================================================================
--- sandbox/maestro-3.0/Localization/ignore.fr-FR.xml	                        (rev 0)
+++ sandbox/maestro-3.0/Localization/ignore.fr-FR.xml	2010-10-27 09:00:54 UTC (rev 5340)
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <ignore>OK</ignore>
+  <ignore>Min X</ignore>
+  <ignore>Max X</ignore>
+  <ignore>Min Y</ignore>
+  <ignore>Max Y</ignore>
+  <ignore>...</ignore>
+  <ignore>SRS</ignore>
+  <ignore>MapGuide Maestro</ignore>
+  <ignore>Url</ignore>
+  <ignore>X</ignore>
+  <ignore>Y</ignore>
+  <ignore>Type</ignore>
+  <ignore>Rotation</ignore>
+  <ignore>Symbol</ignore>
+  <ignore>0</ignore>
+  <ignore>1</ignore>
+  <ignore>WMS</ignore>
+  <ignore>WFS</ignore>
+  <ignore>Data type</ignore>
+  <ignore>Minimum</ignore>
+  <ignore>Port</ignore>
+  <ignore>Spatial</ignore>
+  <ignore>MapAgent</ignore>
+  <ignore>olsoctcp</ignore>
+  <ignore>Service</ignore>
+  <ignore>Datastore</ignore>
+  <ignore>DSN</ignore>
+  <ignore>U</ignore>
+  <ignore>Well-Known-Text (WKT)</ignore>
+  <ignore>Stream</ignore>
+  <ignore>application/octet-stream</ignore>
+  <ignore>text/xml</ignore>
+  <ignore>Library://</ignore>
+  <ignore>http://localhost/mapguide/mapagent/mapagent.fcgi</ignore>
+  <ignore>Administrator</ignore>
+  <ignore>admin</ignore>
+  <ignore>Format</ignore>
+  <ignore>Label</ignore>
+  <ignore>ColorBrewer</ignore>
+  <ignore>-&gt;</ignore>
+  <ignore>Total</ignore>
+  <ignore>Anonymous</ignore>
+  <ignore>1:</ignore>
+  <ignore>Pause</ignore>
+  <ignore>Condition</ignore>
+  <ignore>Distance</ignore>
+  <ignore>Description</ignore>
+  <ignore>Opaque</ignore>
+  <ignore>Message</ignore>
+  <ignore>Position</ignore>
+  <ignore>Direction</ignore>
+  <ignore>png</ignore>
+  <ignore>jpg</ignore>
+  <ignore>gif</ignore>
+  <ignore>Option</ignore>
+  <ignore>3</ignore>
+  <ignore>ArcSDE</ignore>
+  <ignore>GRASS</ignore>
+  <ignore>OGDI</ignore>
+  <ignore>Informix</ignore>
+  <ignore>PostGIS</ignore>
+  <ignore>MySQL</ignore>
+  <ignore>ODBC</ignore>
+  <ignore>Oracle</ignore>
+  <ignore>FME</ignore>
+  <ignore>Options</ignore>
+  <ignore>Tables</ignore>
+  <ignore>Table</ignore>
+  <ignore>Topology Framework .NET (TF.NET)</ignore>
+  <ignore>http://trac.osgeo.org/mapguide/wiki/maestro</ignore>
+  <ignore>Image url</ignore>
+  <ignore>Max ratio</ignore>
+  <ignore>Min ratio</ignore>
+  <ignore>Source</ignore>
+  <ignore>&lt;&lt;&lt; Simple</ignore>
+  <ignore>1.1.0</ignore>
+  <ignore>1.2.0</ignore>
+  <ignore>1.3.0</ignore>
+  <ignore>Menus</ignore>
+  <ignore>Style</ignore>
+  <ignore>Horizontal</ignore>
+  <ignore>Vertical</ignore>
+  <ignore>Expression...</ignore>
+  <ignore>B</ignore>
+  <ignore>I</ignore>
+  <ignore>Surface</ignore>
+  <ignore>Altitude</ignore>
+  <ignore>Visible</ignore>
+  <ignore>Maximum</ignore>
+  <ignore>Action</ignore>
+  <ignore>Quantile</ignore>
+  <ignore>Transparent</ignore>
+  <ignore>Script</ignore>
+  <ignore>S-57 (*.s57)</ignore>
+  <ignore>MapInfo Interchange (*.mif)</ignore>
+  <ignore>MapInfo Native (*.tab)</ignore>
+  <ignore>Postgre SQL</ignore>
+  <ignore>DODS</ignore>
+  <ignore>showOverviewMapDialog()</ignore>
+  <ignore>showTaskDialog()</ignore>
+  <ignore>showLegendDialog()</ignore>
+  <ignore>showSelectionDialog()</ignore>
+  <ignore>{0} - {1}: {2}</ignore>
+  <ignore>{0} - {1}</ignore>
+  <ignore>..\Resources\table.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</ignore>
+  <ignore>..\Resources\sum.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</ignore>
+  <ignore>..\Resources\bricks.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</ignore>
+  <ignore>..\Resources\bullet_go.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</ignore>
+  <ignore>..\Resources\CommandTypesDataset.xml;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</ignore>
+  <ignore>..\Resources\GeometryStyleComboDataset.xml;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</ignore>
+  <ignore>..\Resources\Defaults.xml;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</ignore>
+  <ignore>..\Resources\DirectionTypeDataset.xml;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</ignore>
+  <ignore>..\Resources\GeometryOperationTypeDataset.xml;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</ignore>
+  <ignore>..\Resources\MeasureTypeDataset.xml;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</ignore>
+  <ignore>..\Resources\MeasureUnitsDataset.xml;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</ignore>
+  <ignore>..\Resources\PositionTypesDataset.xml;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</ignore>
+  <ignore>..\Resources\TooltipTypeDataset.xml;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</ignore>
+  <ignore>..\Resources\ZoomDirectionDataset.xml;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</ignore>
+</root>
\ No newline at end of file

Modified: sandbox/maestro-3.0/Maestro/Maestro.csproj
===================================================================
--- sandbox/maestro-3.0/Maestro/Maestro.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro/Maestro.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -35,6 +35,22 @@
     <UseVSHostingProcess>false</UseVSHostingProcess>
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="Maestro.Login, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\Maestro.Login.dll</HintPath>
+    </Reference>
+    <Reference Include="OSGeo.MapGuide.MaestroAPI, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\OSGeo.MapGuide.MaestroAPI.dll</HintPath>
+    </Reference>
+    <Reference Include="OSGeo.MapGuide.MaestroAPI.Http, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\OSGeo.MapGuide.MaestroAPI.Http.dll</HintPath>
+    </Reference>
+    <Reference Include="OSGeo.MapGuide.MaestroAPI.Native, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\OSGeo.MapGuide.MaestroAPI.Native.dll</HintPath>
+    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Data" />
     <Reference Include="System.Deployment" />
@@ -77,6 +93,14 @@
       <Link>AddIns\Maestro.Base.addin</Link>
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
+    <Content Include="..\Maestro.Editors\FsEditorMap.xml">
+      <Link>FsEditorMap.xml</Link>
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
+    <Content Include="..\OSGeo.MapGuide.MaestroAPI\ConnectionProviders.xml">
+      <Link>ConnectionProviders.xml</Link>
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
     <Content Include="changelog.txt">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
@@ -728,18 +752,6 @@
       <Project>{F1E2F468-5030-4DBA-968C-9620284AFAA1}</Project>
       <Name>Maestro.Base</Name>
     </ProjectReference>
-    <ProjectReference Include="..\OSGeo.MapGuide.MaestroAPI.Http\OSGeo.MapGuide.MaestroAPI.Http.csproj">
-      <Project>{6EF1E775-444B-4E5F-87FB-D687C43A68D7}</Project>
-      <Name>OSGeo.MapGuide.MaestroAPI.Http</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\OSGeo.MapGuide.MaestroAPI.Native\OSGeo.MapGuide.MaestroAPI.Native.csproj">
-      <Project>{F4420153-9DF3-4407-AD65-E8ABED2B6E25}</Project>
-      <Name>OSGeo.MapGuide.MaestroAPI.Native</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\OSGeo.MapGuide.MaestroAPI\OSGeo.MapGuide.MaestroAPI.csproj">
-      <Project>{80FA3158-8B5F-48D1-A393-0378AFE48A7E}</Project>
-      <Name>OSGeo.MapGuide.MaestroAPI</Name>
-    </ProjectReference>
     <ProjectReference Include="..\Thirdparty\SharpDevelop\ICSharpCode.Core.WinForms\ICSharpCode.Core.WinForms.csproj">
       <Project>{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}</Project>
       <Name>ICSharpCode.Core.WinForms</Name>

Modified: sandbox/maestro-3.0/Maestro/Maestro.sln
===================================================================
--- sandbox/maestro-3.0/Maestro/Maestro.sln	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro/Maestro.sln	2010-10-27 09:00:54 UTC (rev 5340)
@@ -9,47 +9,9 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Maestro.Base", "..\Maestro.Base\Maestro.Base.csproj", "{F1E2F468-5030-4DBA-968C-9620284AFAA1}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSGeo.MapGuide.MaestroAPI", "..\OSGeo.MapGuide.MaestroAPI\OSGeo.MapGuide.MaestroAPI.csproj", "{80FA3158-8B5F-48D1-A393-0378AFE48A7E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSGeo.MapGuide.MaestroAPI.Http", "..\OSGeo.MapGuide.MaestroAPI.Http\OSGeo.MapGuide.MaestroAPI.Http.csproj", "{6EF1E775-444B-4E5F-87FB-D687C43A68D7}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaestroAPITests", "..\MaestroAPITests\MaestroAPITests.csproj", "{351D49A3-2E4A-4EC3-AFC2-D56598F44F51}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Maestro.Shared.UI", "..\Maestro.Shared.UI\Maestro.Shared.UI.csproj", "{CFD19053-2172-41D3-8460-0FD2123A1E88}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Maestro.Editors", "..\Maestro.Editors\Maestro.Editors.csproj", "{5AD2CDBA-952E-4148-98A1-31D2E0D540D5}"
-	ProjectSection(ProjectDependencies) = postProject
-		{E73BB233-D88B-44A7-A98F-D71EE158381D} = {E73BB233-D88B-44A7-A98F-D71EE158381D}
-	EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Maestro.Login", "..\Maestro.Login\Maestro.Login.csproj", "{07588440-5F9F-4C30-AA06-9CF30BA6DDE6}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aga.Controls", "..\Thirdparty\TreeViewAdv\Aga.Controls\Aga.Controls.csproj", "{E73BB233-D88B-44A7-A98F-D71EE158381D}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaestroBaseTests", "..\MaestroBaseTests\MaestroBaseTests.csproj", "{CE5F281C-0162-4832-87BB-A677D13D116F}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSGeo.MapGuide.ObjectModels.LayerDefinition-1.1.0", "..\ExtendedModels\LayerDefinition-1.1.0\OSGeo.MapGuide.ObjectModels.LayerDefinition-1.1.0.csproj", "{B5EA049C-6AB7-4686-A2F4-4BA2EAC0E585}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSGeo.MapGuide.ObjectModels.LayerDefinition-1.2.0", "..\ExtendedModels\LayerDefinition-1.2.0\OSGeo.MapGuide.ObjectModels.LayerDefinition-1.2.0.csproj", "{EDDB0F74-6FE7-4969-80B0-817A629722CD}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSGeo.MapGuide.ObjectModels.LayerDefinition-1.3.0", "..\ExtendedModels\LayerDefinition-1.3.0\OSGeo.MapGuide.ObjectModels.LayerDefinition-1.3.0.csproj", "{AC5068F6-CFBE-4BCD-B68B-062725E424D4}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSGeo.MapGuide.ObjectModels.LoadProcedure-1.1.0", "..\ExtendedModels\LoadProcedure-1.1.0\OSGeo.MapGuide.ObjectModels.LoadProcedure-1.1.0.csproj", "{B2A1F69E-52AA-42A2-8DED-89ADB9B14A38}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSGeo.MapGuide.ObjectModels.LoadProcedure-2.2.0", "..\ExtendedModels\LoadProcedure-2.2.0\OSGeo.MapGuide.ObjectModels.LoadProcedure-2.2.0.csproj", "{D525B343-66D6-4D6B-9A55-78A173D94A51}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSGeo.MapGuide.ObjectModels.SymbolDefinition-1.1.0", "..\ExtendedModels\SymbolDefinition-1.1.0\OSGeo.MapGuide.ObjectModels.SymbolDefinition-1.1.0.csproj", "{BF6E996E-27AF-44CD-B3CF-A40874E15B2E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSGeo.MapGuide.ObjectModels.WebLayout-1.1.0", "..\ExtendedModels\WebLayout-1.1.0\OSGeo.MapGuide.ObjectModels.WebLayout-1.1.0.csproj", "{0A93ACA8-5B21-44E6-B0B7-5D1E72D3A6A2}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Maestro.Packaging", "..\Maestro.Packaging\Maestro.Packaging.csproj", "{0EA33E36-9C33-4D60-B378-B87FADAA0F40}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaestroFsPreview", "..\MaestroFsPreview\MaestroFsPreview.csproj", "{59BE5E18-17B6-431D-836E-C0AABA6D69E8}"
-	ProjectSection(ProjectDependencies) = postProject
-		{E73BB233-D88B-44A7-A98F-D71EE158381D} = {E73BB233-D88B-44A7-A98F-D71EE158381D}
-		{CFD19053-2172-41D3-8460-0FD2123A1E88} = {CFD19053-2172-41D3-8460-0FD2123A1E88}
-		{80FA3158-8B5F-48D1-A393-0378AFE48A7E} = {80FA3158-8B5F-48D1-A393-0378AFE48A7E}
-	EndProjectSection
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Maestro.AddIn.ExtendedObjectModels", "..\Maestro.AddIn.ExtendedObjectModels\Maestro.AddIn.ExtendedObjectModels.csproj", "{32BA7DF6-1AFA-441D-9231-5624C5920706}"
 EndProject
@@ -57,8 +19,6 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MgCooker.Cmd", "..\MgCooker.Cmd\MgCooker.Cmd.csproj", "{0FD82B7B-1264-410F-86D1-47E9CCACD68E}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSGeo.MapGuide.MaestroAPI.Native", "..\OSGeo.MapGuide.MaestroAPI.Native\OSGeo.MapGuide.MaestroAPI.Native.csproj", "{F4420153-9DF3-4407-AD65-E8ABED2B6E25}"
-EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -81,70 +41,10 @@
 		{F1E2F468-5030-4DBA-968C-9620284AFAA1}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{F1E2F468-5030-4DBA-968C-9620284AFAA1}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{F1E2F468-5030-4DBA-968C-9620284AFAA1}.Release|Any CPU.Build.0 = Release|Any CPU
-		{80FA3158-8B5F-48D1-A393-0378AFE48A7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{80FA3158-8B5F-48D1-A393-0378AFE48A7E}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{80FA3158-8B5F-48D1-A393-0378AFE48A7E}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{80FA3158-8B5F-48D1-A393-0378AFE48A7E}.Release|Any CPU.Build.0 = Release|Any CPU
-		{6EF1E775-444B-4E5F-87FB-D687C43A68D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{6EF1E775-444B-4E5F-87FB-D687C43A68D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{6EF1E775-444B-4E5F-87FB-D687C43A68D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{6EF1E775-444B-4E5F-87FB-D687C43A68D7}.Release|Any CPU.Build.0 = Release|Any CPU
-		{351D49A3-2E4A-4EC3-AFC2-D56598F44F51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{351D49A3-2E4A-4EC3-AFC2-D56598F44F51}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{351D49A3-2E4A-4EC3-AFC2-D56598F44F51}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{351D49A3-2E4A-4EC3-AFC2-D56598F44F51}.Release|Any CPU.Build.0 = Release|Any CPU
-		{CFD19053-2172-41D3-8460-0FD2123A1E88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{CFD19053-2172-41D3-8460-0FD2123A1E88}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{CFD19053-2172-41D3-8460-0FD2123A1E88}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{CFD19053-2172-41D3-8460-0FD2123A1E88}.Release|Any CPU.Build.0 = Release|Any CPU
-		{5AD2CDBA-952E-4148-98A1-31D2E0D540D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{5AD2CDBA-952E-4148-98A1-31D2E0D540D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{5AD2CDBA-952E-4148-98A1-31D2E0D540D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{5AD2CDBA-952E-4148-98A1-31D2E0D540D5}.Release|Any CPU.Build.0 = Release|Any CPU
-		{07588440-5F9F-4C30-AA06-9CF30BA6DDE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{07588440-5F9F-4C30-AA06-9CF30BA6DDE6}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{07588440-5F9F-4C30-AA06-9CF30BA6DDE6}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{07588440-5F9F-4C30-AA06-9CF30BA6DDE6}.Release|Any CPU.Build.0 = Release|Any CPU
-		{E73BB233-D88B-44A7-A98F-D71EE158381D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{E73BB233-D88B-44A7-A98F-D71EE158381D}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{E73BB233-D88B-44A7-A98F-D71EE158381D}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{E73BB233-D88B-44A7-A98F-D71EE158381D}.Release|Any CPU.Build.0 = Release|Any CPU
 		{CE5F281C-0162-4832-87BB-A677D13D116F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{CE5F281C-0162-4832-87BB-A677D13D116F}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{CE5F281C-0162-4832-87BB-A677D13D116F}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{CE5F281C-0162-4832-87BB-A677D13D116F}.Release|Any CPU.Build.0 = Release|Any CPU
-		{B5EA049C-6AB7-4686-A2F4-4BA2EAC0E585}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{B5EA049C-6AB7-4686-A2F4-4BA2EAC0E585}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{B5EA049C-6AB7-4686-A2F4-4BA2EAC0E585}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{B5EA049C-6AB7-4686-A2F4-4BA2EAC0E585}.Release|Any CPU.Build.0 = Release|Any CPU
-		{EDDB0F74-6FE7-4969-80B0-817A629722CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{EDDB0F74-6FE7-4969-80B0-817A629722CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{EDDB0F74-6FE7-4969-80B0-817A629722CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{EDDB0F74-6FE7-4969-80B0-817A629722CD}.Release|Any CPU.Build.0 = Release|Any CPU
-		{AC5068F6-CFBE-4BCD-B68B-062725E424D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{AC5068F6-CFBE-4BCD-B68B-062725E424D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{AC5068F6-CFBE-4BCD-B68B-062725E424D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{AC5068F6-CFBE-4BCD-B68B-062725E424D4}.Release|Any CPU.Build.0 = Release|Any CPU
-		{B2A1F69E-52AA-42A2-8DED-89ADB9B14A38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{B2A1F69E-52AA-42A2-8DED-89ADB9B14A38}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{B2A1F69E-52AA-42A2-8DED-89ADB9B14A38}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{B2A1F69E-52AA-42A2-8DED-89ADB9B14A38}.Release|Any CPU.Build.0 = Release|Any CPU
-		{D525B343-66D6-4D6B-9A55-78A173D94A51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{D525B343-66D6-4D6B-9A55-78A173D94A51}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{D525B343-66D6-4D6B-9A55-78A173D94A51}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{D525B343-66D6-4D6B-9A55-78A173D94A51}.Release|Any CPU.Build.0 = Release|Any CPU
-		{BF6E996E-27AF-44CD-B3CF-A40874E15B2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{BF6E996E-27AF-44CD-B3CF-A40874E15B2E}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{BF6E996E-27AF-44CD-B3CF-A40874E15B2E}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{BF6E996E-27AF-44CD-B3CF-A40874E15B2E}.Release|Any CPU.Build.0 = Release|Any CPU
-		{0A93ACA8-5B21-44E6-B0B7-5D1E72D3A6A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{0A93ACA8-5B21-44E6-B0B7-5D1E72D3A6A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{0A93ACA8-5B21-44E6-B0B7-5D1E72D3A6A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{0A93ACA8-5B21-44E6-B0B7-5D1E72D3A6A2}.Release|Any CPU.Build.0 = Release|Any CPU
-		{0EA33E36-9C33-4D60-B378-B87FADAA0F40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{0EA33E36-9C33-4D60-B378-B87FADAA0F40}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{0EA33E36-9C33-4D60-B378-B87FADAA0F40}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{0EA33E36-9C33-4D60-B378-B87FADAA0F40}.Release|Any CPU.Build.0 = Release|Any CPU
 		{59BE5E18-17B6-431D-836E-C0AABA6D69E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{59BE5E18-17B6-431D-836E-C0AABA6D69E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{59BE5E18-17B6-431D-836E-C0AABA6D69E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -161,10 +61,6 @@
 		{0FD82B7B-1264-410F-86D1-47E9CCACD68E}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{0FD82B7B-1264-410F-86D1-47E9CCACD68E}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{0FD82B7B-1264-410F-86D1-47E9CCACD68E}.Release|Any CPU.Build.0 = Release|Any CPU
-		{F4420153-9DF3-4407-AD65-E8ABED2B6E25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{F4420153-9DF3-4407-AD65-E8ABED2B6E25}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{F4420153-9DF3-4407-AD65-E8ABED2B6E25}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{F4420153-9DF3-4407-AD65-E8ABED2B6E25}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

Modified: sandbox/maestro-3.0/Maestro/Program.cs
===================================================================
--- sandbox/maestro-3.0/Maestro/Program.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro/Program.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -29,6 +29,7 @@
 using OSGeo.MapGuide.MaestroAPI;
 using ICSharpCode.Core.WinForms;
 using OSGeo.MapGuide.MaestroAPI.Resource.Validation;
+using Maestro.Login;
 
 namespace Maestro
 {
@@ -44,6 +45,8 @@
             Application.SetCompatibleTextRenderingDefault(true);
             Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
 
+            string lang = PreferredSiteList.InitCulture();
+
             var btw = BroadcastTextWriter.Instance;
 
             // Logging service by default uses System.Diagnostics.Debug. Re-route this
@@ -83,7 +86,7 @@
             CoreStartup coreStartup = new CoreStartup("MapGuide Maestro");
             // It is also used as default storage location for the application settings:
             // "%Application Data%\%Application Name%", but you can override that by setting c.ConfigDirectory
-
+            
             // Specify the name of the application settings file (.xml is automatically appended)
             coreStartup.PropertiesName = "AppProperties";
 
@@ -104,7 +107,7 @@
             coreStartup.ConfigureUserAddIns(Path.Combine(PropertyService.ConfigDirectory, "AddInInstallTemp"),
                                             Path.Combine(PropertyService.ConfigDirectory, "AddIns"));
 
-
+            ResourceService.Language = lang;
             LoggingService.Info("Loading AddInTree...");
             // Now finally initialize the application. This parses the ".addin" files and
             // creates the AddIn tree. It also automatically runs the commands in
@@ -115,7 +118,7 @@
             // Workbench is our class from the base project, this method creates an instance
             // of the main form.
             Workbench.InitializeWorkbench();
-            
+
             try
             {
                 LoggingService.Info("Running application...");

Modified: sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Commands/StartupCommand.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Commands/StartupCommand.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Commands/StartupCommand.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,7 +24,6 @@
 using Maestro.Base;
 using OSGeo.MapGuide.MaestroAPI.Resource;
 using OSGeo.MapGuide.MaestroAPI;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
 
 using Ldf110 = OSGeo.MapGuide.ObjectModels.LayerDefinition_1_1_0;
 using Ldf120 = OSGeo.MapGuide.ObjectModels.LayerDefinition_1_2_0;
@@ -35,6 +34,7 @@
 using WL110 = OSGeo.MapGuide.ObjectModels.WebLayout_1_1_0;
 using OSGeo.MapGuide.ObjectModels.LoadProcedure;
 using OSGeo.MapGuide.MaestroAPI.Resource.Validation;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.AddIn.ExtendedObjectModels.Commands
 {

Modified: sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Maestro.AddIn.ExtendedObjectModels.csproj
===================================================================
--- sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Maestro.AddIn.ExtendedObjectModels.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Maestro.AddIn.ExtendedObjectModels.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -33,6 +33,46 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="Maestro.Editors, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\Maestro.Editors.dll</HintPath>
+    </Reference>
+    <Reference Include="Maestro.Shared.UI, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\Maestro.Shared.UI.dll</HintPath>
+    </Reference>
+    <Reference Include="OSGeo.MapGuide.MaestroAPI, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\OSGeo.MapGuide.MaestroAPI.dll</HintPath>
+    </Reference>
+    <Reference Include="OSGeo.MapGuide.ObjectModels.LayerDefinition-1.1.0, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\OSGeo.MapGuide.ObjectModels.LayerDefinition-1.1.0.dll</HintPath>
+    </Reference>
+    <Reference Include="OSGeo.MapGuide.ObjectModels.LayerDefinition-1.2.0, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\OSGeo.MapGuide.ObjectModels.LayerDefinition-1.2.0.dll</HintPath>
+    </Reference>
+    <Reference Include="OSGeo.MapGuide.ObjectModels.LayerDefinition-1.3.0, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\OSGeo.MapGuide.ObjectModels.LayerDefinition-1.3.0.dll</HintPath>
+    </Reference>
+    <Reference Include="OSGeo.MapGuide.ObjectModels.LoadProcedure-1.1.0, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\OSGeo.MapGuide.ObjectModels.LoadProcedure-1.1.0.dll</HintPath>
+    </Reference>
+    <Reference Include="OSGeo.MapGuide.ObjectModels.LoadProcedure-2.2.0, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\OSGeo.MapGuide.ObjectModels.LoadProcedure-2.2.0.dll</HintPath>
+    </Reference>
+    <Reference Include="OSGeo.MapGuide.ObjectModels.SymbolDefinition-1.1.0, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\OSGeo.MapGuide.ObjectModels.SymbolDefinition-1.1.0.dll</HintPath>
+    </Reference>
+    <Reference Include="OSGeo.MapGuide.ObjectModels.WebLayout-1.1.0, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\OSGeo.MapGuide.ObjectModels.WebLayout-1.1.0.dll</HintPath>
+    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Data" />
     <Reference Include="System.Drawing" />
@@ -69,61 +109,11 @@
     <None Include="Resources\database-share.png" />
   </ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\ExtendedModels\LayerDefinition-1.1.0\OSGeo.MapGuide.ObjectModels.LayerDefinition-1.1.0.csproj">
-      <Project>{B5EA049C-6AB7-4686-A2F4-4BA2EAC0E585}</Project>
-      <Name>OSGeo.MapGuide.ObjectModels.LayerDefinition-1.1.0</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\ExtendedModels\LayerDefinition-1.2.0\OSGeo.MapGuide.ObjectModels.LayerDefinition-1.2.0.csproj">
-      <Project>{EDDB0F74-6FE7-4969-80B0-817A629722CD}</Project>
-      <Name>OSGeo.MapGuide.ObjectModels.LayerDefinition-1.2.0</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\ExtendedModels\LayerDefinition-1.3.0\OSGeo.MapGuide.ObjectModels.LayerDefinition-1.3.0.csproj">
-      <Project>{AC5068F6-CFBE-4BCD-B68B-062725E424D4}</Project>
-      <Name>OSGeo.MapGuide.ObjectModels.LayerDefinition-1.3.0</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\ExtendedModels\LoadProcedure-1.1.0\OSGeo.MapGuide.ObjectModels.LoadProcedure-1.1.0.csproj">
-      <Project>{B2A1F69E-52AA-42A2-8DED-89ADB9B14A38}</Project>
-      <Name>OSGeo.MapGuide.ObjectModels.LoadProcedure-1.1.0</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\ExtendedModels\LoadProcedure-2.2.0\OSGeo.MapGuide.ObjectModels.LoadProcedure-2.2.0.csproj">
-      <Project>{D525B343-66D6-4D6B-9A55-78A173D94A51}</Project>
-      <Name>OSGeo.MapGuide.ObjectModels.LoadProcedure-2.2.0</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\ExtendedModels\SymbolDefinition-1.1.0\OSGeo.MapGuide.ObjectModels.SymbolDefinition-1.1.0.csproj">
-      <Project>{BF6E996E-27AF-44CD-B3CF-A40874E15B2E}</Project>
-      <Name>OSGeo.MapGuide.ObjectModels.SymbolDefinition-1.1.0</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\ExtendedModels\WebLayout-1.1.0\OSGeo.MapGuide.ObjectModels.WebLayout-1.1.0.csproj">
-      <Project>{0A93ACA8-5B21-44E6-B0B7-5D1E72D3A6A2}</Project>
-      <Name>OSGeo.MapGuide.ObjectModels.WebLayout-1.1.0</Name>
-      <Private>False</Private>
-    </ProjectReference>
     <ProjectReference Include="..\Maestro.Base\Maestro.Base.csproj">
       <Project>{F1E2F468-5030-4DBA-968C-9620284AFAA1}</Project>
       <Name>Maestro.Base</Name>
       <Private>False</Private>
     </ProjectReference>
-    <ProjectReference Include="..\Maestro.Editors\Maestro.Editors.csproj">
-      <Project>{5AD2CDBA-952E-4148-98A1-31D2E0D540D5}</Project>
-      <Name>Maestro.Editors</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\Maestro.Shared.UI\Maestro.Shared.UI.csproj">
-      <Project>{CFD19053-2172-41D3-8460-0FD2123A1E88}</Project>
-      <Name>Maestro.Shared.UI</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\OSGeo.MapGuide.MaestroAPI\OSGeo.MapGuide.MaestroAPI.csproj">
-      <Project>{80FA3158-8B5F-48D1-A393-0378AFE48A7E}</Project>
-      <Name>OSGeo.MapGuide.MaestroAPI</Name>
-      <Private>False</Private>
-    </ProjectReference>
     <ProjectReference Include="..\Thirdparty\SharpDevelop\ICSharpCode.Core\ICSharpCode.Core.csproj">
       <Project>{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}</Project>
       <Name>ICSharpCode.Core</Name>

Modified: sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Templates/SQLiteLoadProcedureItemTemplate.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Templates/SQLiteLoadProcedureItemTemplate.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Templates/SQLiteLoadProcedureItemTemplate.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,11 +24,11 @@
 using Res = Maestro.AddIn.ExtendedObjectModels.Properties.Resources;
 using OSGeo.MapGuide.MaestroAPI;
 using Maestro.Editors.Generic;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
 using OSGeo.MapGuide.ObjectModels.LayerDefinition;
 using Maestro.Shared.UI;
 using OSGeo.MapGuide.ObjectModels.LoadProcedure;
 using OSGeo.MapGuide.MaestroAPI.Resource;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.AddIn.ExtendedObjectModels.Templates
 {

Modified: sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Templates/VectorLayer110ItemTemplate.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Templates/VectorLayer110ItemTemplate.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Templates/VectorLayer110ItemTemplate.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,8 +24,8 @@
 using Res = Maestro.AddIn.ExtendedObjectModels.Properties.Resources;
 using OSGeo.MapGuide.MaestroAPI;
 using Maestro.Editors.Generic;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
 using OSGeo.MapGuide.ObjectModels.LayerDefinition;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.AddIn.ExtendedObjectModels.Templates
 {

Modified: sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Templates/VectorLayer120ItemTemplate.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Templates/VectorLayer120ItemTemplate.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Templates/VectorLayer120ItemTemplate.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,8 +24,8 @@
 using Res = Maestro.AddIn.ExtendedObjectModels.Properties.Resources;
 using OSGeo.MapGuide.MaestroAPI;
 using Maestro.Editors.Generic;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
 using OSGeo.MapGuide.ObjectModels.LayerDefinition;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.AddIn.ExtendedObjectModels.Templates
 {

Modified: sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Templates/VectorLayer130ItemTemplate.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Templates/VectorLayer130ItemTemplate.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Templates/VectorLayer130ItemTemplate.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,7 +24,7 @@
 using Res = Maestro.AddIn.ExtendedObjectModels.Properties.Resources;
 using OSGeo.MapGuide.MaestroAPI;
 using Maestro.Editors.Generic;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 using OSGeo.MapGuide.ObjectModels.LayerDefinition;
 
 namespace Maestro.AddIn.ExtendedObjectModels.Templates

Modified: sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Templates/WebLayout110ItemTemplate.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Templates/WebLayout110ItemTemplate.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.AddIn.ExtendedObjectModels/Templates/WebLayout110ItemTemplate.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,10 +24,11 @@
 using Res = Maestro.AddIn.ExtendedObjectModels.Properties.Resources;
 using OSGeo.MapGuide.MaestroAPI;
 using Maestro.Editors.Generic;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 using OSGeo.MapGuide.ObjectModels.LayerDefinition;
 using Maestro.Shared.UI;
 using OSGeo.MapGuide.MaestroAPI.Resource;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.AddIn.ExtendedObjectModels.Templates
 {

Modified: sandbox/maestro-3.0/Maestro.Base/Commands/PasteCommand.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Commands/PasteCommand.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Commands/PasteCommand.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -59,7 +59,7 @@
 
             foreach (var item in itemsToPaste)
             {
-                LoggingService.InfoFormatted("{0} item {1} into {2}", item.ClipboardState, item.ResourceId, folder.ResourceId); //LOCALIZEME
+                LoggingService.InfoFormatted(Properties.Resources.ClipboardAction, item.ClipboardState, item.ResourceId, folder.ResourceId);
                 
                 //Keep testing until we find a target resource identifier that 
                 //doesn't already exists
@@ -97,7 +97,7 @@
                     //"Shall I break your resources because you're moving" isn't it?
                     var res = conn.ResourceService.MoveResourceWithReferences(item.ResourceId, resId, null, null);
                     if (!res)
-                        LoggingService.InfoFormatted("Failed to move {0} to {1}", item.ResourceId, resId); //LOCALIZEME
+                        LoggingService.InfoFormatted(Properties.Resources.MoveFailure, item.ResourceId, resId);
                     else
                         folders[item.Parent.ResourceId] = item.Parent.ResourceId;
                 }

Modified: sandbox/maestro-3.0/Maestro.Base/Commands/SiteExplorer/NewFolderCommand.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Commands/SiteExplorer/NewFolderCommand.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Commands/SiteExplorer/NewFolderCommand.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -46,7 +46,8 @@
                         counter++;
                         name = defaultName + counter;
                     }
-                    conn.ResourceService.CreateFolder(item.ResourceId + name);
+                    //conn.ResourceService.CreateFolder(item.ResourceId + name);
+                    conn.ResourceService.SetResourceXmlData(item.ResourceId + name + "/", null);
                     var path = item.Model.GetPath(item);
                     item.Model.RaiseStructureChanged(new Aga.Controls.Tree.TreeModelEventArgs(path, new object[0]));
 

Modified: sandbox/maestro-3.0/Maestro.Base/Commands/SiteExplorer/RenameCommand.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Commands/SiteExplorer/RenameCommand.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Commands/SiteExplorer/RenameCommand.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -74,6 +74,11 @@
                         };
 
                         //Perform the operation
+                        if (dlg.UpdateReferences)
+                            conn.ResourceService.MoveResourceWithReferences(oldid, newid, null, cb);
+                        else
+                            conn.ResourceService.MoveResource(oldid, newid, dlg.Overwrite);
+                        /*
                         if (current.IsFolder)
                         {
                             if (dlg.UpdateReferences)
@@ -89,7 +94,7 @@
                             }
                             else
                                 conn.ResourceService.MoveResource(oldid, newid, dlg.Overwrite);
-                        }
+                        }*/
 
                         current.Name = dlg.NewName;
                         if (dlg.Overwrite)

Modified: sandbox/maestro-3.0/Maestro.Base/Commands/Test/SelectFdoProviderCommand.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Commands/Test/SelectFdoProviderCommand.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Commands/Test/SelectFdoProviderCommand.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -36,7 +36,7 @@
             var conn = mgr.GetConnection(exp.ConnectionName);
 
             var providers = conn.FeatureService.FeatureProviders;
-            var provider = GenericItemSelectionDialog.SelectItem("Select FDO provider", "Select an FDO provider", providers, "DisplayName", "Name"); //LOCALIZEME
+            var provider = GenericItemSelectionDialog.SelectItem("Select FDO provider", "Select an FDO provider", providers, "DisplayName", "Name");
             if (provider != null)
             {
                 MessageService.ShowMessage(provider.DisplayName);

Modified: sandbox/maestro-3.0/Maestro.Base/Editor/LayerDefinitionEditor.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Editor/LayerDefinitionEditor.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Editor/LayerDefinitionEditor.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -30,7 +30,7 @@
 using OSGeo.MapGuide.MaestroAPI.Resource;
 using Maestro.Editors;
 using ICSharpCode.Core;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 using Maestro.Base.UI.Preferences;
 
 namespace Maestro.Base.Editor

Modified: sandbox/maestro-3.0/Maestro.Base/Editor/ResourceEditorService.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Editor/ResourceEditorService.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Editor/ResourceEditorService.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -169,7 +169,7 @@
         public void SaveAs(string resourceID)
         {
             if (ResourceIdentifier.IsSessionBased(resourceID))
-                throw new ArgumentException("Resource ID must not be session-based"); //LOCALIZE
+                throw new ArgumentException(Properties.Resources.NotSessionBasedId); //LOCALIZE
 
             if (!OnBeforeSave())
             {

Modified: sandbox/maestro-3.0/Maestro.Base/Editor/ResourcePreviewEngine.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Editor/ResourcePreviewEngine.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Editor/ResourcePreviewEngine.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -22,7 +22,7 @@
 using System.Text;
 using Maestro.Editors;
 using OSGeo.MapGuide.ObjectModels.LayerDefinition;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 using OSGeo.MapGuide.MaestroAPI.Resource;
 using Maestro.Base.UI.Preferences;
 using ICSharpCode.Core;
@@ -30,6 +30,7 @@
 using OSGeo.MapGuide.ObjectModels.WebLayout;
 using OSGeo.MapGuide.MaestroAPI;
 using OSGeo.MapGuide.ObjectModels.ApplicationDefinition;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.Base.Editor
 {
@@ -69,7 +70,7 @@
 
             //Create temp map definition to house our current layer
             var mdfId = "Session:" + sessionId + "//" + Guid.NewGuid() + ".MapDefinition";
-            var mdf = ObjectFactory.CreateMapDefinition(conn, "Preview Map", ldf.GetCoordinateSystemWkt(), ldf.GetSpatialExtent(true)); //LOCALIZEME
+            var mdf = ObjectFactory.CreateMapDefinition(conn, Properties.Resources.PreviewMap, ldf.GetCoordinateSystemWkt(), ldf.GetSpatialExtent(true));
 
             mdf.AddLayer(null, ResourceIdentifier.GetName(ldf.ResourceID), ldf.ResourceID);
 
@@ -107,7 +108,7 @@
 
             var sessionId = _edSvc.SessionID;
             var mdfId = "Session:" + sessionId + "//" + Guid.NewGuid() + ".MapDefinition";
-            var mdf = (MapDefinition)res;
+            var mdf = (IMapDefinition)res;
 
             var conn = mdf.CurrentConnection;
             conn.ResourceService.SaveResourceAs(mdf, mdfId);
@@ -185,7 +186,7 @@
                 case ResourceTypes.WebLayout:
                     return GenerateWebLayoutPreviewUrl(res);
                 default:
-                    throw new InvalidOperationException("This resource type cannot be previewed"); //LOCALIZEME
+                    throw new InvalidOperationException(Properties.Resources.UnpreviewableResourceType);
             }
         }
 

Modified: sandbox/maestro-3.0/Maestro.Base/Editor/XmlEditor.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Editor/XmlEditor.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Editor/XmlEditor.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -31,7 +31,7 @@
 using OSGeo.MapGuide.MaestroAPI;
 using System.Xml;
 using Maestro.Editors;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 using OSGeo.MapGuide.MaestroAPI.Resource.Validation;
 
 namespace Maestro.Base.Editor
@@ -95,7 +95,7 @@
             _edSvc.RegisterCustomNotifier(editor);
             editor.Bind(_edSvc);
             editor.ReadyForEditing(); //This turns on event broadcasting
-            this.Title = "XML Editor: " + ResourceIdentifier.GetName(this.EditorService.ResourceID); //LOCALIZE
+            this.Title = Properties.Resources.XmlEditor + " " + ResourceIdentifier.GetName(this.EditorService.ResourceID);
         }
 
         protected override ICollection<ValidationIssue> ValidateEditedResource()

Modified: sandbox/maestro-3.0/Maestro.Base/Maestro.Base.addin
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Maestro.Base.addin	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Maestro.Base.addin	2010-10-27 09:00:54 UTC (rev 5340)
@@ -368,6 +368,10 @@
                       icon="tick"
                       label="${res:SiteExplorer_ValidateResources}"
                       class="Maestro.Base.Commands.SiteExplorer.ValidateCommand" />
+            <MenuItem type="Separator" />
+            <MenuItem id="Properties"
+                      label="${res:SiteExplorer_SelectedItem_Properties}"
+                      class="Maestro.Base.Commands.SiteExplorer.ResourcePropertiesCommand" />
         </Condition>
     </Path>
 

Modified: sandbox/maestro-3.0/Maestro.Base/Maestro.Base.csproj
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Maestro.Base.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Maestro.Base.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -31,6 +31,30 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="Aga.Controls, Version=1.7.0.0, Culture=neutral, PublicKeyToken=fcc90fbf924463a3, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\Aga.Controls.dll</HintPath>
+    </Reference>
+    <Reference Include="Maestro.Editors, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\Maestro.Editors.dll</HintPath>
+    </Reference>
+    <Reference Include="Maestro.Login, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\Maestro.Login.dll</HintPath>
+    </Reference>
+    <Reference Include="Maestro.Packaging, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\Maestro.Packaging.dll</HintPath>
+    </Reference>
+    <Reference Include="Maestro.Shared.UI, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\Maestro.Shared.UI.dll</HintPath>
+    </Reference>
+    <Reference Include="OSGeo.MapGuide.MaestroAPI, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\OSGeo.MapGuide.MaestroAPI.dll</HintPath>
+    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Data" />
     <Reference Include="System.Drawing" />
@@ -468,31 +492,11 @@
     </EmbeddedResource>
   </ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\Maestro.Editors\Maestro.Editors.csproj">
-      <Project>{5AD2CDBA-952E-4148-98A1-31D2E0D540D5}</Project>
-      <Name>Maestro.Editors</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\Maestro.Login\Maestro.Login.csproj">
-      <Project>{07588440-5F9F-4C30-AA06-9CF30BA6DDE6}</Project>
-      <Name>Maestro.Login</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\Maestro.Packaging\Maestro.Packaging.csproj">
-      <Project>{0EA33E36-9C33-4D60-B378-B87FADAA0F40}</Project>
-      <Name>Maestro.Packaging</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\Maestro.Shared.UI\Maestro.Shared.UI.csproj">
-      <Project>{CFD19053-2172-41D3-8460-0FD2123A1E88}</Project>
-      <Name>Maestro.Shared.UI</Name>
-    </ProjectReference>
     <ProjectReference Include="..\MaestroFsPreview\MaestroFsPreview.csproj">
       <Project>{59BE5E18-17B6-431D-836E-C0AABA6D69E8}</Project>
       <Name>MaestroFsPreview</Name>
       <Private>False</Private>
     </ProjectReference>
-    <ProjectReference Include="..\OSGeo.MapGuide.MaestroAPI\OSGeo.MapGuide.MaestroAPI.csproj">
-      <Project>{80FA3158-8B5F-48D1-A393-0378AFE48A7E}</Project>
-      <Name>OSGeo.MapGuide.MaestroAPI</Name>
-    </ProjectReference>
     <ProjectReference Include="..\Thirdparty\SharpDevelop\ICSharpCode.Core.WinForms\ICSharpCode.Core.WinForms.csproj">
       <Project>{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}</Project>
       <Name>ICSharpCode.Core.WinForms</Name>
@@ -503,10 +507,6 @@
       <Name>ICSharpCode.Core</Name>
       <Private>False</Private>
     </ProjectReference>
-    <ProjectReference Include="..\Thirdparty\TreeViewAdv\Aga.Controls\Aga.Controls.csproj">
-      <Project>{E73BB233-D88B-44A7-A98F-D71EE158381D}</Project>
-      <Name>Aga.Controls</Name>
-    </ProjectReference>
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 

Modified: sandbox/maestro-3.0/Maestro.Base/Properties/Resources.Designer.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Properties/Resources.Designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Properties/Resources.Designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -266,6 +266,15 @@
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to {0} item {1} into {2}.
+        /// </summary>
+        internal static string ClipboardAction {
+            get {
+                return ResourceManager.GetString("ClipboardAction", resourceCulture);
+            }
+        }
+        
         internal static System.Drawing.Bitmap clock {
             get {
                 object obj = ResourceManager.GetObject("clock", resourceCulture);
@@ -917,6 +926,15 @@
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Failed to move {0} to {1}.
+        /// </summary>
+        internal static string MoveFailure {
+            get {
+                return ResourceManager.GetString("MoveFailure", resourceCulture);
+            }
+        }
+        
         internal static System.Drawing.Bitmap navigation {
             get {
                 object obj = ResourceManager.GetObject("navigation", resourceCulture);
@@ -946,6 +964,15 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to New Map.
+        /// </summary>
+        internal static string NewMap {
+            get {
+                return ResourceManager.GetString("NewMap", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to New Resource.
         /// </summary>
         internal static string NewResource {
@@ -955,6 +982,15 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to Resource ID must not be session based.
+        /// </summary>
+        internal static string NotSessionBasedId {
+            get {
+                return ResourceManager.GetString("NotSessionBasedId", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Skipping registration of editor: {0} because an existing editor is already registered to handle {1} v{2}.
         /// </summary>
         internal static string OpenResourceManager_SkipEditorRegistration {
@@ -1002,6 +1038,15 @@
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Preview Map.
+        /// </summary>
+        internal static string PreviewMap {
+            get {
+                return ResourceManager.GetString("PreviewMap", resourceCulture);
+            }
+        }
+        
         internal static System.Drawing.Bitmap printer {
             get {
                 object obj = ResourceManager.GetObject("printer", resourceCulture);
@@ -1726,6 +1771,15 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to The resource type cannot be previewed.
+        /// </summary>
+        internal static string UnpreviewableResourceType {
+            get {
+                return ResourceManager.GetString("UnpreviewableResourceType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Building resource list....
         /// </summary>
         internal static string ValidationBuildingList {
@@ -1789,6 +1843,15 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to XML Editor:.
+        /// </summary>
+        internal static string XmlEditor {
+            get {
+                return ResourceManager.GetString("XmlEditor", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Load this resource into the Site Repository.
         /// </summary>
         internal static string XmlResHandlerAction {

Modified: sandbox/maestro-3.0/Maestro.Base/Properties/Resources.resx
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Properties/Resources.resx	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Properties/Resources.resx	2010-10-27 09:00:54 UTC (rev 5340)
@@ -766,4 +766,25 @@
   <data name="SiteExplorer_Migrate" xml:space="preserve">
     <value>Migrate</value>
   </data>
+  <data name="ClipboardAction" xml:space="preserve">
+    <value>{0} item {1} into {2}</value>
+  </data>
+  <data name="MoveFailure" xml:space="preserve">
+    <value>Failed to move {0} to {1}</value>
+  </data>
+  <data name="NewMap" xml:space="preserve">
+    <value>New Map</value>
+  </data>
+  <data name="NotSessionBasedId" xml:space="preserve">
+    <value>Resource ID must not be session based</value>
+  </data>
+  <data name="PreviewMap" xml:space="preserve">
+    <value>Preview Map</value>
+  </data>
+  <data name="UnpreviewableResourceType" xml:space="preserve">
+    <value>The resource type cannot be previewed</value>
+  </data>
+  <data name="XmlEditor" xml:space="preserve">
+    <value>XML Editor:</value>
+  </data>
 </root>
\ No newline at end of file

Modified: sandbox/maestro-3.0/Maestro.Base/Services/DragDropHandlers/SdfFileHandler.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Services/DragDropHandlers/SdfFileHandler.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Services/DragDropHandlers/SdfFileHandler.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -20,10 +20,10 @@
 using System;
 using System.Collections.Generic;
 using System.Text;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
 using OSGeo.MapGuide.MaestroAPI.Resource;
 using System.IO;
 using ICSharpCode.Core;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.Base.Services.DragDropHandlers
 {

Modified: sandbox/maestro-3.0/Maestro.Base/Services/DragDropHandlers/ShpFileHandler.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Services/DragDropHandlers/ShpFileHandler.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Services/DragDropHandlers/ShpFileHandler.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -20,10 +20,11 @@
 using System;
 using System.Collections.Generic;
 using System.Text;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 using System.IO;
 using ICSharpCode.Core;
 using OSGeo.MapGuide.MaestroAPI.Resource;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.Base.Services.DragDropHandlers
 {

Modified: sandbox/maestro-3.0/Maestro.Base/Services/DragDropHandlers/SltFileHandler.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Services/DragDropHandlers/SltFileHandler.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Services/DragDropHandlers/SltFileHandler.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -20,10 +20,10 @@
 using System;
 using System.Collections.Generic;
 using System.Text;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
 using OSGeo.MapGuide.MaestroAPI.Resource;
 using System.IO;
 using ICSharpCode.Core;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.Base.Services.DragDropHandlers
 {

Modified: sandbox/maestro-3.0/Maestro.Base/Services/DragDropHandlers/XmlResFileHandler.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Services/DragDropHandlers/XmlResFileHandler.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Services/DragDropHandlers/XmlResFileHandler.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -20,7 +20,7 @@
 using System;
 using System.Collections.Generic;
 using System.Text;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 using OSGeo.MapGuide.MaestroAPI.Resource;
 using System.IO;
 using ICSharpCode.Core;

Modified: sandbox/maestro-3.0/Maestro.Base/Templates/ApplicationDefinitionItemTemplate.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Templates/ApplicationDefinitionItemTemplate.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Templates/ApplicationDefinitionItemTemplate.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,8 +23,9 @@
 using OSGeo.MapGuide.MaestroAPI;
 using OSGeo.MapGuide.MaestroAPI.Services;
 using Res = Maestro.Base.Properties.Resources;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 using OSGeo.MapGuide.MaestroAPI.Resource;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.Base.Templates
 {

Modified: sandbox/maestro-3.0/Maestro.Base/Templates/DrawingLayerDefinitionItemTemplate.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Templates/DrawingLayerDefinitionItemTemplate.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Templates/DrawingLayerDefinitionItemTemplate.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -22,10 +22,10 @@
 using System.Text;
 using Res = Maestro.Base.Properties.Resources;
 using OSGeo.MapGuide.MaestroAPI;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
 using OSGeo.MapGuide.MaestroAPI.Resource;
 using Maestro.Editors.Generic;
 using OSGeo.MapGuide.ObjectModels.LayerDefinition;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.Base.Templates
 {

Modified: sandbox/maestro-3.0/Maestro.Base/Templates/DrawingSourceItemTemplate.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Templates/DrawingSourceItemTemplate.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Templates/DrawingSourceItemTemplate.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,7 +24,8 @@
 using OSGeo.MapGuide.MaestroAPI.Services;
 using Res = Maestro.Base.Properties.Resources;
 using OSGeo.MapGuide.MaestroAPI.Resource;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.Base.Templates
 {

Modified: sandbox/maestro-3.0/Maestro.Base/Templates/DwfLoadProcedureItemTemplate.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Templates/DwfLoadProcedureItemTemplate.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Templates/DwfLoadProcedureItemTemplate.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,9 +24,10 @@
 using OSGeo.MapGuide.MaestroAPI.Services;
 using Res = Maestro.Base.Properties.Resources;
 using OSGeo.MapGuide.MaestroAPI.Resource;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 using Maestro.Shared.UI;
 using OSGeo.MapGuide.ObjectModels.LoadProcedure;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.Base.Templates
 {

Modified: sandbox/maestro-3.0/Maestro.Base/Templates/FeatureSourceItemTemplate.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Templates/FeatureSourceItemTemplate.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Templates/FeatureSourceItemTemplate.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,8 +24,9 @@
 using OSGeo.MapGuide.MaestroAPI.Services;
 using Res = Maestro.Base.Properties.Resources;
 using OSGeo.MapGuide.MaestroAPI.Resource;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 using Maestro.Editors.Common;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.Base.Templates
 {

Modified: sandbox/maestro-3.0/Maestro.Base/Templates/MapDefinitionItemTemplate.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Templates/MapDefinitionItemTemplate.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Templates/MapDefinitionItemTemplate.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,7 +24,8 @@
 using OSGeo.MapGuide.MaestroAPI.Services;
 using Res = Maestro.Base.Properties.Resources;
 using OSGeo.MapGuide.MaestroAPI.Resource;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.Base.Templates
 {
@@ -41,7 +42,7 @@
 
         public override IResource CreateItem(IServerConnection conn)
         {
-            return ObjectFactory.CreateMapDefinition(conn, "New Map"); //LOCALIZEME
+            return ObjectFactory.CreateMapDefinition(conn, Properties.Resources.NewMap);
         }
     }
 }

Modified: sandbox/maestro-3.0/Maestro.Base/Templates/PrintLayoutItemTemplate.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Templates/PrintLayoutItemTemplate.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Templates/PrintLayoutItemTemplate.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,7 +24,8 @@
 using OSGeo.MapGuide.MaestroAPI.Services;
 using Res = Maestro.Base.Properties.Resources;
 using OSGeo.MapGuide.MaestroAPI.Resource;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.Base.Templates
 {

Modified: sandbox/maestro-3.0/Maestro.Base/Templates/RasterLayerDefinitionItemTemplate.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Templates/RasterLayerDefinitionItemTemplate.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Templates/RasterLayerDefinitionItemTemplate.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,7 +23,8 @@
 using OSGeo.MapGuide.MaestroAPI.Resource;
 using Res = Maestro.Base.Properties.Resources;
 using OSGeo.MapGuide.MaestroAPI;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.Base.Templates
 {

Modified: sandbox/maestro-3.0/Maestro.Base/Templates/SdfLoadProcedureItemTemplate.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Templates/SdfLoadProcedureItemTemplate.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Templates/SdfLoadProcedureItemTemplate.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,9 +24,10 @@
 using OSGeo.MapGuide.MaestroAPI.Services;
 using Res = Maestro.Base.Properties.Resources;
 using OSGeo.MapGuide.MaestroAPI.Resource;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 using Maestro.Shared.UI;
 using OSGeo.MapGuide.ObjectModels.LoadProcedure;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.Base.Templates
 {

Modified: sandbox/maestro-3.0/Maestro.Base/Templates/ShpLoadProcedureItemTemplate.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Templates/ShpLoadProcedureItemTemplate.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Templates/ShpLoadProcedureItemTemplate.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,9 +24,10 @@
 using OSGeo.MapGuide.MaestroAPI.Services;
 using Res = Maestro.Base.Properties.Resources;
 using OSGeo.MapGuide.MaestroAPI.Resource;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 using Maestro.Shared.UI;
 using OSGeo.MapGuide.ObjectModels.LoadProcedure;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.Base.Templates
 {

Modified: sandbox/maestro-3.0/Maestro.Base/Templates/SymbolDefinitionItemTemplate.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Templates/SymbolDefinitionItemTemplate.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Templates/SymbolDefinitionItemTemplate.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,7 +24,8 @@
 using OSGeo.MapGuide.MaestroAPI.Services;
 using Res = Maestro.Base.Properties.Resources;
 using OSGeo.MapGuide.MaestroAPI.Resource;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.Base.Templates
 {

Modified: sandbox/maestro-3.0/Maestro.Base/Templates/VectorLayerDefinitionItemTemplate.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Templates/VectorLayerDefinitionItemTemplate.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Templates/VectorLayerDefinitionItemTemplate.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,9 +24,10 @@
 using OSGeo.MapGuide.MaestroAPI.Services;
 using Res = Maestro.Base.Properties.Resources;
 using OSGeo.MapGuide.MaestroAPI.Resource;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 using Maestro.Editors.Generic;
 using OSGeo.MapGuide.ObjectModels.LayerDefinition;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.Base.Templates
 {

Modified: sandbox/maestro-3.0/Maestro.Base/Templates/WebLayoutItemTemplate.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/Templates/WebLayoutItemTemplate.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/Templates/WebLayoutItemTemplate.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,7 +24,8 @@
 using OSGeo.MapGuide.MaestroAPI.Services;
 using Res = Maestro.Base.Properties.Resources;
 using OSGeo.MapGuide.MaestroAPI.Resource;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.Base.Templates
 {

Modified: sandbox/maestro-3.0/Maestro.Base/UI/ResourcePropertiesDialog.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/UI/ResourcePropertiesDialog.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/UI/ResourcePropertiesDialog.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -28,10 +28,13 @@
 using OSGeo.MapGuide.ObjectModels.Common;
 using OSGeo.MapGuide.MaestroAPI.Resource;
 using System.Collections.Specialized;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 using OSGeo.MapGuide.MaestroAPI.Exceptions;
 using OSGeo.MapGuide.ObjectModels.LayerDefinition;
 using OSGeo.MapGuide.ObjectModels.FeatureSource;
+using OSGeo.MapGuide.ObjectModels;
+using OSGeo.MapGuide.MaestroAPI.Services;
+using ICSharpCode.Core;
 
 namespace Maestro.Base.UI
 {
@@ -101,7 +104,9 @@
             Dictionary<string, ListViewItem> gl = new Dictionary<string, ListViewItem>();
 
             UsersAndGroups.Items.Clear();
-            foreach (UserListUser u in m_connection.ResourceService.EnumerateUsers().Items)
+            var site = (ISiteService)m_connection.GetService((int)ServiceType.Site);
+
+            foreach (UserListUser u in site.EnumerateUsers().Items)
             {
                 ListViewItem lvi = new ListViewItem(new string[] { u.FullName, u.Description, StatusNames[IHUSER] }, IHUSER);
                 lvi.Tag = u;
@@ -109,7 +114,7 @@
                 ul.Add(u.Name, lvi);
             }
 
-            foreach (GroupListGroup g in m_connection.ResourceService.EnumerateGroups().Group)
+            foreach (GroupListGroup g in site.EnumerateGroups().Group)
             {
                 ListViewItem lvi = new ListViewItem(new string[] { g.Name, g.Description, StatusNames[IHGROUP] }, IHGROUP);
                 lvi.Tag = g;

Modified: sandbox/maestro-3.0/Maestro.Base/UI/SiteExplorer.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Base/UI/SiteExplorer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Base/UI/SiteExplorer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -439,7 +439,8 @@
                         //moved instead of the folder itself!
                         var rid = new ResourceIdentifier(r);
                         var target = folderId + rid.Name + "/";
-                        _conn.ResourceService.MoveFolderWithReferences(r, target, null, cb);
+                        //_conn.ResourceService.MoveFolderWithReferences(r, target, null, cb);
+                        _conn.ResourceService.MoveResourceWithReferences(r, target, null, cb);
                     }
                     else
                         _conn.ResourceService.MoveResourceWithReferences(r, folderId, null, cb);

Modified: sandbox/maestro-3.0/Maestro.Editors/Common/SymbolPicker.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/Common/SymbolPicker.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Editors/Common/SymbolPicker.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -54,7 +54,7 @@
         {
             //Extract the symbols.dwf resource data and copy to a session based drawing source
             var dwf = _conn.ResourceService.GetResourceData(txtSymbolLibrary.Text, "symbols.dwf");
-            var ds = OSGeo.MapGuide.MaestroAPI.ObjectModels.ObjectFactory.CreateDrawingSource(_conn);
+            var ds = OSGeo.MapGuide.ObjectModels.ObjectFactory.CreateDrawingSource(_conn);
             ds.SourceName = "symbols.dwf";
             ds.ResourceID = "Session:" + _conn.SessionID + "//" + Guid.NewGuid() + ".DrawingSource";
             _conn.ResourceService.SaveResource(ds);

Modified: sandbox/maestro-3.0/Maestro.Editors/DrawingSource/SourceSectionCtrl.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/DrawingSource/SourceSectionCtrl.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Editors/DrawingSource/SourceSectionCtrl.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -26,8 +26,9 @@
 using System.Windows.Forms;
 using Maestro.Shared.UI;
 using Maestro.Editors.Common;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 using OSGeo.MapGuide.MaestroAPI.Services;
+using OSGeo.MapGuide.ObjectModels.DrawingSource;
 
 namespace Maestro.Editors.DrawingSource
 {

Modified: sandbox/maestro-3.0/Maestro.Editors/FeatureSource/ExtensionsCtrl.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/FeatureSource/ExtensionsCtrl.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Editors/FeatureSource/ExtensionsCtrl.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -20,17 +20,18 @@
 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
+using System.Data;
+using System.Diagnostics;
 using System.Drawing;
-using System.Data;
 using System.Text;
 using System.Windows.Forms;
+using Maestro.Editors.Common;
+using Maestro.Editors.FeatureSource.Extensions;
 using Maestro.Shared.UI;
+using OSGeo.MapGuide.MaestroAPI;
+using OSGeo.MapGuide.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 using OSGeo.MapGuide.ObjectModels.FeatureSource;
-using Maestro.Editors.FeatureSource.Extensions;
-using OSGeo.MapGuide.MaestroAPI;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
-using Maestro.Editors.Common;
-using System.Diagnostics;
 
 namespace Maestro.Editors.FeatureSource
 {

Modified: sandbox/maestro-3.0/Maestro.Editors/FeatureSource/Preview/PreviewPane.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/FeatureSource/Preview/PreviewPane.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Editors/FeatureSource/Preview/PreviewPane.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -67,7 +67,7 @@
 
             if (ctrl == null)
             {
-                throw new ArgumentException("Unknown query mode"); //LOCALIZEME
+                throw new ArgumentException(Properties.Resources.UnknownQueryMode);
             }
 
             ctrl.Content.Dock = DockStyle.Fill;

Modified: sandbox/maestro-3.0/Maestro.Editors/Generic/XmlEditorCtrl.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/Generic/XmlEditorCtrl.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Editors/Generic/XmlEditorCtrl.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -27,7 +27,7 @@
 using System.Xml.Schema;
 using System.Xml;
 using System.IO;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 using OSGeo.MapGuide.MaestroAPI.Resource;
 using OSGeo.MapGuide.MaestroAPI.Exceptions;
 

Modified: sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/Scales/ConditionListButtons.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/Scales/ConditionListButtons.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/Scales/ConditionListButtons.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -27,7 +27,7 @@
 using OSGeo.MapGuide.MaestroAPI;
 using OSGeo.MapGuide.ObjectModels.LayerDefinition;
 using OSGeo.MapGuide.MaestroAPI.Exceptions;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 using Maestro.Editors.LayerDefinition.Vector.Thematics;
 
 namespace Maestro.Editors.LayerDefinition.Vector.Scales
@@ -151,7 +151,7 @@
 
                 ILayerDefinition layer = (ILayerDefinition)m_owner.Editor.GetEditedResource();
                 IVectorLayerDefinition vl = (IVectorLayerDefinition)layer.SubLayer;
-                var cls = m_owner.Editor.FeatureService.GetFeatureSourceSchema(vl.ResourceId, vl.FeatureName);
+                var cls = m_owner.Editor.FeatureService.GetClassDefinition(vl.ResourceId, vl.FeatureName);
                 ThemeCreator dlg = new ThemeCreator(
                     m_owner.Editor, 
                     layer,

Modified: sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeConditions.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeConditions.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeConditions.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -26,7 +26,7 @@
 using System.Windows.Forms;
 using OSGeo.MapGuide.MaestroAPI;
 using OSGeo.MapGuide.ObjectModels.LayerDefinition;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.Editors.LayerDefinition.Vector.Scales
 {

Modified: sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/StyleEditors/AreaFeatureStyleEditor.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/StyleEditors/AreaFeatureStyleEditor.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/StyleEditors/AreaFeatureStyleEditor.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -25,7 +25,7 @@
 using OSGeo.MapGuide.MaestroAPI;
 using OSGeo.MapGuide.ObjectModels.LayerDefinition;
 using OSGeo.MapGuide.ObjectModels.FeatureSource;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.Editors.LayerDefinition.Vector.StyleEditors
 {

Modified: sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/StyleEditors/FontStyleEditor.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/StyleEditors/FontStyleEditor.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/StyleEditors/FontStyleEditor.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -26,7 +26,7 @@
 using OSGeo.MapGuide.ObjectModels.LayerDefinition;
 using OSGeo.MapGuide.MaestroAPI;
 using OSGeo.MapGuide.ObjectModels.FeatureSource;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.Editors.LayerDefinition.Vector.StyleEditors
 {

Modified: sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/StyleEditors/LineFeatureStyleEditor.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/StyleEditors/LineFeatureStyleEditor.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/StyleEditors/LineFeatureStyleEditor.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -27,7 +27,7 @@
 using OSGeo.MapGuide.MaestroAPI;
 using OSGeo.MapGuide.ObjectModels.FeatureSource;
 using Maestro.Editors.Common;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.Editors.LayerDefinition.Vector.StyleEditors
 {

Modified: sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/StyleEditors/PointFeatureStyleEditor.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/StyleEditors/PointFeatureStyleEditor.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/StyleEditors/PointFeatureStyleEditor.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -29,7 +29,7 @@
 using OSGeo.MapGuide.ObjectModels.FeatureSource;
 using System.Globalization;
 using OSGeo.MapGuide.ObjectModels;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 using System.Threading;
 
 namespace Maestro.Editors.LayerDefinition.Vector.StyleEditors

Modified: sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/Thematics/ThemeCreator.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/Thematics/ThemeCreator.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/Thematics/ThemeCreator.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -22,17 +22,17 @@
 using System.ComponentModel;
 using System.Data;
 using System.Drawing;
+using System.IO;
 using System.Text;
 using System.Windows.Forms;
+using Maestro.Editors.Common;
+using Maestro.Editors.LayerDefinition.Vector.Scales;
+using Maestro.Editors.LayerDefinition.Vector.StyleEditors;
 using OSGeo.MapGuide.MaestroAPI;
-using Maestro.Editors.Common;
+using OSGeo.MapGuide.MaestroAPI.Exceptions;
+using OSGeo.MapGuide.ObjectModels;
+using OSGeo.MapGuide.ObjectModels.LayerDefinition;
 using Ldf = OSGeo.MapGuide.ObjectModels.LayerDefinition;
-using OSGeo.MapGuide.ObjectModels.LayerDefinition;
-using OSGeo.MapGuide.MaestroAPI.Exceptions;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
-using Maestro.Editors.LayerDefinition.Vector.StyleEditors;
-using Maestro.Editors.LayerDefinition.Vector.Scales;
-using System.IO;
 
 namespace Maestro.Editors.LayerDefinition.Vector.Thematics
 {

Modified: sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/VectorLayerStyleSectionCtrl.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/VectorLayerStyleSectionCtrl.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Editors/LayerDefinition/Vector/VectorLayerStyleSectionCtrl.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -25,7 +25,7 @@
 using System.Text;
 using System.Windows.Forms;
 using Maestro.Shared.UI;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 using OSGeo.MapGuide.ObjectModels.LayerDefinition;
 using System.Collections;
 using Maestro.Editors.Common;

Modified: sandbox/maestro-3.0/Maestro.Editors/Maestro.Editors.csproj
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/Maestro.Editors.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Editors/Maestro.Editors.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -17,7 +17,7 @@
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
+    <OutputPath>..\SDK\bin\Debug\</OutputPath>
     <DefineConstants>DEBUG;TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -25,10 +25,11 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
+    <OutputPath>..\SDK\bin\Release\</OutputPath>
     <DefineConstants>TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
+    <DocumentationFile>..\SDK\bin\Release\Maestro.Editors.XML</DocumentationFile>
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="ICSharpCode.SharpZipLib, Version=0.85.4.369, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">

Modified: sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapDefinitionEditorCtrl.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapDefinitionEditorCtrl.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapDefinitionEditorCtrl.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,6 +24,7 @@
 using System.Data;
 using System.Text;
 using System.Windows.Forms;
+using OSGeo.MapGuide.ObjectModels.MapDefinition;
 
 namespace Maestro.Editors.MapDefinition
 {
@@ -34,13 +35,13 @@
             InitializeComponent();
         }
 
-        private OSGeo.MapGuide.ObjectModels.MapDefinition.MapDefinition _map;
+        private IMapDefinition _map;
         private IEditorService _edSvc;
 
         public override void Bind(IEditorService service)
         {
             _edSvc = service;
-            _map = _edSvc.GetEditedResource() as OSGeo.MapGuide.ObjectModels.MapDefinition.MapDefinition;
+            _map = _edSvc.GetEditedResource() as IMapDefinition;
 
             mapSettingsCtrl.Bind(service);
             mapLayersCtrl.Bind(service);

Modified: sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapSettingsSectionCtrl.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapSettingsSectionCtrl.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Editors/MapDefinition/MapSettingsSectionCtrl.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -54,7 +54,7 @@
 
             _service = service;
             _service.RegisterCustomNotifier(this);
-            _map = (OSGeo.MapGuide.ObjectModels.MapDefinition.MapDefinition)service.GetEditedResource();
+            _map = (IMapDefinition)service.GetEditedResource();
 
             var bmeta = new Binding("Text", _map, "Metadata");
             bmeta.Parse += (sender, e) =>

Modified: sandbox/maestro-3.0/Maestro.Editors/PrintLayout/LogoDialog.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/PrintLayout/LogoDialog.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Editors/PrintLayout/LogoDialog.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -46,7 +46,7 @@
             //TOOD: Maybe be more graceful? Like allow text entry, but disable browsing buttons?
             if (Array.IndexOf(conn.Capabilities.SupportedServices, (int)ServiceType.Drawing) < 0)
             {
-                throw new InvalidOperationException("Required service not supported on this connection: " + ServiceType.Drawing.ToString()); //LOCALIZEME
+                throw new InvalidOperationException(Properties.Resources.RequiredServiceNotSupported + ServiceType.Drawing.ToString());
             }
             _conn = conn;
         }

Modified: sandbox/maestro-3.0/Maestro.Editors/Properties/Resources.Designer.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/Properties/Resources.Designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Editors/Properties/Resources.Designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1824,6 +1824,15 @@
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to This connection does not support required service: .
+        /// </summary>
+        internal static string RequiredServiceNotSupported {
+            get {
+                return ResourceManager.GetString("RequiredServiceNotSupported", resourceCulture);
+            }
+        }
+        
         internal static System.Drawing.Bitmap ruler {
             get {
                 object obj = ResourceManager.GetObject("ruler", resourceCulture);
@@ -2171,6 +2180,15 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to Unknown query mode.
+        /// </summary>
+        internal static string UnknownQueryMode {
+            get {
+                return ResourceManager.GetString("UnknownQueryMode", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Unknown types.
         /// </summary>
         internal static string UnknownResourceTypes {

Modified: sandbox/maestro-3.0/Maestro.Editors/Properties/Resources.resx
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/Properties/Resources.resx	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Editors/Properties/Resources.resx	2010-10-27 09:00:54 UTC (rev 5340)
@@ -989,4 +989,10 @@
   <data name="NotAFolder" xml:space="preserve">
     <value>Not a folder: {0}</value>
   </data>
+  <data name="RequiredServiceNotSupported" xml:space="preserve">
+    <value>This connection does not support required service: </value>
+  </data>
+  <data name="UnknownQueryMode" xml:space="preserve">
+    <value>Unknown query mode</value>
+  </data>
 </root>
\ No newline at end of file

Modified: sandbox/maestro-3.0/Maestro.Editors/WebLayout/Commands/SearchCmdCtrl.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/WebLayout/Commands/SearchCmdCtrl.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Editors/WebLayout/Commands/SearchCmdCtrl.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -143,13 +143,13 @@
             base.UnsubscribeEventHandlers();
         }
 
-        private List<MapLayerType> _layers;
+        private List<IMapLayer> _layers;
 
         private void LoadLayers()
         {
-            var map = (OSGeo.MapGuide.ObjectModels.MapDefinition.MapDefinition)_edsvc.ResourceService.GetResource(_wl.Map.ResourceId);
+            var map = (IMapDefinition)_edsvc.ResourceService.GetResource(_wl.Map.ResourceId);
 
-            _layers = new List<MapLayerType>(map.MapLayer);
+            _layers = new List<IMapLayer>(map.MapLayer);
         }
 
         void OnWebLayoutPropertyChanged(object sender, PropertyChangedEventArgs e)
@@ -186,7 +186,7 @@
                 var ldf = (ILayerDefinition)_edsvc.ResourceService.GetResource(txtLayer.Tag.ToString());
                 var vl = (IVectorLayerDefinition)ldf.SubLayer;
 
-                _cls = _edsvc.FeatureService.GetFeatureSourceSchema(vl.ResourceId, vl.FeatureName);
+                _cls = _edsvc.FeatureService.GetClassDefinition(vl.ResourceId, vl.FeatureName);
 
                 COL_PROPERTY.DisplayMember = "Name";
                 COL_PROPERTY.DataSource = _cls.Columns;

Modified: sandbox/maestro-3.0/Maestro.Editors/WebLayout/WebLayoutCommandsCtrl.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/WebLayout/WebLayoutCommandsCtrl.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Editors/WebLayout/WebLayoutCommandsCtrl.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -27,7 +27,7 @@
 using Maestro.Shared.UI;
 using Maestro.Editors.Common;
 using OSGeo.MapGuide.ObjectModels.WebLayout;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace Maestro.Editors.WebLayout
 {

Modified: sandbox/maestro-3.0/Maestro.Editors/WebLayout/WebLayoutSettingsCtrl.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Editors/WebLayout/WebLayoutSettingsCtrl.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Editors/WebLayout/WebLayoutSettingsCtrl.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -20,16 +20,16 @@
 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
+using System.Data;
 using System.Drawing;
-using System.Data;
 using System.Text;
 using System.Windows.Forms;
-using Maestro.Shared.UI;
 using Maestro.Editors.Common;
-using OSGeo.MapGuide.ObjectModels.WebLayout;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
 using Maestro.Editors.Generic;
+using Maestro.Shared.UI;
 using OSGeo.MapGuide.MaestroAPI;
+using OSGeo.MapGuide.ObjectModels;
+using OSGeo.MapGuide.ObjectModels.WebLayout;
 
 namespace Maestro.Editors.WebLayout
 {

Modified: sandbox/maestro-3.0/Maestro.Login/HttpLoginCtrl.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Login/HttpLoginCtrl.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Login/HttpLoginCtrl.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -157,6 +157,11 @@
 
         public event EventHandler CheckSavedPassword = delegate { };
 
+        public CultureInfo SelectedCulture
+        {
+            get { return cmbLanguage.SelectedItem as CultureInfo; }
+        }
+
         private void cmbLanguage_SelectedIndexChanged(object sender, EventArgs e)
         {
             if (!_loading)
@@ -170,8 +175,12 @@
                     {
                         try
                         {
-                            this.SiteList.GUILanguage = this.Language;
-                            this.SiteList.Save();
+                            var ci = cmbLanguage.SelectedItem as CultureInfo;
+                            if (ci != null)
+                            {
+                                this.SiteList.GUILanguage = ci.Name;
+                                this.SiteList.Save();
+                            }
                         }
                         catch { }
 

Modified: sandbox/maestro-3.0/Maestro.Login/LoginDialog.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Login/LoginDialog.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Login/LoginDialog.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -215,8 +215,11 @@
 
                             //_siteList.AutoConnect = chkAutoConnect.Checked;
                             _siteList.PreferedSite = index;
-                            _siteList.GUILanguage = _http.Language;
-
+                            var ci = _http.SelectedCulture;
+                            if (ci != null)
+                            {
+                                _siteList.GUILanguage = ci.Name;
+                            }
                             _siteList.Save();
                         }
                         catch (Exception ex)

Modified: sandbox/maestro-3.0/Maestro.Login/Maestro.Login.csproj
===================================================================
--- sandbox/maestro-3.0/Maestro.Login/Maestro.Login.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Login/Maestro.Login.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -17,7 +17,7 @@
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
+    <OutputPath>..\SDK\bin\Debug\</OutputPath>
     <DefineConstants>DEBUG;TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -25,10 +25,11 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
+    <OutputPath>..\SDK\bin\Release\</OutputPath>
     <DefineConstants>TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
+    <DocumentationFile>..\SDK\bin\Release\Maestro.Login.XML</DocumentationFile>
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="System" />

Modified: sandbox/maestro-3.0/Maestro.Login/PreferedSite.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Login/PreferedSite.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Login/PreferedSite.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -189,6 +189,28 @@
                 sz.Serialize(fs, this);
             }
         }
+
+        /// <summary>
+        /// Sets the active culture based on the culture specified in the preferred sites
+        /// </summary>
+        public static string InitCulture()
+        {
+            try
+            {
+                PreferredSiteList sites = PreferredSiteList.Load();
+                if (!string.IsNullOrEmpty(sites.GUILanguage))
+                {
+                    System.Threading.Thread.CurrentThread.CurrentUICulture =
+                    System.Threading.Thread.CurrentThread.CurrentCulture =
+                        System.Globalization.CultureInfo.GetCultureInfo(sites.GUILanguage);
+                }
+            }
+            catch
+            {
+            }
+
+            return System.Threading.Thread.CurrentThread.CurrentUICulture.Name;
+        }
 	}
 
 	/// <summary>

Modified: sandbox/maestro-3.0/Maestro.Packaging/Maestro.Packaging.csproj
===================================================================
--- sandbox/maestro-3.0/Maestro.Packaging/Maestro.Packaging.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Packaging/Maestro.Packaging.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -19,7 +19,7 @@
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
+    <OutputPath>..\SDK\bin\Debug\</OutputPath>
     <DefineConstants>DEBUG;TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -27,10 +27,11 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
+    <OutputPath>..\SDK\bin\Release\</OutputPath>
     <DefineConstants>TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
+    <DocumentationFile>..\SDK\bin\Release\Maestro.Packaging.XML</DocumentationFile>
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="ICSharpCode.SharpZipLib, Version=0.85.4.369, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">

Modified: sandbox/maestro-3.0/Maestro.Packaging/PackageBuilder.cs
===================================================================
--- sandbox/maestro-3.0/Maestro.Packaging/PackageBuilder.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Packaging/PackageBuilder.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -544,7 +544,7 @@
                     string path = System.IO.Path.Combine(tempdir, op.Parameters.GetParameterValue("CONTENT").Replace('/', System.IO.Path.DirectorySeparatorChar));
                     System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
                     doc.Load(lookup[path]);
-                    ((ServerConnectionBase)connection).UpdateResourceReferences(doc, origpath, newpath, true);
+                    ((PlatformConnectionBase)connection).UpdateResourceReferences(doc, origpath, newpath, true);
                     System.IO.MemoryStream ms = new System.IO.MemoryStream();
                     doc.Save(ms);
                     System.IO.MemoryStream ms2 = Utility.RemoveUTF8BOM(ms);
@@ -772,7 +772,7 @@
                             {
                                 System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
                                 doc.Load(filemap_lookup[rix.Contentpath]);
-                                ((ServerConnectionBase)m_connection).UpdateResourceReferences(doc, ri.OriginalResourcePath, ri.ResourcePath, ri.IsFolder);
+                                ((PlatformConnectionBase)m_connection).UpdateResourceReferences(doc, ri.OriginalResourcePath, ri.ResourcePath, ri.IsFolder);
                                 System.IO.MemoryStream ms = new System.IO.MemoryStream();
                                 doc.Save(ms);
                                 System.IO.MemoryStream ms2 = Utility.RemoveUTF8BOM(ms);

Modified: sandbox/maestro-3.0/Maestro.Shared.UI/Maestro.Shared.UI.csproj
===================================================================
--- sandbox/maestro-3.0/Maestro.Shared.UI/Maestro.Shared.UI.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/Maestro.Shared.UI/Maestro.Shared.UI.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -17,7 +17,7 @@
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
+    <OutputPath>..\SDK\bin\Debug\</OutputPath>
     <DefineConstants>DEBUG;TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -25,7 +25,7 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
+    <OutputPath>..\SDK\bin\Release\</OutputPath>
     <DefineConstants>TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>

Modified: sandbox/maestro-3.0/MaestroAPITests/MaestroAPITests.csproj
===================================================================
--- sandbox/maestro-3.0/MaestroAPITests/MaestroAPITests.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/MaestroAPITests/MaestroAPITests.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -60,16 +60,6 @@
     <Compile Include="ValidationTests.cs" />
   </ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\OSGeo.MapGuide.MaestroAPI.Http\OSGeo.MapGuide.MaestroAPI.Http.csproj">
-      <Project>{6EF1E775-444B-4E5F-87FB-D687C43A68D7}</Project>
-      <Name>OSGeo.MapGuide.MaestroAPI.Http</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\OSGeo.MapGuide.MaestroAPI\OSGeo.MapGuide.MaestroAPI.csproj">
-      <Project>{80FA3158-8B5F-48D1-A393-0378AFE48A7E}</Project>
-      <Name>OSGeo.MapGuide.MaestroAPI</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
     <EmbeddedResource Include="Properties\Resources.resx">
       <Generator>ResXFileCodeGenerator</Generator>
       <LastGenOutput>Resources.Designer.cs</LastGenOutput>
@@ -85,6 +75,20 @@
   <ItemGroup>
     <None Include="Resources\SelectSqlSample.xml" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\OSGeo.MapGuide.MaestroAPI.Http\OSGeo.MapGuide.MaestroAPI.Http.csproj">
+      <Project>{6EF1E775-444B-4E5F-87FB-D687C43A68D7}</Project>
+      <Name>OSGeo.MapGuide.MaestroAPI.Http</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\OSGeo.MapGuide.MaestroAPI.Native\OSGeo.MapGuide.MaestroAPI.Native.csproj">
+      <Project>{F4420153-9DF3-4407-AD65-E8ABED2B6E25}</Project>
+      <Name>OSGeo.MapGuide.MaestroAPI.Native</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\OSGeo.MapGuide.MaestroAPI\OSGeo.MapGuide.MaestroAPI.csproj">
+      <Project>{80FA3158-8B5F-48D1-A393-0378AFE48A7E}</Project>
+      <Name>OSGeo.MapGuide.MaestroAPI</Name>
+    </ProjectReference>
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.

Modified: sandbox/maestro-3.0/MaestroAPITests/ObjectTests.cs
===================================================================
--- sandbox/maestro-3.0/MaestroAPITests/ObjectTests.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/MaestroAPITests/ObjectTests.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -21,7 +21,7 @@
 using System.Collections.Generic;
 using System.Text;
 using NUnit.Framework;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace MaestroAPITests
 {

Modified: sandbox/maestro-3.0/MaestroAPITests/ResourceTests.cs
===================================================================
--- sandbox/maestro-3.0/MaestroAPITests/ResourceTests.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/MaestroAPITests/ResourceTests.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -35,8 +35,8 @@
 using OSGeo.MapGuide.MaestroAPI.Resource;
 using OSGeo.MapGuide.ObjectModels.Common;
 using OSGeo.MapGuide.MaestroAPI;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
 using OSGeo.MapGuide.ObjectModels.LoadProcedure;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace MaestroAPITests
 {
@@ -56,7 +56,7 @@
             var app2 = app.Clone();
             Assert.AreNotSame(app, app2);
 
-            var fs = new FeatureSourceType();
+            var fs = new OSGeo.MapGuide.ObjectModels.FeatureSource_1_0_0.FeatureSourceType();
             var fs2 = fs.Clone();
             Assert.AreNotSame(fs, fs2);
 
@@ -64,7 +64,7 @@
             var ld2 = ld.Clone();
             Assert.AreNotSame(ld, ld2);
 
-            var md = new MapDefinition();
+            var md = ObjectFactory.CreateMapDefinition(conn, "TestMap");
             var md2 = md.Clone();
             Assert.AreNotSame(md, md2);
 
@@ -72,7 +72,7 @@
             var wl2 = wl.Clone();
             Assert.AreNotSame(wl, wl2);
 
-            var sl = new SymbolLibraryType();
+            var sl = new OSGeo.MapGuide.ObjectModels.SymbolLibrary_1_0_0.SymbolLibraryType();
             var sl2 = sl.Clone();
             Assert.AreNotSame(sl, sl2);
 
@@ -84,7 +84,7 @@
             var csd2 = csd.Clone();
             Assert.AreNotSame(csd, csd2);
 
-            var pl = new PrintLayout();
+            var pl = ObjectFactory.CreatePrintLayout(conn);
             var pl2 = pl.Clone();
             Assert.AreNotSame(pl, pl2);
         }
@@ -260,39 +260,6 @@
             }
             #endregion
 
-            res = ObjectFactory.CreateSymbolLibrary(conn);
-            #region Symbol Library
-            try
-            {
-                res.ResourceID = "dklgjlahekjedjfd";
-                Assert.Fail("Should've thrown exception on invalid resource id");
-            }
-            catch (InvalidOperationException){ }
-
-            try
-            {
-                res.ResourceID = "Library://UnitTests/";
-                Assert.Fail("Should've thrown exception on invalid resource id");
-            }
-            catch (InvalidOperationException){ }
-
-            try
-            {
-                res.ResourceID = "Library://UnitTests/Test.DrawingSource";
-                Assert.Fail("Should've thrown exception on invalid resource id");
-            }
-            catch (InvalidOperationException){ }
-
-            try
-            {
-                res.ResourceID = "Library://UnitTests/Test.SymbolLibrary";
-            }
-            catch (Exception)
-            {
-                Assert.Fail("Resource ID should've checked out");
-            }
-            #endregion
-
             res = ObjectFactory.CreateSimpleSymbol(conn);
             #region Simple Symbol Definition
             try
@@ -489,10 +456,6 @@
             var wl2 = conv.Upgrade(wl, targetVer);
             Assert.AreSame(wl, wl2);
 
-            var sl = ObjectFactory.CreateSymbolLibrary(conn);
-            var sl2 = conv.Upgrade(sl, targetVer);
-            Assert.AreSame(sl, sl2);
-
             var ssd = ObjectFactory.CreateSimpleSymbol(conn);
             var ssd2 = conv.Upgrade(ssd, targetVer);
             Assert.AreSame(ssd, ssd2);

Modified: sandbox/maestro-3.0/MaestroAPITests/SerializationTests.cs
===================================================================
--- sandbox/maestro-3.0/MaestroAPITests/SerializationTests.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/MaestroAPITests/SerializationTests.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -21,7 +21,7 @@
 using System.Collections.Generic;
 using System.Text;
 using NUnit.Framework;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 using NMock2;
 using OSGeo.MapGuide.MaestroAPI;
 

Modified: sandbox/maestro-3.0/MaestroAPITests/ValidationTests.cs
===================================================================
--- sandbox/maestro-3.0/MaestroAPITests/ValidationTests.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/MaestroAPITests/ValidationTests.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -25,10 +25,10 @@
 using NMock2;
 
 using LoadProc = OSGeo.MapGuide.ObjectModels.LoadProcedure;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
 using OSGeo.MapGuide.MaestroAPI;
 using OSGeo.MapGuide.ObjectModels.LoadProcedure;
 using OSGeo.MapGuide.MaestroAPI.Resource.Validation;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace MaestroAPITests
 {

Modified: sandbox/maestro-3.0/MaestroBaseTests/MaestroBaseTests.csproj
===================================================================
--- sandbox/maestro-3.0/MaestroBaseTests/MaestroBaseTests.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/MaestroBaseTests/MaestroBaseTests.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -55,14 +55,6 @@
       <Project>{F1E2F468-5030-4DBA-968C-9620284AFAA1}</Project>
       <Name>Maestro.Base</Name>
     </ProjectReference>
-    <ProjectReference Include="..\OSGeo.MapGuide.MaestroAPI.Http\OSGeo.MapGuide.MaestroAPI.Http.csproj">
-      <Project>{6EF1E775-444B-4E5F-87FB-D687C43A68D7}</Project>
-      <Name>OSGeo.MapGuide.MaestroAPI.Http</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\OSGeo.MapGuide.MaestroAPI\OSGeo.MapGuide.MaestroAPI.csproj">
-      <Project>{80FA3158-8B5F-48D1-A393-0378AFE48A7E}</Project>
-      <Name>OSGeo.MapGuide.MaestroAPI</Name>
-    </ProjectReference>
     <ProjectReference Include="..\Thirdparty\SharpDevelop\ICSharpCode.Core.WinForms\ICSharpCode.Core.WinForms.csproj">
       <Project>{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}</Project>
       <Name>ICSharpCode.Core.WinForms</Name>

Modified: sandbox/maestro-3.0/MaestroFsPreview/MaestroFsPreview.csproj
===================================================================
--- sandbox/maestro-3.0/MaestroFsPreview/MaestroFsPreview.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/MaestroFsPreview/MaestroFsPreview.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -39,6 +39,14 @@
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\Thirdparty\TreeViewAdv\Aga.Controls\obj\Debug\Aga.Controls.dll</HintPath>
     </Reference>
+    <Reference Include="Maestro.Editors, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\Maestro.Editors.dll</HintPath>
+    </Reference>
+    <Reference Include="Maestro.Login, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\Maestro.Login.dll</HintPath>
+    </Reference>
     <Reference Include="Maestro.Shared.UI, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\Maestro.Shared.UI\bin\Debug\Maestro.Shared.UI.dll</HintPath>
@@ -89,16 +97,6 @@
     </Compile>
   </ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\Maestro.Editors\Maestro.Editors.csproj">
-      <Project>{5AD2CDBA-952E-4148-98A1-31D2E0D540D5}</Project>
-      <Name>Maestro.Editors</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\Maestro.Login\Maestro.Login.csproj">
-      <Project>{07588440-5F9F-4C30-AA06-9CF30BA6DDE6}</Project>
-      <Name>Maestro.Login</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
     <Content Include="MapGuide Maestro.ico" />
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

Modified: sandbox/maestro-3.0/MaestroFsPreview/Program.cs
===================================================================
--- sandbox/maestro-3.0/MaestroFsPreview/Program.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/MaestroFsPreview/Program.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -35,6 +35,7 @@
         {
             Application.EnableVisualStyles();
             Application.SetCompatibleTextRenderingDefault(false);
+            PreferredSiteList.InitCulture();
             IServerConnection conn = null;
 
             var login = new LoginDialog();

Modified: sandbox/maestro-3.0/MgCooker/MgCooker.csproj
===================================================================
--- sandbox/maestro-3.0/MgCooker/MgCooker.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/MgCooker/MgCooker.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -32,6 +32,14 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="Maestro.Login, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\Maestro.Login.dll</HintPath>
+    </Reference>
+    <Reference Include="OSGeo.MapGuide.MaestroAPI, Version=3.0.0.5334, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\SDK\bin\Release\OSGeo.MapGuide.MaestroAPI.dll</HintPath>
+    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Data" />
     <Reference Include="System.Deployment" />
@@ -87,16 +95,6 @@
     </Compile>
   </ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\Maestro.Login\Maestro.Login.csproj">
-      <Project>{07588440-5F9F-4C30-AA06-9CF30BA6DDE6}</Project>
-      <Name>Maestro.Login</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\OSGeo.MapGuide.MaestroAPI\OSGeo.MapGuide.MaestroAPI.csproj">
-      <Project>{80FA3158-8B5F-48D1-A393-0378AFE48A7E}</Project>
-      <Name>OSGeo.MapGuide.MaestroAPI</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
     <Content Include="MgCookerLogo.ico" />
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

Modified: sandbox/maestro-3.0/MgCooker/Program.cs
===================================================================
--- sandbox/maestro-3.0/MgCooker/Program.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/MgCooker/Program.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -25,7 +25,7 @@
 using OSGeo.MapGuide.ObjectModels.Common;
 using OSGeo.MapGuide.MaestroAPI;
 using System.Collections.Specialized;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace MgCooker
 {
@@ -55,22 +55,8 @@
         {
             System.Windows.Forms.Application.EnableVisualStyles();
             System.Windows.Forms.Application.DoEvents();
+            PreferredSiteList.InitCulture();
 
-            try
-            {
-                PreferredSiteList sites = PreferredSiteList.Load();
-                if (!string.IsNullOrEmpty(sites.GUILanguage))
-                {
-                    System.Threading.Thread.CurrentThread.CurrentUICulture =
-                    System.Threading.Thread.CurrentThread.CurrentCulture =
-                        System.Globalization.CultureInfo.GetCultureInfo(sites.GUILanguage);
-                }
-            }
-            catch
-            {
-            }
-
-
             //Parameters:
             //mapagent=
             //username=

Modified: sandbox/maestro-3.0/MgCooker/SetupRun.cs
===================================================================
--- sandbox/maestro-3.0/MgCooker/SetupRun.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/MgCooker/SetupRun.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -488,7 +488,7 @@
                 if (m_coordinateOverrides.ContainsKey(root.Text))
                     box = m_coordinateOverrides[root.Text];
                 else
-                    box = ((MapDefinition)root.Tag).Extents;
+                    box = ((IMapDefinition)root.Tag).Extents;
 
                 BoundsOverride.Tag = root;
 
@@ -532,7 +532,7 @@
             if (!m_coordinateOverrides.ContainsKey(root.Text))
             {
                 //IEnvelope newbox = new OSGeo.MapGuide.IEnvelope();
-                IEnvelope origbox = ((MapDefinition)root.Tag).Extents;
+                IEnvelope origbox = ((IMapDefinition)root.Tag).Extents;
                 IEnvelope newbox = origbox.Clone();
 
                 m_coordinateOverrides.Add(root.Text, newbox);

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/BindingListExtensions.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/BindingListExtensions.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/BindingListExtensions.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,10 +24,19 @@
 
 namespace OSGeo.MapGuide.MaestroAPI
 {
+    /// <summary>
+    /// Extension method class 
+    /// </summary>
     public static class BindingListExtensions
     {
         //We target .net 2.0 so we have to roll our own extension methods
 
+        /// <summary>
+        /// Gets an array from the specified binding list
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="list"></param>
+        /// <returns></returns>
         public static T[] ToArray<T>(this BindingList<T> list)
         {
             T[] values = new T[list.Count];
@@ -46,6 +55,9 @@
 
 namespace System.Runtime.CompilerServices
 {
+    /// <summary>
+    /// Compiler attribute to support extension methods
+    /// </summary>
     public class ExtensionAttribute : Attribute
     {
 

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Capability/ConnectionCapabilities.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Capability/ConnectionCapabilities.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Capability/ConnectionCapabilities.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -25,15 +25,30 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Capability
 {
+    /// <summary>
+    /// Base connection capabilitiy class
+    /// </summary>
     public abstract class ConnectionCapabilities : IConnectionCapabilities
     {
+        /// <summary>
+        /// The parent connection
+        /// </summary>
         protected IServerConnection _parent;
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="ConnectionCapabilities"/> class.
+        /// </summary>
+        /// <param name="parent">The parent.</param>
         protected ConnectionCapabilities(IServerConnection parent)
         {
             _parent = parent;
         }
 
+        /// <summary>
+        /// Gets the highest supported resource version.
+        /// </summary>
+        /// <param name="resourceType"></param>
+        /// <returns></returns>
         public virtual Version GetMaxSupportedResourceVersion(ResourceTypes resourceType)
         {
             Version ver = new Version(1, 0, 0);
@@ -62,16 +77,28 @@
             return ver;
         }
 
+        /// <summary>
+        /// Supportses the advanced symbols.
+        /// </summary>
+        /// <returns></returns>
         protected virtual bool SupportsAdvancedSymbols()
         {
             return (_parent.SiteVersion >= new Version(1, 2));
         }
 
+        /// <summary>
+        /// Supportses the fusion.
+        /// </summary>
+        /// <returns></returns>
         protected virtual bool SupportsFusion()
         {
             return (_parent.SiteVersion >= new Version(2, 0));
         }
 
+        /// <summary>
+        /// Gets the max load procedure version.
+        /// </summary>
+        /// <returns></returns>
         protected virtual Version GetMaxLoadProcedureVersion()
         {
             if (_parent.SiteVersion >= new Version(2, 2))
@@ -83,6 +110,10 @@
             return new Version(1, 0, 0);
         }
 
+        /// <summary>
+        /// Gets the max symbol definition version.
+        /// </summary>
+        /// <returns></returns>
         protected virtual Version GetMaxSymbolDefinitionVersion()
         {
             if (_parent.SiteVersion >= new Version(2, 0))
@@ -91,6 +122,10 @@
             return new Version(1, 0, 0);
         }
 
+        /// <summary>
+        /// Gets the max web layout version.
+        /// </summary>
+        /// <returns></returns>
         protected virtual Version GetMaxWebLayoutVersion()
         {
             if (_parent.SiteVersion >= new Version(2, 2))
@@ -98,6 +133,10 @@
             return new Version(1, 0, 0);
         }
 
+        /// <summary>
+        /// Gets the max layer definition version.
+        /// </summary>
+        /// <returns></returns>
         protected virtual Version GetMaxLayerDefinitionVersion()
         {
             if (_parent.SiteVersion >= new Version(2, 1))
@@ -109,11 +148,19 @@
             return new Version(1, 0, 0);
         }
 
+        /// <summary>
+        /// Gets an array of supported commands
+        /// </summary>
+        /// <value></value>
         public abstract int[] SupportedCommands
         {
             get;
         }
 
+        /// <summary>
+        /// Gets an array of supported services
+        /// </summary>
+        /// <value></value>
         public virtual int[] SupportedServices
         {
             get
@@ -144,16 +191,29 @@
             }
         }
 
+        /// <summary>
+        /// Indicates whether web-based previewing capabilities are possible with this connection
+        /// </summary>
+        /// <value></value>
         public abstract bool SupportsResourcePreviewUrls
         {
             get;
         }
 
+        /// <summary>
+        /// Indicates whether the current connection can be used between multiple threads
+        /// </summary>
+        /// <value></value>
         public abstract bool IsMultithreaded
         {
             get;
         }
 
+        /// <summary>
+        /// Indicates if this current connection supports the specified resource type
+        /// </summary>
+        /// <param name="resourceType"></param>
+        /// <returns></returns>
         public virtual bool IsSupportedResourceType(string resourceType)
         {
             Check.NotEmpty(resourceType, "resourceType");
@@ -170,6 +230,11 @@
             return true;
         }
 
+        /// <summary>
+        /// Indicates if this current connection supports the specified resource type
+        /// </summary>
+        /// <param name="resType"></param>
+        /// <returns></returns>
         public bool IsSupportedResourceType(ResourceTypes resType)
         {
             return IsSupportedResourceType(resType.ToString());

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Check.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Check.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Check.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,6 +23,9 @@
 
 namespace OSGeo.MapGuide.MaestroAPI
 {
+    /// <summary>
+    /// An exception thrown as a result of a failed precondition
+    /// </summary>
     [global::System.Serializable]
     public class PreconditionException : Exception
     {
@@ -33,15 +36,41 @@
         //    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncscol/html/csharp07192001.asp
         //
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="PreconditionException"/> class.
+        /// </summary>
         public PreconditionException() { }
+        /// <summary>
+        /// Initializes a new instance of the <see cref="PreconditionException"/> class.
+        /// </summary>
+        /// <param name="message">The message.</param>
         public PreconditionException(string message) : base(message) { }
+        /// <summary>
+        /// Initializes a new instance of the <see cref="PreconditionException"/> class.
+        /// </summary>
+        /// <param name="message">The message.</param>
+        /// <param name="inner">The inner.</param>
         public PreconditionException(string message, Exception inner) : base(message, inner) { }
+        /// <summary>
+        /// Initializes a new instance of the <see cref="PreconditionException"/> class.
+        /// </summary>
+        /// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
+        /// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
+        /// <exception cref="T:System.ArgumentNullException">
+        /// The <paramref name="info"/> parameter is null.
+        /// </exception>
+        /// <exception cref="T:System.Runtime.Serialization.SerializationException">
+        /// The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0).
+        /// </exception>
         protected PreconditionException(
           System.Runtime.Serialization.SerializationInfo info,
           System.Runtime.Serialization.StreamingContext context)
             : base(info, context) { }
     }
 
+    /// <summary>
+    /// Pre-condition verifier utility class
+    /// </summary>
     public static class Check
     {
         /// <summary>
@@ -64,7 +93,7 @@
         public static void NotNull<T>(T obj, string arg) where T : class
         {
             if (obj == null)
-                throw new PreconditionException("Value is null: " + arg); //LOCALIZEME
+                throw new PreconditionException(Properties.Resources.PrecondValueNull + arg);
         }
 
         /// <summary>
@@ -75,7 +104,7 @@
         public static void NotEmpty(string value, string arg) 
         {
             if (string.IsNullOrEmpty(value))
-                throw new PreconditionException("string is empty: " + arg); //LOCALIZEME
+                throw new PreconditionException(Properties.Resources.PrecondStringEmpty + arg);
         }
 
         /// <summary>
@@ -86,7 +115,7 @@
         public static void Precondition(bool condition, string msg)
         {
             if (!condition)
-                throw new PreconditionException("Precondition failure: " + msg); //LOCALIZEME
+                throw new PreconditionException(Properties.Resources.PrecondFailure + msg);
         }
     }
 }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Commands/CommandType.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Commands/CommandType.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Commands/CommandType.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,6 +23,9 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Commands
 {
+    /// <summary>
+    /// Defines the custom command types
+    /// </summary>
     public enum CommandType : int
     {
         

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Commands/ExecuteLoadProcedure.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Commands/ExecuteLoadProcedure.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Commands/ExecuteLoadProcedure.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -25,9 +25,9 @@
 using OSGeo.MapGuide.ObjectModels.Common;
 using OSGeo.MapGuide.ObjectModels.LayerDefinition;
 using OSGeo.MapGuide.MaestroAPI.Resource;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
 using OSGeo.MapGuide.ObjectModels.LoadProcedure;
 using OSGeo.MapGuide.MaestroAPI.Services;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace OSGeo.MapGuide.MaestroAPI.Commands
 {
@@ -36,8 +36,26 @@
     /// </summary>
     public interface IExecuteLoadProcedure : ICommand
     {
+        /// <summary>
+        /// Executes the specified load proc.
+        /// </summary>
+        /// <param name="loadProc">The load proc.</param>
+        /// <param name="callback">The callback.</param>
+        /// <returns></returns>
         string[] Execute(ILoadProcedure loadProc, OSGeo.MapGuide.MaestroAPI.LengthyOperationProgressCallBack callback);
+        /// <summary>
+        /// Executes the specified resource ID.
+        /// </summary>
+        /// <param name="resourceID">The resource ID.</param>
+        /// <param name="callback">The callback.</param>
+        /// <returns></returns>
         string[] Execute(string resourceID, OSGeo.MapGuide.MaestroAPI.LengthyOperationProgressCallBack callback);
+        /// <summary>
+        /// Gets or sets a value indicating whether [ignore unsupported features].
+        /// </summary>
+        /// <value>
+        /// 	<c>true</c> if [ignore unsupported features]; otherwise, <c>false</c>.
+        /// </value>
         bool IgnoreUnsupportedFeatures { get; set; }
     }
 
@@ -73,6 +91,12 @@
             set;
         }
 
+        /// <summary>
+        /// Executes the specified load procedure.
+        /// </summary>
+        /// <param name="resourceID">The resource ID of the load procedure.</param>
+        /// <param name="callback">The callback.</param>
+        /// <returns></returns>
         public string[] Execute(string resourceID, OSGeo.MapGuide.MaestroAPI.LengthyOperationProgressCallBack callback)
         {
             if (!ResourceIdentifier.Validate(this.ResourceID))
@@ -88,15 +112,16 @@
         /// <summary>
         /// Executes the specified load procedure. Only SDF and SHP load procedures are supported.
         /// Also note that the following load procedure features are ignored during execution:
-        ///  - Generalization of data
-        ///  - Conversion from SHP to SDF
-        ///  - SDF2 to SDF3 conversion
-        ///  - SDF3 duplicate key handling
+        /// - Generalization of data
+        /// - Conversion from SHP to SDF
+        /// - SDF2 to SDF3 conversion
+        /// - SDF3 duplicate key handling
         /// </summary>
-        /// <param name="resourceID"></param>
-        /// <param name="ignoreUnsupportedFeatures">If false, will throw exceptions when executing a load procedure containing unsupported features.</param>
-        /// <param name="callback"></param>
-        /// <returns>A list of resource IDs that were created from the execution of this load procedure</returns>
+        /// <param name="proc">The proc.</param>
+        /// <param name="callback">The callback.</param>
+        /// <returns>
+        /// A list of resource IDs that were created from the execution of this load procedure
+        /// </returns>
         public string[] Execute(ILoadProcedure proc, LengthyOperationProgressCallBack callback)
         {
             //TODO: Localize callback messages
@@ -124,7 +149,7 @@
 
             var type = proc.SubType.Type;
             if (type == LoadType.Dwg || type == LoadType.Raster)
-                throw new NotSupportedException("Unsupported load procedure type"); //LOCALIZEME
+                throw new NotSupportedException(Properties.Resources.UnsupportedLoadProcedureType);
 
             var sproc = (IBaseLoadProcedure)proc.SubType;
 
@@ -137,12 +162,12 @@
                     //Anything less than 100% implies use of generalization
                     if (shpl.Generalization < 100.0)
                     {
-                        throw new NotSupportedException("Generalization of data is not supported"); //LOCALIZEME
+                        throw new NotSupportedException(Properties.Resources.LPROC_GeneralizationNotSupported);
                     }
                     //Can't do this because we don't have a portable .net FDO/MG Feature Service
                     if (shpl.ConvertToSdf)
                     {
-                        throw new NotSupportedException("Conversion of SHP files to SDF files is not supported"); //LOCALIZEME
+                        throw new NotSupportedException(Properties.Resources.LPROC_ConvertToSdf3NotSupported);
                     }
                 }
                 resourcesCreatedOrUpdated = ExecuteShpLoadProcedure(cb, shpl, ref firstExecute);
@@ -175,7 +200,7 @@
             {
                 if (Array.IndexOf(this.Parent.Capabilities.SupportedServices, (int)ServiceType.Drawing) < 0)
                 {
-                    throw new NotSupportedException("This connection does not support required service: " + ServiceType.Drawing.ToString()); //LOCALIZEME
+                    throw new NotSupportedException(Properties.Resources.RequiredServiceNotSupported + ServiceType.Drawing.ToString());
                 }
             }
         }
@@ -306,7 +331,7 @@
                                 if (spatialContexts.SpatialContext.Count == 0 && !string.IsNullOrEmpty(shpl.CoordinateSystem))
                                 {
                                     //Register the default CS from the load procedure
-                                    fs.AddSpatialContextOverride(new SpatialContextType()
+                                    fs.AddSpatialContextOverride(new OSGeo.MapGuide.ObjectModels.FeatureSource_1_0_0.SpatialContextType()
                                     {
                                         Name = "Default",
                                         CoordinateSystem = shpl.CoordinateSystem
@@ -580,7 +605,7 @@
                                     if (spatialContexts.SpatialContext.Count == 0 && !string.IsNullOrEmpty(proc.CoordinateSystem))
                                     {
                                         //Register the default CS from the load procedure
-                                        fs.AddSpatialContextOverride(new SpatialContextType()
+                                        fs.AddSpatialContextOverride(new OSGeo.MapGuide.ObjectModels.FeatureSource_1_0_0.SpatialContextType()
                                         {
                                             Name = "Default",
                                             CoordinateSystem = proc.CoordinateSystem

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Commands/ICommand.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Commands/ICommand.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Commands/ICommand.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -28,6 +28,10 @@
     /// </summary>
     public interface ICommand
     {
+        /// <summary>
+        /// Gets the parent connection.
+        /// </summary>
+        /// <value>The parent connection.</value>
         IServerConnection Parent { get; }
     }
 }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ConnectionProviderRegistry.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ConnectionProviderRegistry.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ConnectionProviderRegistry.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -26,10 +26,27 @@
 
 namespace OSGeo.MapGuide.MaestroAPI
 {
+    /// <summary>
+    /// Represents an entry in the Connection Provider Registry
+    /// </summary>
     public class ConnectionProviderEntry
     {
+        /// <summary>
+        /// Gets or sets the name.
+        /// </summary>
+        /// <value>The name.</value>
         public string Name { get; private set; }
+        /// <summary>
+        /// Gets or sets the description.
+        /// </summary>
+        /// <value>The description.</value>
         public string Description { get; private set; }
+        /// <summary>
+        /// Gets or sets a value indicating whether this instance is multi platform.
+        /// </summary>
+        /// <value>
+        /// 	<c>true</c> if this instance is multi platform; otherwise, <c>false</c>.
+        /// </value>
         public bool IsMultiPlatform { get; private set; }
 
         internal ConnectionProviderEntry(string name, string desc, bool multiPlatform)

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/CoordinateSystem.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/CoordinateSystem.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/CoordinateSystem.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,45 +24,124 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.CoordinateSystem
 {
+    /// <summary>
+    /// Represents a coordinate system definition
+    /// </summary>
     public abstract class CoordinateSystemBase
     {
+        /// <summary>
+        /// The parent category
+        /// </summary>
         protected CoordinateSystemCategory m_parent;
+        /// <summary>
+        /// The cs code
+        /// </summary>
         protected string m_code;
+        /// <summary>
+        /// The description
+        /// </summary>
         protected string m_description;
+        /// <summary>
+        /// The projection
+        /// </summary>
         protected string m_projection;
+        /// <summary>
+        /// The projection description
+        /// </summary>
         protected string m_projectionDescription;
+        /// <summary>
+        /// The datum
+        /// </summary>
         protected string m_datum;
+        /// <summary>
+        /// The datum description
+        /// </summary>
         protected string m_datumDescription;
+        /// <summary>
+        /// The ellipsoid
+        /// </summary>
         protected string m_ellipsoid;
+        /// <summary>
+        /// The ellipsoid description
+        /// </summary>
         protected string m_ellipsoidDescription;
 
+        /// <summary>
+        /// The cs wkt
+        /// </summary>
         protected string m_wkt = null;
+        /// <summary>
+        /// The epsg code
+        /// </summary>
         protected string m_epsg = null;
 
-        protected CoordinateSystemBase() { } 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="CoordinateSystemBase"/> class.
+        /// </summary>
+        protected CoordinateSystemBase() { }
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="CoordinateSystemBase"/> class.
+        /// </summary>
+        /// <param name="parent">The parent.</param>
         protected CoordinateSystemBase(CoordinateSystemCategory parent)
         {
             m_parent = parent;
         }
 
+        /// <summary>
+        /// Gets or sets the code.
+        /// </summary>
+        /// <value>The code.</value>
 		public string Code 
 		{ 
 			get { return m_code; } 
 			set { m_code = value; }
 		}
+        /// <summary>
+        /// Gets or sets the description.
+        /// </summary>
+        /// <value>The description.</value>
 		public string Description 
 		{ 
 			get { return m_description; } 
 			set { m_description = value; }
 		}
+        /// <summary>
+        /// Gets the projection.
+        /// </summary>
+        /// <value>The projection.</value>
 		public string Projection { get { return m_projection; } }
+        /// <summary>
+        /// Gets the projection description.
+        /// </summary>
+        /// <value>The projection description.</value>
 		public string ProjectionDescription { get { return m_projectionDescription; } }
+        /// <summary>
+        /// Gets the datum.
+        /// </summary>
+        /// <value>The datum.</value>
 		public string Datum { get { return m_datum; } }
+        /// <summary>
+        /// Gets the datum description.
+        /// </summary>
+        /// <value>The datum description.</value>
 		public string DatumDescription { get { return m_datumDescription; } }
+        /// <summary>
+        /// Gets the ellipsoid.
+        /// </summary>
+        /// <value>The ellipsoid.</value>
 		public string Ellipsoid { get { return m_ellipsoid; } }
+        /// <summary>
+        /// Gets the ellipsoid description.
+        /// </summary>
+        /// <value>The ellipsoid description.</value>
 		public string EllipsoidDescription { get { return m_ellipsoidDescription; } }
 
+        /// <summary>
+        /// Gets or sets the WKT.
+        /// </summary>
+        /// <value>The WKT.</value>
 		public string WKT 
 		{
 			get 
@@ -77,6 +156,10 @@
 			}
 		}
 
+        /// <summary>
+        /// Gets the EPSG code
+        /// </summary>
+        /// <value>The EPSG code.</value>
 		public string EPSG 
 		{
 			get 
@@ -91,6 +174,12 @@
 			}
 		}
 
+        /// <summary>
+        /// Returns a <see cref="System.String"/> that represents this instance.
+        /// </summary>
+        /// <returns>
+        /// A <see cref="System.String"/> that represents this instance.
+        /// </returns>
 		public override string ToString()
 		{
 			if (m_description == null && m_code == null)

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/CoordinateSystemCatalog.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/CoordinateSystemCatalog.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/CoordinateSystemCatalog.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,8 +23,15 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.CoordinateSystem
 {
+    /// <summary>
+    /// Base coordinate system catalog class
+    /// </summary>
     public abstract class CoordinateSystemCatalog : ICoordinateSystemCatalog
     {
+        /// <summary>
+        /// Gets an array of all coordinate systems in this catalog
+        /// </summary>
+        /// <value></value>
         public virtual CoordinateSystemBase[] Coordsys
         {
             get
@@ -41,6 +48,11 @@
             }
         }
 
+        /// <summary>
+        /// Gets the coordinate system that matches the specified code
+        /// </summary>
+        /// <param name="coordcode"></param>
+        /// <returns></returns>
         public virtual CoordinateSystemBase FindCoordSys(string coordcode)
         {
             try
@@ -61,24 +73,70 @@
             return null;
         }
 
+        /// <summary>
+        /// Gets an empty coordinate system
+        /// </summary>
+        /// <returns></returns>
         public abstract CoordinateSystemBase CreateEmptyCoordinateSystem();
 
+        /// <summary>
+        /// Gets an array of coordinate system categories
+        /// </summary>
+        /// <value></value>
         public abstract CoordinateSystemCategory[] Categories { get; }
 
+        /// <summary>
+        /// Gets the name of the coordinate system library
+        /// </summary>
+        /// <value></value>
         public abstract string LibraryName { get; }
 
+        /// <summary>
+        /// Convers the specified coordinate system code to WKT
+        /// </summary>
+        /// <param name="coordcode"></param>
+        /// <returns></returns>
         public abstract string ConvertCoordinateSystemCodeToWkt(string coordcode);
 
+        /// <summary>
+        /// Converts the specified epsg code to WKT
+        /// </summary>
+        /// <param name="epsg"></param>
+        /// <returns></returns>
         public abstract string ConvertEpsgCodeToWkt(string epsg);
 
+        /// <summary>
+        /// Converts the specified WKT into a coordinate system code
+        /// </summary>
+        /// <param name="wkt"></param>
+        /// <returns></returns>
         public abstract string ConvertWktToCoordinateSystemCode(string wkt);
 
+        /// <summary>
+        /// Converts the specified WKT into an EPSG code
+        /// </summary>
+        /// <param name="wkt"></param>
+        /// <returns></returns>
         public abstract string ConvertWktToEpsgCode(string wkt);
 
+        /// <summary>
+        /// Gets an array of all coordinate systems in the specified category
+        /// </summary>
+        /// <param name="category"></param>
+        /// <returns></returns>
         public abstract CoordinateSystemBase[] EnumerateCoordinateSystems(string category);
 
+        /// <summary>
+        /// Checks if the specified WKT is valid
+        /// </summary>
+        /// <param name="wkt"></param>
+        /// <returns></returns>
         public abstract bool IsValid(string wkt);
 
+        /// <summary>
+        /// Gets whether the coordinate system catalog has been loaded
+        /// </summary>
+        /// <value></value>
         public abstract bool IsLoaded { get; }
     }
 }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/CoordinateSystemCategory.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/CoordinateSystemCategory.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/CoordinateSystemCategory.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,22 +23,37 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.CoordinateSystem
 {
+    /// <summary>
+    /// Represents a coordinate system category
+    /// </summary>
     public abstract class CoordinateSystemCategory
     {
         private ICoordinateSystemCatalog _parent;
 		private string m_name;
         private CoordinateSystemBase[] m_items;
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="CoordinateSystemCategory"/> class.
+        /// </summary>
+        /// <param name="parent">The parent.</param>
+        /// <param name="name">The name.</param>
         public CoordinateSystemCategory(ICoordinateSystemCatalog parent, string name)
 		{
 			m_name = name;
 			_parent = parent;
 		}
 
+        /// <summary>
+        /// Gets the name.
+        /// </summary>
+        /// <value>The name.</value>
 		public string Name { get { return m_name; } }
 
         internal ICoordinateSystemCatalog Parent { get { return _parent; } }
 
+        /// <summary>
+        /// Gets an array of all coordinate systems in this category
+        /// </summary>
 		public CoordinateSystemBase[] Items
 		{
 			get
@@ -74,6 +89,12 @@
 			}
 		}
 
+        /// <summary>
+        /// Returns a <see cref="System.String"/> that represents this instance.
+        /// </summary>
+        /// <returns>
+        /// A <see cref="System.String"/> that represents this instance.
+        /// </returns>
 		public override string ToString()
 		{
 			return m_name;

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/ICoordinateSystemCatalog.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/ICoordinateSystemCatalog.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/ICoordinateSystemCatalog.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -20,19 +20,84 @@
 using System;
 namespace OSGeo.MapGuide.MaestroAPI.CoordinateSystem
 {
+    /// <summary>
+    /// Defines a coordinate system catalog
+    /// </summary>
     public interface ICoordinateSystemCatalog
     {
+        /// <summary>
+        /// Gets an array of coordinate system categories
+        /// </summary>
         CoordinateSystemCategory[] Categories { get; }
+
+        /// <summary>
+        /// Convers the specified coordinate system code to WKT
+        /// </summary>
+        /// <param name="coordcode"></param>
+        /// <returns></returns>
         string ConvertCoordinateSystemCodeToWkt(string coordcode);
+
+        /// <summary>
+        /// Converts the specified epsg code to WKT
+        /// </summary>
+        /// <param name="epsg"></param>
+        /// <returns></returns>
         string ConvertEpsgCodeToWkt(string epsg);
+
+        /// <summary>
+        /// Converts the specified WKT into a coordinate system code
+        /// </summary>
+        /// <param name="wkt"></param>
+        /// <returns></returns>
         string ConvertWktToCoordinateSystemCode(string wkt);
+
+        /// <summary>
+        /// Converts the specified WKT into an EPSG code
+        /// </summary>
+        /// <param name="wkt"></param>
+        /// <returns></returns>
         string ConvertWktToEpsgCode(string wkt);
+
+        /// <summary>
+        /// Gets an array of all coordinate systems in this catalog
+        /// </summary>
         CoordinateSystemBase[] Coordsys { get; }
+        
+        /// <summary>
+        /// Gets an array of all coordinate systems in the specified category
+        /// </summary>
+        /// <param name="category"></param>
+        /// <returns></returns>
         CoordinateSystemBase[] EnumerateCoordinateSystems(string category);
+
+        /// <summary>
+        /// Gets the coordinate system that matches the specified code
+        /// </summary>
+        /// <param name="coordcode"></param>
+        /// <returns></returns>
         CoordinateSystemBase FindCoordSys(string coordcode);
+        
+        /// <summary>
+        /// Gets an empty coordinate system
+        /// </summary>
+        /// <returns></returns>
         CoordinateSystemBase CreateEmptyCoordinateSystem();
+
+        /// <summary>
+        /// Checks if the specified WKT is valid
+        /// </summary>
+        /// <param name="wkt"></param>
+        /// <returns></returns>
         bool IsValid(string wkt);
+        
+        /// <summary>
+        /// Gets the name of the coordinate system library
+        /// </summary>
         string LibraryName { get; }
+        
+        /// <summary>
+        /// Gets whether the coordinate system catalog has been loaded
+        /// </summary>
         bool IsLoaded { get; }
     }
 }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/CrossConnection/ResourceMigrator.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/CrossConnection/ResourceMigrator.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/CrossConnection/ResourceMigrator.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -33,6 +33,11 @@
         private IServerConnection _source;
         private IServerConnection _target;
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="ResourceMigrator"/> class.
+        /// </summary>
+        /// <param name="source">The source.</param>
+        /// <param name="target">The target.</param>
         public ResourceMigrator(IServerConnection source, IServerConnection target)
         {
             Check.NotNull(source, "source");

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Enums.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Enums.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Enums.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -21,22 +21,65 @@
 
 namespace OSGeo.MapGuide.MaestroAPI
 {
+    /// <summary>
+    /// Represents the common resource types in MapGuide
+    /// </summary>
 	public enum ResourceTypes
 	{
+        /// <summary>
+        /// Map Definition
+        /// </summary>
 		MapDefinition,
+        /// <summary>
+        /// Layer Definition
+        /// </summary>
 		LayerDefinition,
+        /// <summary>
+        /// Feature Source
+        /// </summary>
 		FeatureSource,
+        /// <summary>
+        /// Web Layout
+        /// </summary>
 		WebLayout,
+        /// <summary>
+        /// Runtime Map
+        /// </summary>
 		RuntimeMap,
+        /// <summary>
+        /// Folder
+        /// </summary>
 		Folder,
+        /// <summary>
+        /// Fusion Flexible Layout
+        /// </summary>
 		ApplicationDefinition,
+        /// <summary>
+        /// Print Layout
+        /// </summary>
         PrintLayout,
+        /// <summary>
+        /// Symbol Definition
+        /// </summary>
         SymbolDefinition,
+        /// <summary>
+        /// Load Procedure
+        /// </summary>
         LoadProcedure,
+        /// <summary>
+        /// Drawing Source
+        /// </summary>
         DrawingSource,
+        /// <summary>
+        /// DWF-based Symbol Library
+        /// </summary>
         SymbolLibrary
 	}
 
+    /// <summary>
+    /// Helper class to filter <see cref="ResourceTypes"/> into the ones that are
+    /// editable
+    /// </summary>
     public static class SiteResourceType
     {
         private static ResourceTypes[] _resTypes;
@@ -58,42 +101,16 @@
             };
         }
 
+        /// <summary>
+        /// Returns an array of all editable <see cref="ResourceTypes"/> values
+        /// </summary>
+        /// <returns></returns>
         public static ResourceTypes[] All()
         {
             return _resTypes;
         }
     }
 
-	public enum Operations
-	{
-		CreateSession,
-		DescribeDrawing,
-		GetDrawing,
-		EnumerateDrawingLayers,
-		GetDrawingLayer,
-		GetDrawingSection,
-		GetDrawingSectionResource,
-		EnumerateDrawingSections,
-		EnumerateDrawingSectionResources,
-		GetDrawingCoordinateSpace,
-		GetFeatureProviders,
-		GetProviderCapabilities,
-		GetConnectionPropertyValues,
-		DescribeFeatureSchema,
-		SelectFeatures,
-		SelectAggregates,
-		ExecuteSqlQuery,
-		GetSpatialContexts,
-		GetLongTransactions,
-		EnumerateDataStores,
-		GetSchemaMapping,
-		GetSchemas,
-		GetClasses,
-		GetClassDefinition,
-		GetIdentityProperties,
-		TestConnection,
-	}
-
 	internal class EnumHelper
 	{
 		private static string[] ResourceTypeNames = new string[]
@@ -122,20 +139,53 @@
 
 	}
 
+    /// <summary>
+    /// Flags that can be used for the QueryMapFeatures operation
+    /// </summary>
 	public enum QueryMapFeaturesLayerAttributes : int
 	{
+        /// <summary>
+        /// All layers
+        /// </summary>
 		AllLayers = 0,
+        /// <summary>
+        /// Only visible
+        /// </summary>
 		OnlyVisible = 1,
+        /// <summary>
+        /// Only selectable
+        /// </summary>
 		OnlySelectable = 2,
+        /// <summary>
+        /// Default
+        /// </summary>
 		Default = 3,
+        /// <summary>
+        /// Only with tooltips
+        /// </summary>
 		OnlyWithToolTips = 4,
+        /// <summary>
+        /// Visible with tooltips
+        /// </summary>
 		VisibleWithToolTips = 5
 	}
 
+    /// <summary>
+    /// Defines the types of unmananged data
+    /// </summary>
 	public enum UnmanagedDataTypes : int
 	{
+        /// <summary>
+        /// Files
+        /// </summary>
 		Files,
+        /// <summary>
+        /// Folders
+        /// </summary>
 		Folders,
+        /// <summary>
+        /// Files and Folders
+        /// </summary>
 		Both
 	}
 }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/CustomPropertyNotFoundException.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/CustomPropertyNotFoundException.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/CustomPropertyNotFoundException.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,6 +23,10 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Exceptions
 {
+    /// <summary>
+    /// An exception that is thrown when attempting to get or set a custom connection
+    /// property that is not defined
+    /// </summary>
     [global::System.Serializable]
     public class CustomPropertyNotFoundException : MaestroException
     {
@@ -33,9 +37,32 @@
         //    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncscol/html/csharp07192001.asp
         //
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="CustomPropertyNotFoundException"/> class.
+        /// </summary>
         public CustomPropertyNotFoundException() { }
+        /// <summary>
+        /// Initializes a new instance of the <see cref="CustomPropertyNotFoundException"/> class.
+        /// </summary>
+        /// <param name="message">The message.</param>
         public CustomPropertyNotFoundException(string message) : base(message) { }
+        /// <summary>
+        /// Initializes a new instance of the <see cref="CustomPropertyNotFoundException"/> class.
+        /// </summary>
+        /// <param name="message">The message.</param>
+        /// <param name="inner">The inner.</param>
         public CustomPropertyNotFoundException(string message, Exception inner) : base(message, inner) { }
+        /// <summary>
+        /// Initializes a new instance of the <see cref="CustomPropertyNotFoundException"/> class.
+        /// </summary>
+        /// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
+        /// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
+        /// <exception cref="T:System.ArgumentNullException">
+        /// The <paramref name="info"/> parameter is null.
+        /// </exception>
+        /// <exception cref="T:System.Runtime.Serialization.SerializationException">
+        /// The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0).
+        /// </exception>
         protected CustomPropertyNotFoundException(
           System.Runtime.Serialization.SerializationInfo info,
           System.Runtime.Serialization.StreamingContext context)

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/MaestroException.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/MaestroException.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/MaestroException.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -36,9 +36,32 @@
         //    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncscol/html/csharp07192001.asp
         //
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="MaestroException"/> class.
+        /// </summary>
         public MaestroException() { }
+        /// <summary>
+        /// Initializes a new instance of the <see cref="MaestroException"/> class.
+        /// </summary>
+        /// <param name="message">The message.</param>
         public MaestroException(string message) : base(message) { }
+        /// <summary>
+        /// Initializes a new instance of the <see cref="MaestroException"/> class.
+        /// </summary>
+        /// <param name="message">The message.</param>
+        /// <param name="inner">The inner.</param>
         public MaestroException(string message, Exception inner) : base(message, inner) { }
+        /// <summary>
+        /// Initializes a new instance of the <see cref="MaestroException"/> class.
+        /// </summary>
+        /// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
+        /// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
+        /// <exception cref="T:System.ArgumentNullException">
+        /// The <paramref name="info"/> parameter is null.
+        /// </exception>
+        /// <exception cref="T:System.Runtime.Serialization.SerializationException">
+        /// The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0).
+        /// </exception>
         protected MaestroException(
           System.Runtime.Serialization.SerializationInfo info,
           System.Runtime.Serialization.StreamingContext context)

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/NestedExceptionMessageProcessor.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/NestedExceptionMessageProcessor.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/NestedExceptionMessageProcessor.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -31,7 +31,7 @@
         /// <summary>
         /// Returns a formatted string containing the main exception message and all messages within the <see cref="InnerException"/> properties
         /// </summary>
-        /// <param name="error"></param>
+        /// <param name="error">The error.</param>
         /// <returns></returns>
         public static string GetFullMessage(Exception error)
         {

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/ResourceConversionException.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/ResourceConversionException.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/ResourceConversionException.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -36,9 +36,32 @@
         //    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncscol/html/csharp07192001.asp
         //
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="ResourceConversionException"/> class.
+        /// </summary>
         public ResourceConversionException() { }
+        /// <summary>
+        /// Initializes a new instance of the <see cref="ResourceConversionException"/> class.
+        /// </summary>
+        /// <param name="message">The message.</param>
         public ResourceConversionException(string message) : base(message) { }
+        /// <summary>
+        /// Initializes a new instance of the <see cref="ResourceConversionException"/> class.
+        /// </summary>
+        /// <param name="message">The message.</param>
+        /// <param name="inner">The inner.</param>
         public ResourceConversionException(string message, Exception inner) : base(message, inner) { }
+        /// <summary>
+        /// Initializes a new instance of the <see cref="ResourceConversionException"/> class.
+        /// </summary>
+        /// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
+        /// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
+        /// <exception cref="T:System.ArgumentNullException">
+        /// The <paramref name="info"/> parameter is null.
+        /// </exception>
+        /// <exception cref="T:System.Runtime.Serialization.SerializationException">
+        /// The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0).
+        /// </exception>
         protected ResourceConversionException(
           System.Runtime.Serialization.SerializationInfo info,
           System.Runtime.Serialization.StreamingContext context)

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/SerializationException.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/SerializationException.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/SerializationException.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -36,9 +36,32 @@
         //    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncscol/html/csharp07192001.asp
         //
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="SerializationException"/> class.
+        /// </summary>
         public SerializationException() { }
+        /// <summary>
+        /// Initializes a new instance of the <see cref="SerializationException"/> class.
+        /// </summary>
+        /// <param name="message">The message.</param>
         public SerializationException(string message) : base(message) { }
+        /// <summary>
+        /// Initializes a new instance of the <see cref="SerializationException"/> class.
+        /// </summary>
+        /// <param name="message">The message.</param>
+        /// <param name="inner">The inner.</param>
         public SerializationException(string message, Exception inner) : base(message, inner) { }
+        /// <summary>
+        /// Initializes a new instance of the <see cref="SerializationException"/> class.
+        /// </summary>
+        /// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
+        /// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
+        /// <exception cref="T:System.ArgumentNullException">
+        /// The <paramref name="info"/> parameter is null.
+        /// </exception>
+        /// <exception cref="T:System.Runtime.Serialization.SerializationException">
+        /// The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0).
+        /// </exception>
         protected SerializationException(
           System.Runtime.Serialization.SerializationInfo info,
           System.Runtime.Serialization.StreamingContext context)

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/UnsupportedResourceTypeException.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/UnsupportedResourceTypeException.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/UnsupportedResourceTypeException.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -36,14 +36,44 @@
         //    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncscol/html/csharp07192001.asp
         //
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="UnsupportedResourceTypeException"/> class.
+        /// </summary>
+        /// <param name="rt">The rt.</param>
         public UnsupportedResourceTypeException(ResourceTypes rt) { this.ResourceType = rt; }
+        /// <summary>
+        /// Initializes a new instance of the <see cref="UnsupportedResourceTypeException"/> class.
+        /// </summary>
+        /// <param name="rt">The rt.</param>
+        /// <param name="message">The message.</param>
         public UnsupportedResourceTypeException(ResourceTypes rt, string message) : base(message) { this.ResourceType = rt; }
+        /// <summary>
+        /// Initializes a new instance of the <see cref="UnsupportedResourceTypeException"/> class.
+        /// </summary>
+        /// <param name="rt">The rt.</param>
+        /// <param name="message">The message.</param>
+        /// <param name="inner">The inner.</param>
         public UnsupportedResourceTypeException(ResourceTypes rt, string message, Exception inner) : base(message, inner) { this.ResourceType = rt; }
+        /// <summary>
+        /// Initializes a new instance of the <see cref="UnsupportedResourceTypeException"/> class.
+        /// </summary>
+        /// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
+        /// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
+        /// <exception cref="T:System.ArgumentNullException">
+        /// The <paramref name="info"/> parameter is null.
+        /// </exception>
+        /// <exception cref="T:System.Runtime.Serialization.SerializationException">
+        /// The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0).
+        /// </exception>
         protected UnsupportedResourceTypeException(
           System.Runtime.Serialization.SerializationInfo info,
           System.Runtime.Serialization.StreamingContext context)
             : base(info, context) { }
 
+        /// <summary>
+        /// Gets or sets the type of the resource.
+        /// </summary>
+        /// <value>The type of the resource.</value>
         public ResourceTypes ResourceType { get; private set; }
     }
 }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/UnsupportedServiceTypeException.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/UnsupportedServiceTypeException.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Exceptions/UnsupportedServiceTypeException.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,6 +24,10 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Exceptions
 {
+    /// <summary>
+    /// Exception that is thrown when an attempt is made to get a service which is not
+    /// supported by the connection
+    /// </summary>
     [global::System.Serializable]
     public class UnsupportedServiceTypeException : MaestroException
     {
@@ -34,14 +38,44 @@
         //    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncscol/html/csharp07192001.asp
         //
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="UnsupportedServiceTypeException"/> class.
+        /// </summary>
+        /// <param name="st">The st.</param>
         public UnsupportedServiceTypeException(ServiceType st) { this.ServiceType = st; }
+        /// <summary>
+        /// Initializes a new instance of the <see cref="UnsupportedServiceTypeException"/> class.
+        /// </summary>
+        /// <param name="st">The st.</param>
+        /// <param name="message">The message.</param>
         public UnsupportedServiceTypeException(ServiceType st, string message) : base(message) { this.ServiceType = st; }
+        /// <summary>
+        /// Initializes a new instance of the <see cref="UnsupportedServiceTypeException"/> class.
+        /// </summary>
+        /// <param name="st">The st.</param>
+        /// <param name="message">The message.</param>
+        /// <param name="inner">The inner.</param>
         public UnsupportedServiceTypeException(ServiceType st, string message, Exception inner) : base(message, inner) { this.ServiceType = st; }
+        /// <summary>
+        /// Initializes a new instance of the <see cref="UnsupportedServiceTypeException"/> class.
+        /// </summary>
+        /// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
+        /// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
+        /// <exception cref="T:System.ArgumentNullException">
+        /// The <paramref name="info"/> parameter is null.
+        /// </exception>
+        /// <exception cref="T:System.Runtime.Serialization.SerializationException">
+        /// The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0).
+        /// </exception>
         protected UnsupportedServiceTypeException(
           System.Runtime.Serialization.SerializationInfo info,
           System.Runtime.Serialization.StreamingContext context)
             : base(info, context) { }
 
+        /// <summary>
+        /// Gets or sets the type of the service.
+        /// </summary>
+        /// <value>The type of the service.</value>
         public ServiceType ServiceType { get; private set; }
     }
 }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Feature/ClassDefinition.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Feature/ClassDefinition.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Feature/ClassDefinition.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,6 +24,9 @@
 
 namespace OSGeo.MapGuide.MaestroAPI
 {
+    /// <summary>
+    /// Represents a FDO class definition
+    /// </summary>
     public class ClassDefinition
     {
         private string m_name;
@@ -101,6 +104,12 @@
         /// </summary>
         public FeatureSetColumn[] Columns { get { return m_columns; } }
 
+        /// <summary>
+        /// Returns a <see cref="System.String"/> that represents this instance.
+        /// </summary>
+        /// <returns>
+        /// A <see cref="System.String"/> that represents this instance.
+        /// </returns>
         public override string ToString()
         {
             return this.QualifiedNameDecoded;

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Feature/FeatureSetReader.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Feature/FeatureSetReader.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Feature/FeatureSetReader.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -31,11 +31,23 @@
 	/// </summary>
 	public abstract class FeatureSetReader : IDisposable, IDataReader, IEnumerable<IDataRecord>
 	{
+        /// <summary>
+        /// The columns
+        /// </summary>
 		protected FeatureSetColumn[] m_columns;
+        /// <summary>
+        /// The current row
+        /// </summary>
 		protected FeatureSetRow m_row;
 
+        /// <summary>
+        /// A name-ordinal map
+        /// </summary>
         protected Dictionary<string, int> _nameOrdinalMap;
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="FeatureSetReader"/> class.
+        /// </summary>
         protected FeatureSetReader() { }
 
         /// <summary>
@@ -53,11 +65,21 @@
             }
         }
 
+        /// <summary>
+        /// Gets the columns.
+        /// </summary>
+        /// <value>The columns.</value>
 		public FeatureSetColumn[] Columns
 		{
 			get { return m_columns; }
 		}
 
+        /// <summary>
+        /// Advances the <see cref="T:System.Data.IDataReader"/> to the next record.
+        /// </summary>
+        /// <returns>
+        /// true if there are more rows; otherwise, false.
+        /// </returns>
         public bool Read()
         {
             m_row = null;
@@ -69,220 +91,591 @@
             return next;
         }
 
+        /// <summary>
+        /// Advances the internal reader
+        /// </summary>
+        /// <returns></returns>
         protected abstract bool ReadInternal();
 
+        /// <summary>
+        /// Processes the feature row.
+        /// </summary>
+        /// <returns></returns>
         protected abstract FeatureSetRow ProcessFeatureRow();
-        
+
+        /// <summary>
+        /// Gets the row.
+        /// </summary>
+        /// <value>The row.</value>
 		public FeatureSetRow Row
 		{
 			get { return m_row; }
 		}
 
+        /// <summary>
+        /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+        /// </summary>
         public virtual void Dispose() { }
 
+        /// <summary>
+        /// Closes the <see cref="T:System.Data.IDataReader"/> Object.
+        /// </summary>
         public void Close()
         {
             CloseInternal();
             this.IsClosed = true;
         }
 
+        /// <summary>
+        /// Closes the internal.
+        /// </summary>
         protected abstract void CloseInternal();
 
+        /// <summary>
+        /// Gets a value indicating the depth of nesting for the current row.
+        /// </summary>
+        /// <value></value>
+        /// <returns>
+        /// The level of nesting.
+        /// </returns>
         public abstract int Depth { get; }
 
+        /// <summary>
+        /// Returns a <see cref="T:System.Data.DataTable"/> that describes the column metadata of the <see cref="T:System.Data.IDataReader"/>.
+        /// </summary>
+        /// <returns>
+        /// A <see cref="T:System.Data.DataTable"/> that describes the column metadata.
+        /// </returns>
+        /// <exception cref="T:System.InvalidOperationException">
+        /// The <see cref="T:System.Data.IDataReader"/> is closed.
+        /// </exception>
         public abstract DataTable GetSchemaTable();
 
+        /// <summary>
+        /// Gets a value indicating whether the data reader is closed.
+        /// </summary>
+        /// <value></value>
+        /// <returns>true if the data reader is closed; otherwise, false.
+        /// </returns>
         public bool IsClosed { get; private set; }
 
+        /// <summary>
+        /// Advances the data reader to the next result, when reading the results of batch SQL statements.
+        /// </summary>
+        /// <returns>
+        /// true if there are more rows; otherwise, false.
+        /// </returns>
         public bool NextResult()
         {
             return Read();
         }
 
+        /// <summary>
+        /// Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.
+        /// </summary>
+        /// <value></value>
+        /// <returns>
+        /// The number of rows changed, inserted, or deleted; 0 if no rows were affected or the statement failed; and -1 for SELECT statements.
+        /// </returns>
         public abstract int RecordsAffected { get; }
 
+        /// <summary>
+        /// Gets the number of columns in the current row.
+        /// </summary>
+        /// <value></value>
+        /// <returns>
+        /// When not positioned in a valid recordset, 0; otherwise, the number of columns in the current record. The default is -1.
+        /// </returns>
         public int FieldCount
         {
             get { return m_columns.Length; }
         }
 
+        /// <summary>
+        /// Gets the value of the specified column as a Boolean.
+        /// </summary>
+        /// <param name="i">The zero-based column ordinal.</param>
+        /// <returns>The value of the column.</returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public virtual bool GetBoolean(int i)
         {
             return (bool)m_row[GetName(i)];
         }
 
+        /// <summary>
+        /// Gets the 8-bit unsigned integer value of the specified column.
+        /// </summary>
+        /// <param name="i">The zero-based column ordinal.</param>
+        /// <returns>
+        /// The 8-bit unsigned integer value of the specified column.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public virtual byte GetByte(int i)
         {
             return (byte)m_row[GetName(i)];
         }
 
+        /// <summary>
+        /// Reads a stream of bytes from the specified column offset into the buffer as an array, starting at the given buffer offset.
+        /// </summary>
+        /// <param name="i">The zero-based column ordinal.</param>
+        /// <param name="fieldOffset">The index within the field from which to start the read operation.</param>
+        /// <param name="buffer">The buffer into which to read the stream of bytes.</param>
+        /// <param name="bufferoffset">The index for <paramref name="buffer"/> to start the read operation.</param>
+        /// <param name="length">The number of bytes to read.</param>
+        /// <returns>The actual number of bytes read.</returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public virtual long GetBytes(int i, long fieldOffset, byte[] buffer, int bufferoffset, int length)
         {
             throw new NotImplementedException();
         }
 
+        /// <summary>
+        /// Gets the character value of the specified column.
+        /// </summary>
+        /// <param name="i">The zero-based column ordinal.</param>
+        /// <returns>
+        /// The character value of the specified column.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public virtual char GetChar(int i)
         {
             return (char)m_row[GetName(i)];
         }
 
+        /// <summary>
+        /// Reads a stream of characters from the specified column offset into the buffer as an array, starting at the given buffer offset.
+        /// </summary>
+        /// <param name="i">The zero-based column ordinal.</param>
+        /// <param name="fieldoffset">The index within the row from which to start the read operation.</param>
+        /// <param name="buffer">The buffer into which to read the stream of bytes.</param>
+        /// <param name="bufferoffset">The index for <paramref name="buffer"/> to start the read operation.</param>
+        /// <param name="length">The number of bytes to read.</param>
+        /// <returns>The actual number of characters read.</returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public virtual long GetChars(int i, long fieldoffset, char[] buffer, int bufferoffset, int length)
         {
             throw new NotImplementedException();
         }
 
+        /// <summary>
+        /// Returns an <see cref="T:System.Data.IDataReader"/> for the specified column ordinal.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// An <see cref="T:System.Data.IDataReader"/>.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public virtual IDataReader GetData(int i)
         {
             return (IDataReader)m_row[GetName(i)];
         }
 
+        /// <summary>
+        /// Gets the data type information for the specified field.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// The data type information for the specified field.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public virtual string GetDataTypeName(int i)
         {
             return m_columns[i].Type.Name;
         }
 
+        /// <summary>
+        /// Gets the date and time data value of the specified field.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// The date and time data value of the specified field.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public virtual DateTime GetDateTime(int i)
         {
             return (DateTime)m_row[GetName(i)];
         }
 
+        /// <summary>
+        /// Gets the fixed-position numeric value of the specified field.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// The fixed-position numeric value of the specified field.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public virtual decimal GetDecimal(int i)
         {
             return (decimal)m_row[GetName(i)];
         }
 
+        /// <summary>
+        /// Gets the double-precision floating point number of the specified field.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// The double-precision floating point number of the specified field.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public virtual double GetDouble(int i)
         {
             return (double)m_row[GetName(i)];
         }
 
+        /// <summary>
+        /// Gets the <see cref="T:System.Type"/> information corresponding to the type of <see cref="T:System.Object"/> that would be returned from <see cref="M:System.Data.IDataRecord.GetValue(System.Int32)"/>.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// The <see cref="T:System.Type"/> information corresponding to the type of <see cref="T:System.Object"/> that would be returned from <see cref="M:System.Data.IDataRecord.GetValue(System.Int32)"/>.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public virtual Type GetFieldType(int i)
         {
             return m_columns[i].Type;
         }
 
+        /// <summary>
+        /// Gets the single-precision floating point number of the specified field.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// The single-precision floating point number of the specified field.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public float GetFloat(int i)
         {
             return (float)m_row[GetName(i)];
         }
 
+        /// <summary>
+        /// Returns the GUID value of the specified field.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>The GUID value of the specified field.</returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public virtual Guid GetGuid(int i)
         {
             return (Guid)m_row[GetName(i)];
         }
 
+        /// <summary>
+        /// Gets the 16-bit signed integer value of the specified field.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// The 16-bit signed integer value of the specified field.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public short GetInt16(int i)
         {
             return (short)m_row[GetName(i)];
         }
 
+        /// <summary>
+        /// Gets the 32-bit signed integer value of the specified field.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// The 32-bit signed integer value of the specified field.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public int GetInt32(int i)
         {
             return (int)m_row[GetName(i)];
         }
 
+        /// <summary>
+        /// Gets the 64-bit signed integer value of the specified field.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// The 64-bit signed integer value of the specified field.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public long GetInt64(int i)
         {
             return (long)m_row[GetName(i)];
         }
 
+        /// <summary>
+        /// Gets the name for the field to find.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// The name of the field or the empty string (""), if there is no value to return.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public string GetName(int i)
         {
             return m_columns[i].Name;
         }
 
+        /// <summary>
+        /// Return the index of the named field.
+        /// </summary>
+        /// <param name="name">The name of the field to find.</param>
+        /// <returns>The index of the named field.</returns>
         public int GetOrdinal(string name)
         {
             return _nameOrdinalMap[name];
         }
 
+        /// <summary>
+        /// Gets the string value of the specified field.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>The string value of the specified field.</returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public string GetString(int i)
         {
             return (string)m_row[GetName(i)];
         }
 
+        /// <summary>
+        /// Return the value of the specified field.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// The <see cref="T:System.Object"/> which will contain the field value upon return.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public object GetValue(int i)
         {
             return m_row[GetName(i)];
         }
 
+        /// <summary>
+        /// Gets all the attribute fields in the collection for the current record.
+        /// </summary>
+        /// <param name="values">An array of <see cref="T:System.Object"/> to copy the attribute fields into.</param>
+        /// <returns>
+        /// The number of instances of <see cref="T:System.Object"/> in the array.
+        /// </returns>
         public int GetValues(object[] values)
         {
             throw new NotImplementedException();
         }
 
+        /// <summary>
+        /// Return whether the specified field is set to null.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// true if the specified field is set to null; otherwise, false.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public bool IsDBNull(int i)
         {
             return m_row.IsDBNull(i);
         }
 
+        /// <summary>
+        /// Gets the <see cref="System.Object"/> with the specified name.
+        /// </summary>
+        /// <value></value>
         public object this[string name]
         {
             get { return m_row[name]; }
         }
 
+        /// <summary>
+        /// Gets the <see cref="System.Object"/> with the specified index.
+        /// </summary>
+        /// <value></value>
         public object this[int i]
         {
             get { return m_row[GetName(i)]; }
         }
 
+        /// <summary>
+        /// 
+        /// </summary>
         internal class FeatureSetRowEnumerator : IEnumerator<IDataRecord>
         {
             private FeatureSetReader _parent;
 
+            /// <summary>
+            /// Initializes a new instance of the <see cref="FeatureSetRowEnumerator"/> class.
+            /// </summary>
+            /// <param name="parent">The parent.</param>
             public FeatureSetRowEnumerator(FeatureSetReader parent)
             {
                 _parent = parent;
             }
 
+            /// <summary>
+            /// Gets the element in the collection at the current position of the enumerator.
+            /// </summary>
+            /// <value></value>
+            /// <returns>
+            /// The element in the collection at the current position of the enumerator.
+            /// </returns>
             public IDataRecord Current
             {
                 get { return _parent.Row; }
             }
 
+            /// <summary>
+            /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+            /// </summary>
             public void Dispose() { }
 
+            /// <summary>
+            /// Gets the element in the collection at the current position of the enumerator.
+            /// </summary>
+            /// <value></value>
+            /// <returns>
+            /// The element in the collection at the current position of the enumerator.
+            /// </returns>
             object System.Collections.IEnumerator.Current
             {
                 get { return _parent.Row; }
             }
 
+            /// <summary>
+            /// Advances the enumerator to the next element of the collection.
+            /// </summary>
+            /// <returns>
+            /// true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection.
+            /// </returns>
+            /// <exception cref="T:System.InvalidOperationException">
+            /// The collection was modified after the enumerator was created.
+            /// </exception>
             public bool MoveNext()
             {
                 return _parent.Read();
             }
 
+            /// <summary>
+            /// Sets the enumerator to its initial position, which is before the first element in the collection.
+            /// </summary>
+            /// <exception cref="T:System.InvalidOperationException">
+            /// The collection was modified after the enumerator was created.
+            /// </exception>
             public void Reset()
             {
                 throw new NotSupportedException();
             }
         }
 
+        /// <summary>
+        /// Returns an enumerator that iterates through the collection.
+        /// </summary>
+        /// <returns>
+        /// A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
+        /// </returns>
         public IEnumerator<IDataRecord> GetEnumerator()
         {
             return new FeatureSetRowEnumerator(this);
         }
 
+        /// <summary>
+        /// Returns an enumerator that iterates through a collection.
+        /// </summary>
+        /// <returns>
+        /// An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
+        /// </returns>
         System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
         {
             return new FeatureSetRowEnumerator(this);
         }
     }
 
+    /// <summary>
+    /// Feature class property
+    /// </summary>
 	public abstract class FeatureSetColumn
 	{
+        /// <summary>
+        /// The metadata collection
+        /// </summary>
         protected System.Collections.Hashtable m_metadata = new System.Collections.Hashtable();
 
+        /// <summary>
+        /// The name
+        /// </summary>
 		protected string m_name;
+        /// <summary>
+        /// The data type
+        /// </summary>
         protected Type m_type;
+        /// <summary>
+        /// Indicates if it allows nulls
+        /// </summary>
         protected bool m_allowNull;
 
+        /// <summary>
+        /// Gets the name.
+        /// </summary>
+        /// <value>The name.</value>
 		public string Name { get { return m_name; } }
+        /// <summary>
+        /// Gets the type.
+        /// </summary>
+        /// <value>The type.</value>
 		public Type Type { get { return m_type; } }
+        /// <summary>
+        /// Gets or sets a value indicating whether this instance is identity.
+        /// </summary>
+        /// <value>
+        /// 	<c>true</c> if this instance is identity; otherwise, <c>false</c>.
+        /// </value>
         public bool IsIdentity { get; internal set; }
 
+        /// <summary>
+        /// Gets the metadata keys.
+        /// </summary>
+        /// <value>The metadata keys.</value>
         public System.Collections.ICollection MetadataKeys { get { return m_metadata.Keys; } }
 
+        /// <summary>
+        /// Gets a value indicating whether this instance is geometry.
+        /// </summary>
+        /// <value>
+        /// 	<c>true</c> if this instance is geometry; otherwise, <c>false</c>.
+        /// </value>
         public bool IsGeometry
         {
             get
@@ -291,33 +684,69 @@
             }
         }
 
+        /// <summary>
+        /// Gets the metadata.
+        /// </summary>
+        /// <param name="key">The key.</param>
+        /// <returns></returns>
         public object GetMetadata(string key)
         {
             return m_metadata[key];
         }
 
+        /// <summary>
+        /// Sets the metadata.
+        /// </summary>
+        /// <param name="key">The key.</param>
+        /// <param name="value">The value.</param>
         public void SetMetadata(string key, object value)
         {
             m_metadata[key] = value;
         }
 	}
 
+    /// <summary>
+    /// Geometry metadata
+    /// </summary>
     public class GeometryMetadata
     {
+        /// <summary>
+        /// 
+        /// </summary>
         public const string SPATIAL_CONTEXT = "SPATIAL_CONTEXT";
-
+        /// <summary>
+        /// 
+        /// </summary>
         public const string GEOM_TYPES = "GEOM_TYPES";
-
+        /// <summary>
+        /// 
+        /// </summary>
         public const string GEOM_TYPE_POINT = "point";
+        /// <summary>
+        /// 
+        /// </summary>
         public const string GEOM_TYPE_CURVE = "curve";
+        /// <summary>
+        /// 
+        /// </summary>
         public const string GEOM_TYPE_SURFACE = "surface";
+        /// <summary>
+        /// 
+        /// </summary>
         public const string GEOM_TYPE_SOLID = "solid";
     }
 
+    /// <summary>
+    /// A feature record
+    /// </summary>
 	public abstract class FeatureSetRow : IDataRecord
 	{
         private Topology.IO.WKTReader m_reader = null;
 
+        /// <summary>
+        /// Gets the reader.
+        /// </summary>
+        /// <value>The reader.</value>
         protected Topology.IO.WKTReader Reader
         {
             get
@@ -328,11 +757,27 @@
             }
         }
 
+        /// <summary>
+        /// parent reader
+        /// </summary>
         protected FeatureSetReader m_parent;
+        /// <summary>
+        /// array of items of current row
+        /// </summary>
         protected object[] m_items;
+        /// <summary>
+        /// array indicating the ordinals with null values
+        /// </summary>
         protected bool[] m_nulls;
+        /// <summary>
+        /// Indicates whether to lazy load geometry
+        /// </summary>
         protected bool[] m_lazyloadGeometry;
-        
+
+        /// <summary>
+        /// Initializes a new instance of the <see cref="FeatureSetRow"/> class.
+        /// </summary>
+        /// <param name="parent">The parent.</param>
 		protected FeatureSetRow(FeatureSetReader parent)
 		{
 			m_parent = parent;
@@ -346,12 +791,26 @@
 			}
 		}
 
+        /// <summary>
+        /// Determines whether the specified property name is null
+        /// </summary>
+        /// <param name="name">The name.</param>
+        /// <returns>
+        /// 	<c>true</c> if the specified property name is null; otherwise, <c>false</c>.
+        /// </returns>
         [Obsolete("This will be gone in a future release. Use IsDBNull(int i) instead. To get the index use GetOrdinal(string name)")]
 		public bool IsValueNull(string name)
 		{
 			return IsValueNull(GetOrdinal(name));
 		}
 
+        /// <summary>
+        /// Determines whether the specifeid index is null
+        /// </summary>
+        /// <param name="index">The index.</param>
+        /// <returns>
+        /// 	<c>true</c> if the specifeid index is null; otherwise, <c>false</c>.
+        /// </returns>
         [Obsolete("This will be gone in a future release. Use IsDBNull(int i) instead")]
 		public bool IsValueNull(int index)
 		{
@@ -361,6 +820,11 @@
 				return m_nulls[index];
 		}
 
+        /// <summary>
+        /// Return the index of the named field.
+        /// </summary>
+        /// <param name="name">The name of the field to find.</param>
+        /// <returns>The index of the named field.</returns>
 		public int GetOrdinal(string name)
 		{
             if (name == null)
@@ -386,6 +850,10 @@
 			throw new InvalidOperationException("Column name: " + name + ", was not found\nColumn names (" + m_parent.Columns.Length.ToString() + "): " + string.Join(", ", t));
 		}
 
+        /// <summary>
+        /// Gets the <see cref="System.Object"/> with the specified name.
+        /// </summary>
+        /// <value></value>
 		public object this[string name]
 		{
 			get 
@@ -394,111 +862,318 @@
 			}
 		}
 
+        /// <summary>
+        /// Gets the number of columns in the current row.
+        /// </summary>
+        /// <value></value>
+        /// <returns>
+        /// When not positioned in a valid recordset, 0; otherwise, the number of columns in the current record. The default is -1.
+        /// </returns>
         public int FieldCount
         {
             get { return m_parent.Columns.Length; }
         }
 
+        /// <summary>
+        /// Gets the value of the specified column as a Boolean.
+        /// </summary>
+        /// <param name="i">The zero-based column ordinal.</param>
+        /// <returns>The value of the column.</returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public bool GetBoolean(int i)
         {
             return (bool)m_items[i];
         }
 
+        /// <summary>
+        /// Gets the 8-bit unsigned integer value of the specified column.
+        /// </summary>
+        /// <param name="i">The zero-based column ordinal.</param>
+        /// <returns>
+        /// The 8-bit unsigned integer value of the specified column.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public byte GetByte(int i)
         {
             return (byte)m_items[i];
         }
 
+        /// <summary>
+        /// Reads a stream of bytes from the specified column offset into the buffer as an array, starting at the given buffer offset.
+        /// </summary>
+        /// <param name="i">The zero-based column ordinal.</param>
+        /// <param name="fieldOffset">The index within the field from which to start the read operation.</param>
+        /// <param name="buffer">The buffer into which to read the stream of bytes.</param>
+        /// <param name="bufferoffset">The index for <paramref name="buffer"/> to start the read operation.</param>
+        /// <param name="length">The number of bytes to read.</param>
+        /// <returns>The actual number of bytes read.</returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public long GetBytes(int i, long fieldOffset, byte[] buffer, int bufferoffset, int length)
         {
             throw new NotImplementedException();
         }
 
+        /// <summary>
+        /// Gets the character value of the specified column.
+        /// </summary>
+        /// <param name="i">The zero-based column ordinal.</param>
+        /// <returns>
+        /// The character value of the specified column.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public char GetChar(int i)
         {
             return (char)m_items[i];
         }
 
+        /// <summary>
+        /// Reads a stream of characters from the specified column offset into the buffer as an array, starting at the given buffer offset.
+        /// </summary>
+        /// <param name="i">The zero-based column ordinal.</param>
+        /// <param name="fieldoffset">The index within the row from which to start the read operation.</param>
+        /// <param name="buffer">The buffer into which to read the stream of bytes.</param>
+        /// <param name="bufferoffset">The index for <paramref name="buffer"/> to start the read operation.</param>
+        /// <param name="length">The number of bytes to read.</param>
+        /// <returns>The actual number of characters read.</returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public long GetChars(int i, long fieldoffset, char[] buffer, int bufferoffset, int length)
         {
             throw new NotImplementedException();
         }
 
+        /// <summary>
+        /// Returns an <see cref="T:System.Data.IDataReader"/> for the specified column ordinal.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// An <see cref="T:System.Data.IDataReader"/>.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public IDataReader GetData(int i)
         {
             return (IDataReader)m_items[i];
         }
 
+        /// <summary>
+        /// Gets the data type information for the specified field.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// The data type information for the specified field.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public string GetDataTypeName(int i)
         {
             return m_parent.Columns[i].Type.Name;
         }
 
+        /// <summary>
+        /// Gets the date and time data value of the specified field.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// The date and time data value of the specified field.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public DateTime GetDateTime(int i)
         {
             return (DateTime)m_items[i];
         }
 
+        /// <summary>
+        /// Gets the fixed-position numeric value of the specified field.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// The fixed-position numeric value of the specified field.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public decimal GetDecimal(int i)
         {
             return (decimal)m_items[i];
         }
 
+        /// <summary>
+        /// Gets the double-precision floating point number of the specified field.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// The double-precision floating point number of the specified field.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public double GetDouble(int i)
         {
             return (double)m_items[i];
         }
 
+        /// <summary>
+        /// Gets the <see cref="T:System.Type"/> information corresponding to the type of <see cref="T:System.Object"/> that would be returned from <see cref="M:System.Data.IDataRecord.GetValue(System.Int32)"/>.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// The <see cref="T:System.Type"/> information corresponding to the type of <see cref="T:System.Object"/> that would be returned from <see cref="M:System.Data.IDataRecord.GetValue(System.Int32)"/>.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public Type GetFieldType(int i)
         {
             return m_parent.Columns[i].Type;
         }
 
+        /// <summary>
+        /// Gets the single-precision floating point number of the specified field.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// The single-precision floating point number of the specified field.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public float GetFloat(int i)
         {
             return (float)m_items[i];
         }
 
+        /// <summary>
+        /// Returns the GUID value of the specified field.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>The GUID value of the specified field.</returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public Guid GetGuid(int i)
         {
             return (Guid)m_items[i];
         }
 
+        /// <summary>
+        /// Gets the 16-bit signed integer value of the specified field.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// The 16-bit signed integer value of the specified field.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public short GetInt16(int i)
         {
             return (short)m_items[i];
         }
 
+        /// <summary>
+        /// Gets the 32-bit signed integer value of the specified field.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// The 32-bit signed integer value of the specified field.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public int GetInt32(int i)
         {
             return (int)m_items[i];
         }
 
+        /// <summary>
+        /// Gets the 64-bit signed integer value of the specified field.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// The 64-bit signed integer value of the specified field.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public long GetInt64(int i)
         {
             return (long)m_items[i];
         }
 
+        /// <summary>
+        /// Gets the name for the field to find.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// The name of the field or the empty string (""), if there is no value to return.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public string GetName(int i)
         {
             return m_parent.GetName(i);
         }
 
+        /// <summary>
+        /// Gets the string value of the specified field.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>The string value of the specified field.</returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public string GetString(int i)
         {
             return (string)m_items[i];
         }
 
+        /// <summary>
+        /// Return the value of the specified field.
+        /// </summary>
+        /// <param name="i">The index of the field to find.</param>
+        /// <returns>
+        /// The <see cref="T:System.Object"/> which will contain the field value upon return.
+        /// </returns>
+        /// <exception cref="T:System.IndexOutOfRangeException">
+        /// The index passed was outside the range of 0 through <see cref="P:System.Data.IDataRecord.FieldCount"/>.
+        /// </exception>
         public object GetValue(int i)
         {
             return m_items[i];
         }
 
+        /// <summary>
+        /// Gets all the attribute fields in the collection for the current record.
+        /// </summary>
+        /// <param name="values">An array of <see cref="T:System.Object"/> to copy the attribute fields into.</param>
+        /// <returns>
+        /// The number of instances of <see cref="T:System.Object"/> in the array.
+        /// </returns>
         public int GetValues(object[] values)
         {
             throw new NotImplementedException();
         }
 
+        /// <summary>
+        /// Determines whether the value at the specified index is null
+        /// </summary>
+        /// <param name="index"></param>
+        /// <returns></returns>
         public bool IsDBNull(int index)
         {
             if (index >= m_nulls.Length)
@@ -507,6 +1182,10 @@
                 return m_nulls[index];
         }
 
+        /// <summary>
+        /// Gets the <see cref="System.Object"/> at the specified index
+        /// </summary>
+        /// <value></value>
         public object this[int i]
         {
             get 

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Feature/FeatureSourceDescription.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Feature/FeatureSourceDescription.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Feature/FeatureSourceDescription.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -39,6 +39,10 @@
 
         private string[] m_schemaNames;
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="FeatureSourceDescription"/> class.
+        /// </summary>
+        /// <param name="stream">The stream.</param>
 		public FeatureSourceDescription(System.IO.Stream stream)
 		{
 			XmlDocument doc = new XmlDocument();
@@ -106,11 +110,27 @@
             m_schemaNames = snames.ToArray();
 		}
 
+        /// <summary>
+        /// Gets the schema names.
+        /// </summary>
+        /// <value>The schema names.</value>
         public string[] SchemaNames { get { return m_schemaNames; } }
 
+        /// <summary>
+        /// Gets the classes.
+        /// </summary>
+        /// <value>The classes.</value>
 		public ClassDefinition[] Classes { get { return m_classes; } }
 
+        /// <summary>
+        /// Gets the <see cref="OSGeo.MapGuide.MaestroAPI.ClassDefinition"/> at the specified index.
+        /// </summary>
+        /// <value></value>
 		public ClassDefinition this[int index] { get { return m_classes[index]; } }
+        /// <summary>
+        /// Gets the <see cref="OSGeo.MapGuide.MaestroAPI.ClassDefinition"/> at the specified index.
+        /// </summary>
+        /// <value></value>
 		public ClassDefinition this[string index] 
 		{
 			get 

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/IConnectionCapabilities.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/IConnectionCapabilities.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/IConnectionCapabilities.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,6 +23,10 @@
 
 namespace OSGeo.MapGuide.MaestroAPI
 {
+    /// <summary>
+    /// Defines the capabilities of this connection. This is used to safely access supported
+    /// features of the connection.
+    /// </summary>
     public interface IConnectionCapabilities
     {
         /// <summary>

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/IO/FileBufferedStreamReader.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/IO/FileBufferedStreamReader.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/IO/FileBufferedStreamReader.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -39,6 +39,11 @@
 
 		private Thread m_reader;
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="FileBufferedStreamReader"/> class.
+        /// </summary>
+        /// <param name="source">The source.</param>
+        /// <param name="length">The length.</param>
 		public FileBufferedStreamReader(Stream source, int length)
 		{
 			m_source = source;
@@ -50,19 +55,59 @@
 			m_reader = new Thread(new ThreadStart(RunReader));
 		}
 
+        /// <summary>
+        /// When overridden in a derived class, gets a value indicating whether the current stream supports reading.
+        /// </summary>
+        /// <value></value>
+        /// <returns>true if the stream supports reading; otherwise, false.
+        /// </returns>
 		public override bool CanRead { get { return true; } }
+        /// <summary>
+        /// When overridden in a derived class, gets a value indicating whether the current stream supports seeking.
+        /// </summary>
+        /// <value></value>
+        /// <returns>true if the stream supports seeking; otherwise, false.
+        /// </returns>
 		public override bool CanSeek { get { return false; } }
+        /// <summary>
+        /// When overridden in a derived class, gets a value indicating whether the current stream supports writing.
+        /// </summary>
+        /// <value></value>
+        /// <returns>true if the stream supports writing; otherwise, false.
+        /// </returns>
 		public override bool CanWrite { get { return false; } }
 
+        /// <summary>
+        /// When overridden in a derived class, clears all buffers for this stream and causes any buffered data to be written to the underlying device.
+        /// </summary>
+        /// <exception cref="T:System.IO.IOException">
+        /// An I/O error occurs.
+        /// </exception>
 		public override void Flush()
 		{
 		}
 
+        /// <summary>
+        /// Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream.
+        /// </summary>
 		public override void Close()
 		{
 			base.Close ();
 		}
 
+        /// <summary>
+        /// When overridden in a derived class, gets the length in bytes of the stream.
+        /// </summary>
+        /// <value></value>
+        /// <returns>
+        /// A long value representing the length of the stream in bytes.
+        /// </returns>
+        /// <exception cref="T:System.NotSupportedException">
+        /// A class derived from Stream does not support seeking.
+        /// </exception>
+        /// <exception cref="T:System.ObjectDisposedException">
+        /// Methods were called after the stream was closed.
+        /// </exception>
 		public override long Length
 		{
 			get
@@ -71,6 +116,22 @@
 			}
 		}
 
+        /// <summary>
+        /// When overridden in a derived class, gets or sets the position within the current stream.
+        /// </summary>
+        /// <value></value>
+        /// <returns>
+        /// The current position within the stream.
+        /// </returns>
+        /// <exception cref="T:System.IO.IOException">
+        /// An I/O error occurs.
+        /// </exception>
+        /// <exception cref="T:System.NotSupportedException">
+        /// The stream does not support seeking.
+        /// </exception>
+        /// <exception cref="T:System.ObjectDisposedException">
+        /// Methods were called after the stream was closed.
+        /// </exception>
 		public override long Position
 		{
 			get
@@ -83,16 +144,73 @@
 			}
 		}
 
+        /// <summary>
+        /// When overridden in a derived class, sets the length of the current stream.
+        /// </summary>
+        /// <param name="value">The desired length of the current stream in bytes.</param>
+        /// <exception cref="T:System.IO.IOException">
+        /// An I/O error occurs.
+        /// </exception>
+        /// <exception cref="T:System.NotSupportedException">
+        /// The stream does not support both writing and seeking, such as if the stream is constructed from a pipe or console output.
+        /// </exception>
+        /// <exception cref="T:System.ObjectDisposedException">
+        /// Methods were called after the stream was closed.
+        /// </exception>
 		public override void SetLength(long value)
 		{
 			throw new Exception("Cannot set length of non-seekable stream");
 		}
 
+        /// <summary>
+        /// When overridden in a derived class, sets the position within the current stream.
+        /// </summary>
+        /// <param name="offset">A byte offset relative to the <paramref name="origin"/> parameter.</param>
+        /// <param name="origin">A value of type <see cref="T:System.IO.SeekOrigin"/> indicating the reference point used to obtain the new position.</param>
+        /// <returns>
+        /// The new position within the current stream.
+        /// </returns>
+        /// <exception cref="T:System.IO.IOException">
+        /// An I/O error occurs.
+        /// </exception>
+        /// <exception cref="T:System.NotSupportedException">
+        /// The stream does not support seeking, such as if the stream is constructed from a pipe or console output.
+        /// </exception>
+        /// <exception cref="T:System.ObjectDisposedException">
+        /// Methods were called after the stream was closed.
+        /// </exception>
 		public override long Seek(long offset, SeekOrigin origin)
 		{
 			throw new Exception("Cannot seek in non-seekable stream");
 		}
 
+        /// <summary>
+        /// When overridden in a derived class, reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.
+        /// </summary>
+        /// <param name="buffer">An array of bytes. When this method returns, the buffer contains the specified byte array with the values between <paramref name="offset"/> and (<paramref name="offset"/> + <paramref name="count"/> - 1) replaced by the bytes read from the current source.</param>
+        /// <param name="offset">The zero-based byte offset in <paramref name="buffer"/> at which to begin storing the data read from the current stream.</param>
+        /// <param name="count">The maximum number of bytes to be read from the current stream.</param>
+        /// <returns>
+        /// The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached.
+        /// </returns>
+        /// <exception cref="T:System.ArgumentException">
+        /// The sum of <paramref name="offset"/> and <paramref name="count"/> is larger than the buffer length.
+        /// </exception>
+        /// <exception cref="T:System.ArgumentNullException">
+        /// 	<paramref name="buffer"/> is null.
+        /// </exception>
+        /// <exception cref="T:System.ArgumentOutOfRangeException">
+        /// 	<paramref name="offset"/> or <paramref name="count"/> is negative.
+        /// </exception>
+        /// <exception cref="T:System.IO.IOException">
+        /// An I/O error occurs.
+        /// </exception>
+        /// <exception cref="T:System.NotSupportedException">
+        /// The stream does not support reading.
+        /// </exception>
+        /// <exception cref="T:System.ObjectDisposedException">
+        /// Methods were called after the stream was closed.
+        /// </exception>
 		public override int Read(byte[] buffer, int offset, int count)
 		{
 			do
@@ -109,6 +227,30 @@
 			} while(true);
 		}
 
+        /// <summary>
+        /// When overridden in a derived class, writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.
+        /// </summary>
+        /// <param name="buffer">An array of bytes. This method copies <paramref name="count"/> bytes from <paramref name="buffer"/> to the current stream.</param>
+        /// <param name="offset">The zero-based byte offset in <paramref name="buffer"/> at which to begin copying bytes to the current stream.</param>
+        /// <param name="count">The number of bytes to be written to the current stream.</param>
+        /// <exception cref="T:System.ArgumentException">
+        /// The sum of <paramref name="offset"/> and <paramref name="count"/> is greater than the buffer length.
+        /// </exception>
+        /// <exception cref="T:System.ArgumentNullException">
+        /// 	<paramref name="buffer"/> is null.
+        /// </exception>
+        /// <exception cref="T:System.ArgumentOutOfRangeException">
+        /// 	<paramref name="offset"/> or <paramref name="count"/> is negative.
+        /// </exception>
+        /// <exception cref="T:System.IO.IOException">
+        /// An I/O error occurs.
+        /// </exception>
+        /// <exception cref="T:System.NotSupportedException">
+        /// The stream does not support writing.
+        /// </exception>
+        /// <exception cref="T:System.ObjectDisposedException">
+        /// Methods were called after the stream was closed.
+        /// </exception>
 		public override void Write(byte[] buffer, int offset, int count)
 		{
 			throw new Exception("Stream is not writeable");
@@ -143,6 +285,9 @@
 
 		#region IDisposable Members
 
+        /// <summary>
+        /// Releases all resources used by the <see cref="T:System.IO.Stream"/>.
+        /// </summary>
 		public void Dispose()
 		{
 			if (m_reader != null)

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/IServerConnection.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/IServerConnection.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/IServerConnection.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -27,6 +27,9 @@
 
 namespace OSGeo.MapGuide.MaestroAPI
 {
+    /// <summary>
+    /// MapGuide Platform connection interface
+    /// </summary>
     public interface IServerConnection
     {
         /// <summary>
@@ -92,8 +95,6 @@
         /// <returns></returns>
         IService GetService(int serviceType);
 
-        System.IO.Stream GetMapDWF(string resourceID);
-
         /// <summary>
         /// Gets the max tested version
         /// </summary>
@@ -164,26 +165,56 @@
         event RequestEventHandler RequestDispatched;
     }
 
+    /// <summary>
+    /// 
+    /// </summary>
     public delegate void RequestEventHandler(object sender, RequestEventArgs e);
 
+    /// <summary>
+    /// event object containing dispatched request infromation
+    /// </summary>
     public class RequestEventArgs : EventArgs
     {
+        /// <summary>
+        /// Gets or sets the data.
+        /// </summary>
+        /// <value>The data.</value>
         public string Data { get; private set; }
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="RequestEventArgs"/> class.
+        /// </summary>
+        /// <param name="data">The data.</param>
         public RequestEventArgs(string data)
         {
             this.Data = data;
         }
     }
 
+    /// <summary>
+    /// Extension method class
+    /// </summary>
     public static class ConnectionExtensionMethods
     {
+        /// <summary>
+        /// Generates the session resource id.
+        /// </summary>
+        /// <param name="conn">The conn.</param>
+        /// <param name="resType">Type of the res.</param>
+        /// <returns></returns>
         public static string GenerateSessionResourceId(this IServerConnection conn, ResourceTypes resType)
         {
             Guid id = Guid.NewGuid();
             return conn.GenerateSessionResourceId(id.ToString(), resType);
         }
 
+        /// <summary>
+        /// Generates the session resource id.
+        /// </summary>
+        /// <param name="conn">The conn.</param>
+        /// <param name="name">The name.</param>
+        /// <param name="resType">Type of the res.</param>
+        /// <returns></returns>
         public static string GenerateSessionResourceId(this IServerConnection conn, string name, ResourceTypes resType)
         {
             return "Session:" + conn.SessionID + "//" + name + "." + resType.ToString();

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/LengthyOperationCallbackArgs.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/LengthyOperationCallbackArgs.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/LengthyOperationCallbackArgs.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -21,16 +21,45 @@
 
 namespace OSGeo.MapGuide.MaestroAPI
 {
+    /// <summary>
+    /// A delegate used to represent relay progress for lengthy operations
+    /// </summary>
+    /// <param name="sender"></param>
+    /// <param name="items"></param>
 	public delegate void LengthyOperationCallBack(object sender, LengthyOperationCallbackArgs items);
 
+    /// <summary>
+    /// A delegate used to represent relay progress for lengthy operations
+    /// </summary>
+    /// <param name="sender"></param>
+    /// <param name="e"></param>
 	public delegate void LengthyOperationProgressCallBack(object sender, LengthyOperationProgressArgs e);
 
+    /// <summary>
+    /// Represents progress of a lengthy operation
+    /// </summary>
 	public class LengthyOperationProgressArgs
 	{
+        /// <summary>
+        /// The message
+        /// </summary>
 		public string StatusMessage;
+
+        /// <summary>
+        /// The progress percentage
+        /// </summary>
 		public int Progress;
+
+        /// <summary>
+        /// Indicates whether a cancel request has been made
+        /// </summary>
 		public bool Cancel;
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="LengthyOperationProgressArgs"/> class.
+        /// </summary>
+        /// <param name="message">The message.</param>
+        /// <param name="progress">The progress.</param>
 		public LengthyOperationProgressArgs(string message, int progress)
 		{
 			StatusMessage = message;
@@ -41,7 +70,7 @@
 
 
 	/// <summary>
-	/// Summary description for LengthyOperationCallbackArgs.
+    /// Represents progress of a lengthy operation
 	/// </summary>
 	public class LengthyOperationCallbackArgs
 	{
@@ -49,7 +78,11 @@
 		private int m_index;
 		private bool m_cancel;
 
-        
+
+        /// <summary>
+        /// Initializes a new instance of the <see cref="LengthyOperationCallbackArgs"/> class.
+        /// </summary>
+        /// <param name="items">The items.</param>
 		public LengthyOperationCallbackArgs(LengthyOperationItem[] items)
 		{
 			m_items = items;
@@ -57,44 +90,82 @@
 			m_cancel = false;
 		}
 
+        /// <summary>
+        /// Gets or sets whether this lengthy operation should be cancelled
+        /// </summary>
 		public bool Cancel
 		{
 			get { return m_cancel; }
 			set { m_cancel = value; }
 		}
-
+        
+        /// <summary>
+        /// Gets or sets the index
+        /// </summary>
 		public int Index
 		{
 			get { return m_index; }
 			set { m_index = value; }
 		}
 
+        /// <summary>
+        /// Gets the operation items
+        /// </summary>
 		public LengthyOperationItem[] Items
 		{
 			get { return m_items; }
 		}
-		
 
+
+        /// <summary>
+        /// 
+        /// </summary>
 		public class LengthyOperationItem
 		{
+            /// <summary>
+            /// Defines the possible operation status values
+            /// </summary>
 			public enum OperationStatus
 			{
+                /// <summary>
+                /// None
+                /// </summary>
 				None,
+                /// <summary>
+                /// Pending
+                /// </summary>
 				Pending,
+                /// <summary>
+                /// Success
+                /// </summary>
 				Success,
+                /// <summary>
+                /// Failure
+                /// </summary>
 				Failure
 			}
 
 			private string m_itempath;
 			private OperationStatus m_status;
 
+            /// <summary>
+            /// Gets the item path
+            /// </summary>
 			public string Itempath { get { return m_itempath; } }
+
+            /// <summary>
+            /// Gets or sets the operation status
+            /// </summary>
 			public OperationStatus Status 
 			{ 
 				get { return m_status; } 
 				set { m_status = value; }
 			}
 
+            /// <summary>
+            /// Initializes a new instance of the <see cref="LengthyOperationItem"/> class.
+            /// </summary>
+            /// <param name="path">The path.</param>
 			public LengthyOperationItem(string path)
 			{
 				m_itempath = path;

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/MaestroApiProviderAttribute.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/MaestroApiProviderAttribute.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/MaestroApiProviderAttribute.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -29,6 +29,13 @@
     [AttributeUsage(AttributeTargets.Assembly)]
     public class MaestroApiProviderAttribute : Attribute
     {
+        /// <summary>
+        /// Initializes a new instance of the <see cref="MaestroApiProviderAttribute"/> class.
+        /// </summary>
+        /// <param name="name">The name.</param>
+        /// <param name="description">The description.</param>
+        /// <param name="implType">Type of the impl.</param>
+        /// <param name="multiPlatform">if set to <c>true</c> [multi platform].</param>
         public MaestroApiProviderAttribute(string name, string description, Type implType, bool multiPlatform)
         {
             this.Name = name;

Deleted: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/MaestroResourceObjectProviderAttribute.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/MaestroResourceObjectProviderAttribute.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/MaestroResourceObjectProviderAttribute.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,36 +0,0 @@
-#region Disclaimer / License
-// Copyright (C) 2010, Jackie Ng
-// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
-// 
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License, or (at your option) any later version.
-// 
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-// Lesser General Public License for more details.
-// 
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-// 
-#endregion
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace OSGeo.MapGuide.MaestroAPI
-{
-    [AttributeUsage(AttributeTargets.Class)]
-    public class MaestroResourceObjectProviderAttribute : Attribute
-    {
-        public MaestroResourceObjectProviderAttribute(Type type)
-        {
-            this.ResourceType = type;
-        }
-
-        public Type ResourceType { get; set; }
-    }
-}

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Mapping/MapSelectionBase.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Mapping/MapSelectionBase.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Mapping/MapSelectionBase.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,29 +24,55 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Mapping
 {
+    /// <summary>
+    /// 
+    /// </summary>
     public class MapSelectionBase
     {
+        /// <summary>
+        /// Initializes a new instance of the <see cref="MapSelectionBase"/> class.
+        /// </summary>
         public MapSelectionBase() { }
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="MapSelectionBase"/> class.
+        /// </summary>
+        /// <param name="xml">The XML.</param>
         public MapSelectionBase(string xml)
         { }
 
+        /// <summary>
+        /// Serializes the specified serializer.
+        /// </summary>
+        /// <param name="serializer">The serializer.</param>
         public void Serialize(MgBinarySerializer serializer)
         {
             throw new NotImplementedException();
         }
 
+        /// <summary>
+        /// Gets or sets the selection XML.
+        /// </summary>
+        /// <value>The selection XML.</value>
         public string SelectionXml
         {
             get;
             private set;
         }
 
+        /// <summary>
+        /// Toes the XML.
+        /// </summary>
+        /// <returns></returns>
         public string ToXml()
         {
             throw new NotImplementedException();
         }
 
+        /// <summary>
+        /// Deserializes the specified deserializer.
+        /// </summary>
+        /// <param name="deserializer">The deserializer.</param>
         public void Deserialize(MgBinaryDeserializer deserializer)
         {
             throw new NotImplementedException();

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeLayerBase.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeLayerBase.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeLayerBase.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,6 +23,9 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Mapping
 {
+    /// <summary>
+    /// 
+    /// </summary>
     public abstract class RuntimeLayerBase
     {
     }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMapBase.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMapBase.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMapBase.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -25,7 +25,10 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Mapping
 {
-    public class RuntimeMapBase : MapDefinition
+    /// <summary>
+    /// 
+    /// </summary>
+    public class RuntimeMapBase : IMapDefinition
     {
         /// <summary>
         /// A dummy resource, used for the runtime map
@@ -38,38 +41,417 @@
         public const string RUNTIMEMAP_SELECTION_XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Selection></Selection>";
 
 
-        public RuntimeMapBase(MapDefinition mapDef) { } 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="RuntimeMapBase"/> class.
+        /// </summary>
+        /// <param name="mapDef">The map def.</param>
+        public RuntimeMapBase(IMapDefinition mapDef) { }
 
+        /// <summary>
+        /// Deserializes the specified mg binary deserializer.
+        /// </summary>
+        /// <param name="mgBinaryDeserializer">The mg binary deserializer.</param>
+        /// <returns></returns>
         public static RuntimeMapBase Deserialize(MgBinaryDeserializer mgBinaryDeserializer)
         {
             throw new NotImplementedException();
         }
 
+        /// <summary>
+        /// Gets or sets a value indicating whether this instance has loaded selection XML.
+        /// </summary>
+        /// <value>
+        /// 	<c>true</c> if this instance has loaded selection XML; otherwise, <c>false</c>.
+        /// </value>
         public bool HasLoadedSelectionXml
         {
             get;
             private set;
         }
 
+        /// <summary>
+        /// Gets or sets the selection.
+        /// </summary>
+        /// <value>The selection.</value>
         public MapSelectionBase Selection
         {
             get;
             private set;
         }
 
+        /// <summary>
+        /// Deserializes the layer data.
+        /// </summary>
+        /// <param name="mgBinaryDeserializer">The mg binary deserializer.</param>
         public void DeserializeLayerData(MgBinaryDeserializer mgBinaryDeserializer)
         {
             throw new NotImplementedException();
         }
 
+        /// <summary>
+        /// Serializes the specified mg binary serializer.
+        /// </summary>
+        /// <param name="mgBinarySerializer">The mg binary serializer.</param>
         public void Serialize(MgBinarySerializer mgBinarySerializer)
         {
             throw new NotImplementedException();
         }
 
+        /// <summary>
+        /// Serializes the layer data.
+        /// </summary>
+        /// <param name="mgBinarySerializer">The mg binary serializer.</param>
         public void SerializeLayerData(MgBinarySerializer mgBinarySerializer)
         {
             throw new NotImplementedException();
         }
+
+        /// <summary>
+        /// Gets or sets the name.
+        /// </summary>
+        /// <value>The name.</value>
+        public string Name
+        {
+            get
+            {
+                throw new NotImplementedException();
+            }
+            set
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets the coordinate system.
+        /// </summary>
+        /// <value>The coordinate system.</value>
+        public string CoordinateSystem
+        {
+            get
+            {
+                throw new NotImplementedException();
+            }
+            set
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets the extents.
+        /// </summary>
+        /// <value>The extents.</value>
+        public OSGeo.MapGuide.ObjectModels.Common.IEnvelope Extents
+        {
+            get
+            {
+                throw new NotImplementedException();
+            }
+            set
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        /// <summary>
+        /// Sets the extents.
+        /// </summary>
+        /// <param name="minx">The minx.</param>
+        /// <param name="miny">The miny.</param>
+        /// <param name="maxx">The maxx.</param>
+        /// <param name="maxy">The maxy.</param>
+        public void SetExtents(double minx, double miny, double maxx, double maxy)
+        {
+            throw new NotImplementedException();
+        }
+
+        /// <summary>
+        /// Gets or sets the color of the background.
+        /// </summary>
+        /// <value>The color of the background.</value>
+        public System.Drawing.Color BackgroundColor
+        {
+            get
+            {
+                throw new NotImplementedException();
+            }
+            set
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets the metadata.
+        /// </summary>
+        /// <value>The metadata.</value>
+        public string Metadata
+        {
+            get
+            {
+                throw new NotImplementedException();
+            }
+            set
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        /// <summary>
+        /// Returns the base map section of this map definition. Ensure <see cref="InitBaseMap"/>
+        /// is called first before accessing this property
+        /// </summary>
+        /// <value></value>
+        public IBaseMapDefinition BaseMap
+        {
+            get { throw new NotImplementedException(); }
+        }
+
+        /// <summary>
+        /// Initializes the base map section of this map definition. Subsequent calls
+        /// do nothing, unless you have cleared the section via <see cref="RemoveBaseMap"/>
+        /// </summary>
+        public void InitBaseMap()
+        {
+            throw new NotImplementedException();
+        }
+
+        /// <summary>
+        /// Clears the base map section of this map definition. If you want to rebuild
+        /// this section, ensure <see cref="InitBaseMap"/> is called
+        /// </summary>
+        public void RemoveBaseMap()
+        {
+            throw new NotImplementedException();
+        }
+
+        /// <summary>
+        /// Gets the map layer.
+        /// </summary>
+        /// <value>The map layer.</value>
+        public IEnumerable<IMapLayer> MapLayer
+        {
+            get { throw new NotImplementedException(); }
+        }
+
+        /// <summary>
+        /// Adds a layer to this map. If this is the first layer to be added, the coordinate system
+        /// of this map and its extents will be set to the coordinate system and extents of this layer
+        /// if this has not been set already.
+        /// </summary>
+        /// <param name="groupName"></param>
+        /// <param name="layerName"></param>
+        /// <param name="resourceId"></param>
+        /// <returns></returns>
+        public IMapLayer AddLayer(string groupName, string layerName, string resourceId)
+        {
+            throw new NotImplementedException();
+        }
+
+        /// <summary>
+        /// Adds a layer to this map. If this is the first layer to be added, the coordinate system
+        /// of this map and its extents will be set to the coordinate system and extents of this layer
+        /// if this has not been set already.
+        /// </summary>
+        /// <param name="layerToInsertAbove">The layer to insert above in the draw order</param>
+        /// <param name="groupName"></param>
+        /// <param name="layerName"></param>
+        /// <param name="resourceId"></param>
+        /// <returns></returns>
+        public IMapLayer AddLayer(IMapLayer layerToInsertAbove, string groupName, string layerName, string resourceId)
+        {
+            throw new NotImplementedException();
+        }
+
+        /// <summary>
+        /// Removes the layer.
+        /// </summary>
+        /// <param name="layer">The layer.</param>
+        public void RemoveLayer(IMapLayer layer)
+        {
+            throw new NotImplementedException();
+        }
+
+        /// <summary>
+        /// Gets the index.
+        /// </summary>
+        /// <param name="layer">The layer.</param>
+        /// <returns></returns>
+        public int GetIndex(IMapLayer layer)
+        {
+            throw new NotImplementedException();
+        }
+
+        /// <summary>
+        /// Moves up.
+        /// </summary>
+        /// <param name="layer">The layer.</param>
+        /// <returns></returns>
+        public int MoveUp(IMapLayer layer)
+        {
+            throw new NotImplementedException();
+        }
+
+        /// <summary>
+        /// Moves down.
+        /// </summary>
+        /// <param name="layer">The layer.</param>
+        /// <returns></returns>
+        public int MoveDown(IMapLayer layer)
+        {
+            throw new NotImplementedException();
+        }
+
+        /// <summary>
+        /// Gets the map layer group.
+        /// </summary>
+        /// <value>The map layer group.</value>
+        public IEnumerable<IMapLayerGroup> MapLayerGroup
+        {
+            get { throw new NotImplementedException(); }
+        }
+
+        /// <summary>
+        /// Adds the group.
+        /// </summary>
+        /// <param name="groupName">Name of the group.</param>
+        /// <returns></returns>
+        public IMapLayerGroup AddGroup(string groupName)
+        {
+            throw new NotImplementedException();
+        }
+
+        /// <summary>
+        /// Removes the group.
+        /// </summary>
+        /// <param name="group">The group.</param>
+        public void RemoveGroup(IMapLayerGroup group)
+        {
+            throw new NotImplementedException();
+        }
+
+        /// <summary>
+        /// Gets the index.
+        /// </summary>
+        /// <param name="group">The group.</param>
+        /// <returns></returns>
+        public int GetIndex(IMapLayerGroup group)
+        {
+            throw new NotImplementedException();
+        }
+
+        /// <summary>
+        /// Sets the top draw order.
+        /// </summary>
+        /// <param name="layer">The layer.</param>
+        public void SetTopDrawOrder(IMapLayer layer)
+        {
+            throw new NotImplementedException();
+        }
+
+        /// <summary>
+        /// Sets the bottom draw order.
+        /// </summary>
+        /// <param name="layer">The layer.</param>
+        public void SetBottomDrawOrder(IMapLayer layer)
+        {
+            throw new NotImplementedException();
+        }
+
+        /// <summary>
+        /// Gets or sets the current connection.
+        /// </summary>
+        /// <value>The current connection.</value>
+        public IServerConnection CurrentConnection
+        {
+            get
+            {
+                throw new NotImplementedException();
+            }
+            set
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        /// <summary>
+        /// Gets the validating schema.
+        /// </summary>
+        /// <value>The validating schema.</value>
+        public string ValidatingSchema
+        {
+            get { throw new NotImplementedException(); }
+        }
+
+        /// <summary>
+        /// Gets or sets the resource ID.
+        /// </summary>
+        /// <value>The resource ID.</value>
+        public string ResourceID
+        {
+            get
+            {
+                throw new NotImplementedException();
+            }
+            set
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        /// <summary>
+        /// Gets the type of the resource.
+        /// </summary>
+        /// <value>The type of the resource.</value>
+        public ResourceTypes ResourceType
+        {
+            get { throw new NotImplementedException(); }
+        }
+
+        /// <summary>
+        /// Serializes this instance.
+        /// </summary>
+        /// <returns></returns>
+        public string Serialize()
+        {
+            throw new NotImplementedException();
+        }
+
+        /// <summary>
+        /// Indicates whether this resource is strongly typed. If false it means the implementer
+        /// is a <see cref="UntypedResource"/> object. This usually means that the matching serializer
+        /// could not be found because the resource version is unrecognised.
+        /// </summary>
+        /// <value></value>
+        public bool IsStronglyTyped
+        {
+            get { throw new NotImplementedException(); }
+        }
+
+        /// <summary>
+        /// Gets the resource version.
+        /// </summary>
+        /// <value>The resource version.</value>
+        public Version ResourceVersion
+        {
+            get { throw new NotImplementedException(); }
+        }
+
+        /// <summary>
+        /// Creates a new object that is a copy of the current instance.
+        /// </summary>
+        /// <returns>
+        /// A new object that is a copy of this instance.
+        /// </returns>
+        public object Clone()
+        {
+            throw new NotImplementedException();
+        }
+
+        /// <summary>
+        /// Occurs when a property value changes.
+        /// </summary>
+        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
     }
 }

Added: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/MgServerConnectionBase.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/MgServerConnectionBase.cs	                        (rev 0)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/MgServerConnectionBase.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -0,0 +1,371 @@
+#region Disclaimer / License
+// Copyright (C) 2009, Kenneth Skovhede
+// http://www.hexad.dk, opensource at hexad.dk
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// 
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+// 
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+// 
+#endregion
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Xml;
+using System.Text;
+using System.IO;
+
+using ObjCommon = OSGeo.MapGuide.ObjectModels.Common;
+using AppDef = OSGeo.MapGuide.ObjectModels.ApplicationDefinition;
+using OSGeo.MapGuide.ObjectModels.Capabilities;
+using OSGeo.MapGuide.MaestroAPI.Resource;
+using OSGeo.MapGuide.MaestroAPI.Commands;
+using OSGeo.MapGuide.ObjectModels.LoadProcedure;
+
+namespace OSGeo.MapGuide.MaestroAPI
+{
+    /// <summary>
+    /// Base class of all MapGuide connection classes. Covers functionality encompassed by
+    /// the MapGuide Geospatial Platform API and the MapGuide-specific services (Site, Rendering,
+    /// Mapping, Tile, Drawing)
+    /// </summary>
+    public abstract class MgServerConnectionBase : PlatformConnectionBase
+    {
+        /// <summary>
+        /// A flag that indicates if a session will be automatically restarted
+        /// </summary>
+        protected bool m_autoRestartSession = false;
+
+        /// <summary>
+        /// The username used to open this connection, if any
+        /// </summary>
+        protected string m_username;
+
+        /// <summary>
+        /// The password used to open this connection, if any
+        /// </summary>
+        protected string m_password;
+
+        /// <summary>
+        /// cached user list
+        /// </summary>
+        protected ObjCommon.UserList m_cachedUserList = null;
+
+        /// <summary>
+        /// cached group list
+        /// </summary>
+        protected ObjCommon.GroupList m_cachedGroupList = null;
+
+        /// <summary>
+        /// Initializes a new instance of the <see cref="MgServerConnectionBase"/> class.
+        /// </summary>
+        protected MgServerConnectionBase()
+            : base()
+        {
+            m_username = null;
+            m_password = null;
+        }
+
+        #region Session Management
+
+        /// <summary>
+        /// Gets or sets a value indicating if the session should automatically be restarted if it expires
+        /// </summary>
+        virtual public bool AutoRestartSession
+        {
+            get { return m_autoRestartSession; }
+            set { m_autoRestartSession = value; }
+        }
+
+        /// <summary>
+        /// Determines if an exception is a "Session Expired" exception.
+        /// </summary>
+        /// <param name="ex">The exception to evaluate</param>
+        /// <returns>True if the exception is a session expired exception</returns>
+        abstract public bool IsSessionExpiredException(Exception ex);
+
+        /// <summary>
+        /// Restarts the server session, and creates a new session ID
+        /// </summary>
+        public void RestartSession()
+        {
+            RestartSession(true);
+        }
+
+        /// <summary>
+        /// Restarts the server session, and creates a new session ID
+        /// </summary>
+        /// <param name="throwException">If set to true, the call throws an exception if the call failed</param>
+        /// <returns>True if the creation succeed, false otherwise</returns>
+        abstract public bool RestartSession(bool throwException);
+
+        #endregion
+
+        #region Site
+
+        /// <summary>
+        /// Gets the site info.
+        /// </summary>
+        /// <returns></returns>
+        public abstract ObjCommon.SiteInformation GetSiteInfo();
+
+        /// <summary>
+        /// Gets a list of all users on the server
+        /// </summary>
+        /// <returns>The list of users</returns>
+        public virtual ObjCommon.UserList EnumerateUsers()
+        {
+            return this.EnumerateUsers(null);
+        }
+
+        /// <summary>
+        /// Gets a list of users in a group
+        /// </summary>
+        /// <param name="group">The group to retrieve the users from</param>
+        /// <returns>The list of users</returns>
+        abstract public ObjCommon.UserList EnumerateUsers(string group);
+
+        /// <summary>
+        /// Gets a list of all groups on the server
+        /// </summary>
+        /// <returns>The list of groups</returns>
+        abstract public ObjCommon.GroupList EnumerateGroups();
+
+        #endregion
+
+        #region Runtime Map
+
+
+        /// <summary>
+        /// Selects features from a runtime map, returning a selection Xml.
+        /// </summary>
+        /// <param name="runtimemap">The map to query. NOT a resourceID, only the map name!</param>
+        /// <param name="wkt">The WKT of the geometry to query with (always uses intersection)</param>
+        /// <param name="persist">True if the selection should be saved in the runtime map, false otherwise.</param>
+        /// <returns>The selection Xml, or an empty string if there were no data.</returns>
+        public string QueryMapFeatures(string runtimemap, string wkt, bool persist)
+        {
+            return QueryMapFeatures(runtimemap, wkt, persist, QueryMapFeaturesLayerAttributes.Default, false);
+        }
+
+        /// <summary>
+        /// Selects features from a runtime map, returning a selection Xml.
+        /// </summary>
+        /// <param name="runtimemap">The map to query. NOT a resourceID, only the map name!</param>
+        /// <param name="wkt">The WKT of the geometry to query with (always uses intersection)</param>
+        /// <param name="persist">True if the selection should be saved in the runtime map, false otherwise.</param>
+        /// <param name="attributes">The type of layer to include in the query</param>
+        /// <param name="raw">True if the result should contain the tooltip and link info</param>
+        /// <returns>The selection Xml, or an empty string if there were no data.</returns>
+        abstract public string QueryMapFeatures(string runtimemap, string wkt, bool persist, QueryMapFeaturesLayerAttributes attributes, bool raw);
+
+        /// <summary>
+        /// Sets the selection of a map
+        /// </summary>
+        /// <param name="runtimeMap">The resourceID of the runtime map</param>
+        /// <param name="selectionXml">The selection xml</param>
+        abstract public void SetSelectionXml(string runtimeMap, string selectionXml);
+
+        /// <summary>
+        /// Gets the selection from a map
+        /// </summary>
+        /// <param name="runtimeMap">The resourceID of the runtime map</param>
+        /// <returns>The selection xml</returns>
+        abstract public string GetSelectionXml(string runtimeMap);
+
+        /// <summary>
+        /// Creates a runtime map on the server. 
+        /// The map name will be the name of the resource, without path information.
+        /// This is equivalent to the way the AJAX viewer creates the runtime map.
+        /// </summary>
+        /// <param name="resourceID">The mapDefinition resource id</param>
+        public virtual void CreateRuntimeMap(string resourceID)
+        {
+            ResourceIdentifier.Validate(resourceID, ResourceTypes.MapDefinition);
+            ResourceIdentifier ri = new ResourceIdentifier(resourceID);
+            ri.Path = ri.Name;
+            ri.Extension = EnumHelper.ResourceName(ResourceTypes.RuntimeMap);
+            CreateRuntimeMap(ri, resourceID);
+        }
+
+        /// <summary>
+        /// Creates a runtime map on the server
+        /// </summary>
+        /// <param name="resourceID">The target resource id for the runtime map</param>
+        /// <param name="mapdefinition">The mapdefinition to base the map on</param>
+        abstract public void CreateRuntimeMap(string resourceID, string mapdefinition);
+
+        #endregion
+
+        #region Rendering
+
+        /// <summary>
+        /// Renders a minature bitmap of the layers style
+        /// </summary>
+        /// <param name="scale">The scale for the bitmap to match</param>
+        /// <param name="layerdefinition">The layer the image should represent</param>
+        /// <param name="themeIndex">If the layer is themed, this gives the theme index, otherwise set to 0</param>
+        /// <param name="type">The geometry type, 1 for point, 2 for line, 3 for area, 4 for composite</param>
+        /// <returns>The minature bitmap</returns>
+        abstract public System.Drawing.Image GetLegendImage(double scale, string layerdefinition, int themeIndex, int type);
+
+
+
+        /// <summary>
+        /// Renders the runtime map.
+        /// </summary>
+        /// <param name="resourceId">The resource id.</param>
+        /// <param name="x">The x.</param>
+        /// <param name="y">The y.</param>
+        /// <param name="scale">The scale.</param>
+        /// <param name="width">The width.</param>
+        /// <param name="height">The height.</param>
+        /// <param name="dpi">The dpi.</param>
+        /// <returns></returns>
+        public virtual System.IO.Stream RenderRuntimeMap(string resourceId, double x, double y, double scale, int width, int height, int dpi)
+        {
+            return this.RenderRuntimeMap(resourceId, x, y, scale, width, height, dpi, "PNG", false);
+        }
+
+        /// <summary>
+        /// Renders the runtime map.
+        /// </summary>
+        /// <param name="resourceId">The resource id.</param>
+        /// <param name="x1">The x1.</param>
+        /// <param name="y1">The y1.</param>
+        /// <param name="x2">The x2.</param>
+        /// <param name="y2">The y2.</param>
+        /// <param name="width">The width.</param>
+        /// <param name="height">The height.</param>
+        /// <param name="dpi">The dpi.</param>
+        /// <returns></returns>
+        public virtual System.IO.Stream RenderRuntimeMap(string resourceId, double x1, double y1, double x2, double y2, int width, int height, int dpi)
+        {
+            return this.RenderRuntimeMap(resourceId, x1, y1, x2, y2, width, height, dpi, "PNG", false);
+        }
+
+        /// <summary>
+        /// Renders the runtime map.
+        /// </summary>
+        /// <param name="resourceId">The resource id.</param>
+        /// <param name="x">The x.</param>
+        /// <param name="y">The y.</param>
+        /// <param name="scale">The scale.</param>
+        /// <param name="width">The width.</param>
+        /// <param name="height">The height.</param>
+        /// <param name="dpi">The dpi.</param>
+        /// <param name="format">The format.</param>
+        /// <returns></returns>
+        public virtual System.IO.Stream RenderRuntimeMap(string resourceId, double x, double y, double scale, int width, int height, int dpi, string format)
+        {
+            return this.RenderRuntimeMap(resourceId, x, y, scale, width, height, dpi, format, false);
+        }
+
+        /// <summary>
+        /// Renders the runtime map.
+        /// </summary>
+        /// <param name="resourceId">The resource id.</param>
+        /// <param name="x1">The x1.</param>
+        /// <param name="y1">The y1.</param>
+        /// <param name="x2">The x2.</param>
+        /// <param name="y2">The y2.</param>
+        /// <param name="width">The width.</param>
+        /// <param name="height">The height.</param>
+        /// <param name="dpi">The dpi.</param>
+        /// <param name="format">The format.</param>
+        /// <returns></returns>
+        public virtual System.IO.Stream RenderRuntimeMap(string resourceId, double x1, double y1, double x2, double y2, int width, int height, int dpi, string format)
+        {
+            return this.RenderRuntimeMap(resourceId, x1, y1, x2, y2, width, height, dpi, format, false);
+        }
+
+        /// <summary>
+        /// Renders the runtime map.
+        /// </summary>
+        /// <param name="resourceId">The resource id.</param>
+        /// <param name="x">The x.</param>
+        /// <param name="y">The y.</param>
+        /// <param name="scale">The scale.</param>
+        /// <param name="width">The width.</param>
+        /// <param name="height">The height.</param>
+        /// <param name="dpi">The dpi.</param>
+        /// <param name="format">The format.</param>
+        /// <param name="clip">if set to <c>true</c> [clip].</param>
+        /// <returns></returns>
+        public abstract System.IO.Stream RenderRuntimeMap(string resourceId, double x, double y, double scale, int width, int height, int dpi, string format, bool clip);
+        /// <summary>
+        /// Renders the runtime map.
+        /// </summary>
+        /// <param name="resourceId">The resource id.</param>
+        /// <param name="x1">The x1.</param>
+        /// <param name="y1">The y1.</param>
+        /// <param name="x2">The x2.</param>
+        /// <param name="y2">The y2.</param>
+        /// <param name="width">The width.</param>
+        /// <param name="height">The height.</param>
+        /// <param name="dpi">The dpi.</param>
+        /// <param name="format">The format.</param>
+        /// <param name="clip">if set to <c>true</c> [clip].</param>
+        /// <returns></returns>
+        public abstract System.IO.Stream RenderRuntimeMap(string resourceId, double x1, double y1, double x2, double y2, int width, int height, int dpi, string format, bool clip);
+
+        #endregion
+
+        #region Tile
+
+        /// <summary>
+        /// Gets the tile.
+        /// </summary>
+        /// <param name="mapdefinition">The mapdefinition.</param>
+        /// <param name="baselayergroup">The baselayergroup.</param>
+        /// <param name="col">The col.</param>
+        /// <param name="row">The row.</param>
+        /// <param name="scaleindex">The scaleindex.</param>
+        /// <param name="format">The format.</param>
+        /// <returns></returns>
+        public abstract System.IO.Stream GetTile(string mapdefinition, string baselayergroup, int col, int row, int scaleindex, string format);
+
+        #endregion
+
+        #region Load Procedure
+
+        /// <summary>
+        /// Executes the load procedure.
+        /// </summary>
+        /// <param name="loadProc">The load proc.</param>
+        /// <param name="callback">The callback.</param>
+        /// <param name="ignoreUnsupported">if set to <c>true</c> [ignore unsupported].</param>
+        /// <returns></returns>
+        public virtual string[] ExecuteLoadProcedure(ILoadProcedure loadProc, OSGeo.MapGuide.MaestroAPI.LengthyOperationProgressCallBack callback, bool ignoreUnsupported)
+        {
+            var cmd = new ExecuteLoadProcedure(GetInterface());
+            cmd.IgnoreUnsupportedFeatures = ignoreUnsupported;
+            return cmd.Execute(loadProc, callback);
+        }
+
+        /// <summary>
+        /// Executes the load procedure.
+        /// </summary>
+        /// <param name="resourceID">The resource ID.</param>
+        /// <param name="callback">The callback.</param>
+        /// <param name="ignoreUnsupported">if set to <c>true</c> [ignore unsupported].</param>
+        /// <returns></returns>
+        public virtual string[] ExecuteLoadProcedure(string resourceID, OSGeo.MapGuide.MaestroAPI.LengthyOperationProgressCallBack callback, bool ignoreUnsupported)
+        {
+            var cmd = new ExecuteLoadProcedure(GetInterface());
+            cmd.IgnoreUnsupportedFeatures = ignoreUnsupported;
+            return cmd.Execute(resourceID, callback);
+        }
+
+        #endregion
+    }
+}

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/OSGeo.MapGuide.MaestroAPI.csproj
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/OSGeo.MapGuide.MaestroAPI.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/OSGeo.MapGuide.MaestroAPI.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -17,7 +17,7 @@
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
+    <OutputPath>..\SDK\bin\Debug\</OutputPath>
     <DefineConstants>TRACE;DEBUG;LDF_100, WL_100, MDF_100, SYM_100, LP_100</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -25,10 +25,11 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
+    <OutputPath>..\SDK\bin\Release\</OutputPath>
     <DefineConstants>TRACE;LDF_100, WL_100, MDF_100, SYM_100, LP_100</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
+    <DocumentationFile>..\SDK\bin\Release\OSGeo.MapGuide.MaestroAPI.XML</DocumentationFile>
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="System" />
@@ -186,11 +187,11 @@
     <Compile Include="Feature\FeatureSourceDescription.cs" />
     <Compile Include="IO\FileBufferedStreamReader.cs" />
     <Compile Include="CoordinateSystem\ICoordinateSystemCatalog.cs" />
-    <Compile Include="MaestroResourceObjectProviderAttribute.cs" />
     <Compile Include="Mapping\MapSelectionBase.cs" />
     <Compile Include="Mapping\RuntimeLayerBase.cs" />
     <Compile Include="Mapping\RuntimeMapBase.cs" />
     <Compile Include="CrossConnection\ResourceMigrator.cs" />
+    <Compile Include="MgServerConnectionBase.cs" />
     <Compile Include="ObjectModels\ApplicationDefinition.cs" />
     <Compile Include="ObjectModels\DrawingSource.cs" />
     <Compile Include="ObjectModels\DrawingSourceInterfaces.cs" />
@@ -199,12 +200,14 @@
     <Compile Include="ObjectModels\IDynamicInvokable.cs" />
     <Compile Include="ObjectModels\Envelope.cs" />
     <Compile Include="ObjectModels\FeatureSource.cs" />
+    <Compile Include="ObjectModels\IRepositoryItem.cs" />
     <Compile Include="ObjectModels\LayerFactory.cs" />
     <Compile Include="ObjectModels\LoadProcedureInterfaces.cs" />
     <Compile Include="ObjectModels\LoadProcFactory.cs" />
     <Compile Include="ObjectModels\MapDefinitionInterfaces.cs" />
     <Compile Include="ObjectModels\PrintLayoutInterfaces.cs" />
     <Compile Include="ObjectModels\SymbolInterfaces.cs" />
+    <Compile Include="ObjectModels\SymbolLibraryInterfaces.cs" />
     <Compile Include="ObjectModels\VectorLayerDefinitionImpl.cs" />
     <Compile Include="ObjectModels\LayerInterfaceExtensions.cs" />
     <Compile Include="ObjectModels\LayerInterfaces.cs" />
@@ -269,7 +272,7 @@
     <Compile Include="Services\ITileService.cs" />
     <Compile Include="LengthyOperationCallbackArgs.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="ServerConnectionBase.cs" />
+    <Compile Include="PlatformConnectionBase.cs" />
     <Compile Include="Services\ServiceType.cs" />
     <Compile Include="SiteVersion.cs" />
     <Compile Include="Utf8XmlWriter.cs" />

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/ApplicationDefinition.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/ApplicationDefinition.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/ApplicationDefinition.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -25,6 +25,8 @@
 using OSGeo.MapGuide.MaestroAPI;
 using System.Xml;
 
+#pragma warning disable 1591, 0114, 0108
+
 namespace OSGeo.MapGuide.ObjectModels.ApplicationDefinition
 {
     partial class CustomContentType

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/DrawingSource.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/DrawingSource.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/DrawingSource.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,10 +23,12 @@
 using OSGeo.MapGuide.MaestroAPI.Resource;
 using System.Xml.Serialization;
 using OSGeo.MapGuide.MaestroAPI;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
 using OSGeo.MapGuide.ObjectModels.Common;
+using OSGeo.MapGuide.ObjectModels.DrawingSource;
 
-namespace OSGeo.MapGuide.ObjectModels.DrawingSource
+#pragma warning disable 1591, 0114, 0108
+
+namespace OSGeo.MapGuide.ObjectModels.DrawingSource_1_0_0
 {
     partial class DrawingSource : IDrawingSource
     {

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/DrawingSourceInterfaces.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/DrawingSourceInterfaces.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/DrawingSourceInterfaces.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,29 +23,75 @@
 using OSGeo.MapGuide.MaestroAPI.Resource;
 using OSGeo.MapGuide.ObjectModels.Common;
 
-namespace OSGeo.MapGuide.MaestroAPI.ObjectModels
+namespace OSGeo.MapGuide.ObjectModels.DrawingSource
 {
+    /// <summary>
+    /// A DWF-based Drawing Source
+    /// </summary>
     public interface IDrawingSource : IResource
     {
+        /// <summary>
+        /// Gets or sets the name of the source (dwf file).
+        /// </summary>
+        /// <value>The name of the source.</value>
         string SourceName { get; set; }
 
+        /// <summary>
+        /// Gets or sets the coordinate space.
+        /// </summary>
+        /// <value>The coordinate space.</value>
         string CoordinateSpace { get; set; }
 
+        /// <summary>
+        /// Removes all sheets.
+        /// </summary>
         void RemoveAllSheets();
 
+        /// <summary>
+        /// Gets the sheets.
+        /// </summary>
+        /// <value>The sheets.</value>
         IEnumerable<IDrawingSourceSheet> Sheet { get; }
 
+        /// <summary>
+        /// Adds the sheet.
+        /// </summary>
+        /// <param name="sheet">The sheet.</param>
         void AddSheet(IDrawingSourceSheet sheet);
 
+        /// <summary>
+        /// Removes the sheet.
+        /// </summary>
+        /// <param name="sheet">The sheet.</param>
         void RemoveSheet(IDrawingSourceSheet sheet);
 
+        /// <summary>
+        /// Creates the sheet.
+        /// </summary>
+        /// <param name="name">The name.</param>
+        /// <param name="minx">The minx.</param>
+        /// <param name="miny">The miny.</param>
+        /// <param name="maxx">The maxx.</param>
+        /// <param name="maxy">The maxy.</param>
+        /// <returns></returns>
         IDrawingSourceSheet CreateSheet(string name, double minx, double miny, double maxx, double maxy);
     }
 
+    /// <summary>
+    /// Represents a sheet (DWF section)
+    /// </summary>
     public interface IDrawingSourceSheet
     {
+        /// <summary>
+        /// Gets or sets the name.
+        /// </summary>
+        /// <value>The name.</value>
         string Name { get; set; }
 
+        /// <summary>
+        /// Gets or sets the extent.
+        /// </summary>
+        /// <value>The extent.</value>
         IEnvelope Extent { get; set; }
     }
 }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/Envelope.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/Envelope.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/Envelope.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -21,24 +21,52 @@
 using System.Collections.Generic;
 using System.Text;
 using System.ComponentModel;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
 using OSGeo.MapGuide.MaestroAPI;
 
+#pragma warning disable 1591, 0114, 0108
+
 namespace OSGeo.MapGuide.ObjectModels.Common
 {
+    /// <summary>
+    /// Represents a rectangular bounding box
+    /// </summary>
     public interface IEnvelope : INotifyPropertyChanged
     {
+        /// <summary>
+        /// Gets or sets the min X.
+        /// </summary>
+        /// <value>The min X.</value>
         double MinX { get; set; }
 
+        /// <summary>
+        /// Gets or sets the min Y.
+        /// </summary>
+        /// <value>The min Y.</value>
         double MinY { get; set; }
 
+        /// <summary>
+        /// Gets or sets the max X.
+        /// </summary>
+        /// <value>The max X.</value>
         double MaxX { get; set; }
 
+        /// <summary>
+        /// Gets or sets the max Y.
+        /// </summary>
+        /// <value>The max Y.</value>
         double MaxY { get; set; }
     }
 
+    /// <summary>
+    /// Extension method class
+    /// </summary>
     public static class EnvelopeExtensions
     {
+        /// <summary>
+        /// Clones this instance
+        /// </summary>
+        /// <param name="env">The envelope.</param>
+        /// <returns></returns>
         public static IEnvelope Clone(this IEnvelope env)
         {
             Check.NotNull(env, "env");
@@ -69,9 +97,12 @@
         /// <summary>
         /// Indicates whether the specified coordinates are within this instance
         /// </summary>
-        /// <param name="x"></param>
-        /// <param name="y"></param>
-        /// <returns></returns>
+        /// <param name="env">The env.</param>
+        /// <param name="x">The x.</param>
+        /// <param name="y">The y.</param>
+        /// <returns>
+        /// 	<c>true</c> if [contains] [the specified env]; otherwise, <c>false</c>.
+        /// </returns>
         public static bool Contains(this IEnvelope env, double x, double y)
         {
             Check.NotNull(env, "env");
@@ -85,7 +116,8 @@
         /// <summary>
         /// Indicates whether the specified envelope intersects this instance
         /// </summary>
-        /// <param name="other"></param>
+        /// <param name="env">The env.</param>
+        /// <param name="other">The other.</param>
         /// <returns></returns>
         public static bool Intersects(this IEnvelope env, IEnvelope other)
         {

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSource.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSource.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSource.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,8 +24,11 @@
 using System.Xml.Serialization;
 using OSGeo.MapGuide.MaestroAPI;
 using OSGeo.MapGuide.ObjectModels.Common;
+using OSGeo.MapGuide.ObjectModels.FeatureSource;
 
-namespace OSGeo.MapGuide.ObjectModels.FeatureSource
+#pragma warning disable 1591, 0114, 0108
+
+namespace OSGeo.MapGuide.ObjectModels.FeatureSource_1_0_0
 {
     partial class FeatureSourceType : IFeatureSource
     {

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSourceInterfaces.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSourceInterfaces.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSourceInterfaces.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -28,14 +28,35 @@
 
 namespace OSGeo.MapGuide.ObjectModels.FeatureSource
 {
+    /// <summary>
+    /// Represents an FDO feature source
+    /// </summary>
     public interface IFeatureSource : IResource
     {
+        /// <summary>
+        /// Gets or sets the FDO provider.
+        /// </summary>
+        /// <value>The FDO provider.</value>
         string Provider { get; set; }
 
+        /// <summary>
+        /// Gets the connection property.
+        /// </summary>
+        /// <param name="name">The name.</param>
+        /// <returns></returns>
         string GetConnectionProperty(string name);
 
+        /// <summary>
+        /// Sets the connection property.
+        /// </summary>
+        /// <param name="name">The name.</param>
+        /// <param name="value">The value.</param>
         void SetConnectionProperty(string name, string value);
 
+        /// <summary>
+        /// Gets or sets the connection string.
+        /// </summary>
+        /// <value>The connection string.</value>
         string ConnectionString { get; set; }
 
         /// <summary>
@@ -60,58 +81,158 @@
         /// <exception cref="InvalidOperationException">If <see cref="UsesAliasedDataFiles"/> is false</exception>
         string GetAliasedFileName();
 
+        /// <summary>
+        /// Gets a value indicating whether [uses embedded data files].
+        /// </summary>
+        /// <value>
+        /// 	<c>true</c> if [uses embedded data files]; otherwise, <c>false</c>.
+        /// </value>
         bool UsesEmbeddedDataFiles{ get; }
 
+        /// <summary>
+        /// Gets a value indicating whether [uses aliased data files].
+        /// </summary>
+        /// <value>
+        /// 	<c>true</c> if [uses aliased data files]; otherwise, <c>false</c>.
+        /// </value>
         bool UsesAliasedDataFiles { get; }
 
+        /// <summary>
+        /// Gets the supplemental spatial context info (coordinate system overrides).
+        /// </summary>
+        /// <value>The supplemental spatial context info.</value>
         IEnumerable<ISpatialContextInfo> SupplementalSpatialContextInfo { get; }
 
+        /// <summary>
+        /// Adds the spatial context override.
+        /// </summary>
+        /// <param name="sc">The sc.</param>
         void AddSpatialContextOverride(ISpatialContextInfo sc);
 
+        /// <summary>
+        /// Removes the spatial context override.
+        /// </summary>
+        /// <param name="sc">The sc.</param>
         void RemoveSpatialContextOverride(ISpatialContextInfo sc);
 
+        /// <summary>
+        /// Gets the extensions for this feature source.
+        /// </summary>
+        /// <value>The extensions.</value>
         IEnumerable<IFeatureSourceExtension> Extension { get; }
 
+        /// <summary>
+        /// Adds the extension.
+        /// </summary>
+        /// <param name="ext">The ext.</param>
         void AddExtension(IFeatureSourceExtension ext);
 
+        /// <summary>
+        /// Removes the extension.
+        /// </summary>
+        /// <param name="ext">The ext.</param>
         void RemoveExtension(IFeatureSourceExtension ext);
 
+        /// <summary>
+        /// Gets or sets the name of the configuration document.
+        /// </summary>
+        /// <value>The name of the configuration document.</value>
         string ConfigurationDocument { get; set; }
     }
 
+    /// <summary>
+    /// Represents a spatial context override
+    /// </summary>
     public interface ISpatialContextInfo
     {
+        /// <summary>
+        /// Gets or sets the name.
+        /// </summary>
+        /// <value>The name.</value>
         string Name { get; set; }
 
+        /// <summary>
+        /// Gets or sets the coordinate system.
+        /// </summary>
+        /// <value>The coordinate system.</value>
         string CoordinateSystem { get; set; }
     }
 
+    /// <summary>
+    /// Represents an extended feature class
+    /// </summary>
     public interface IFeatureSourceExtension : INotifyPropertyChanged
     {
+        /// <summary>
+        /// Gets or sets the name.
+        /// </summary>
+        /// <value>The name.</value>
         string Name { get; set; }
 
+        /// <summary>
+        /// Gets or sets the feature class to extend
+        /// </summary>
+        /// <value>The feature class.</value>
         string FeatureClass { get; set; }
 
+        /// <summary>
+        /// Gets the calculated properties.
+        /// </summary>
+        /// <value>The calculated properties.</value>
         IEnumerable<ICalculatedProperty> CalculatedProperty { get; }
 
+        /// <summary>
+        /// Adds the calculated property.
+        /// </summary>
+        /// <param name="prop">The prop.</param>
         void AddCalculatedProperty(ICalculatedProperty prop);
 
+        /// <summary>
+        /// Removes the calculated property.
+        /// </summary>
+        /// <param name="prop">The prop.</param>
         void RemoveCalculatedProperty(ICalculatedProperty prop);
 
+        /// <summary>
+        /// Gets the attribute joins
+        /// </summary>
+        /// <value>The attribute joins.</value>
         IEnumerable<IAttributeRelation> AttributeRelate { get; }
 
+        /// <summary>
+        /// Adds the relation.
+        /// </summary>
+        /// <param name="relate">The relate.</param>
         void AddRelation(IAttributeRelation relate);
 
+        /// <summary>
+        /// Removes the relation.
+        /// </summary>
+        /// <param name="relate">The relate.</param>
         void RemoveRelation(IAttributeRelation relate);
     }
 
+    /// <summary>
+    /// Represents a FDO calculated property
+    /// </summary>
     public interface ICalculatedProperty : INotifyPropertyChanged
     {
+        /// <summary>
+        /// Gets or sets the name.
+        /// </summary>
+        /// <value>The name.</value>
         string Name { get; set; }
 
+        /// <summary>
+        /// Gets or sets the FDO expression.
+        /// </summary>
+        /// <value>The FDO expression.</value>
         string Expression { get; set; }
     }
 
+    /// <summary>
+    /// Defines the type of joins
+    /// </summary>
     [System.SerializableAttribute()]
     public enum RelateTypeEnum
     {
@@ -129,6 +250,9 @@
         Association,
     }
 
+    /// <summary>
+    /// Represents an attribute join
+    /// </summary>
     public interface IAttributeRelation : INotifyPropertyChanged
     {
         /// <summary>
@@ -161,26 +285,66 @@
         /// </summary>
         string AttributeNameDelimiter { get; set; }
 
+        /// <summary>
+        /// Gets the property pairs involved in this join
+        /// </summary>
+        /// <value>The property pairs.</value>
         IEnumerable<IRelateProperty> RelateProperty { get; }
 
+        /// <summary>
+        /// Creates the property join.
+        /// </summary>
+        /// <param name="primaryProperty">The primary property.</param>
+        /// <param name="secondaryProperty">The secondary property.</param>
+        /// <returns></returns>
         IRelateProperty CreatePropertyJoin(string primaryProperty, string secondaryProperty);
 
+        /// <summary>
+        /// Adds the relate property.
+        /// </summary>
+        /// <param name="prop">The prop.</param>
         void AddRelateProperty(IRelateProperty prop);
 
+        /// <summary>
+        /// Removes the relate property.
+        /// </summary>
+        /// <param name="prop">The prop.</param>
         void RemoveRelateProperty(IRelateProperty prop);
 
+        /// <summary>
+        /// Removes all relate properties.
+        /// </summary>
         void RemoveAllRelateProperties();
     }
 
+    /// <summary>
+    /// Represents a property pair in an attribute join
+    /// </summary>
     public interface IRelateProperty
     {
+        /// <summary>
+        /// Gets or sets the feature class property.
+        /// </summary>
+        /// <value>The feature class property.</value>
         string FeatureClassProperty { get; set; }
 
+        /// <summary>
+        /// Gets or sets the attribute class property.
+        /// </summary>
+        /// <value>The attribute class property.</value>
         string AttributeClassProperty { get; set; }
     }
 
+    /// <summary>
+    /// Extension method class
+    /// </summary>
     public static class FeatureSourceExtensions
     {
+        /// <summary>
+        /// Gets the configuration document content
+        /// </summary>
+        /// <param name="fs"></param>
+        /// <returns></returns>
         public static string GetConfigurationContent(this IFeatureSource fs)
         {
             Check.NotNull(fs, "fs");
@@ -198,6 +362,11 @@
             return string.Empty;
         }
 
+        /// <summary>
+        /// Sets the configuration document content
+        /// </summary>
+        /// <param name="fs"></param>
+        /// <param name="xmlContent"></param>
         public static void SetConfigurationContent(this IFeatureSource fs, string xmlContent)
         {
             Check.NotNull(fs, "fs");
@@ -233,7 +402,8 @@
         /// <summary>
         /// Convenience methods to get the identity properties of a given feature class (name)
         /// </summary>
-        /// <param name="className"></param>
+        /// <param name="fs">The fs.</param>
+        /// <param name="className">Name of the class.</param>
         /// <returns></returns>
         public static string[] GetIdentityProperties(this IFeatureSource fs, string className)
         {
@@ -260,8 +430,9 @@
         /// <summary>
         /// Convenience method to get the spatial extents of a given feature class
         /// </summary>
-        /// <param name="className"></param>
-        /// <param name="geomProperty"></param>
+        /// <param name="fs">The fs.</param>
+        /// <param name="className">Name of the class.</param>
+        /// <param name="geomProperty">The geom property.</param>
         /// <returns></returns>
         public static IEnvelope GetSpatialExtent(this IFeatureSource fs, string className, string geomProperty)
         {
@@ -272,12 +443,13 @@
         /// <summary>
         /// Convenience method to get the feature class definition
         /// </summary>
-        /// <param name="qualifiedName"></param>
+        /// <param name="fs">The fs.</param>
+        /// <param name="qualifiedName">Name of the qualified.</param>
         /// <returns></returns>
         public static ClassDefinition GetClass(this IFeatureSource fs, string qualifiedName)
         {
             Check.NotNull(fs, "fs");
-            return fs.CurrentConnection.FeatureService.GetFeatureSourceSchema(fs.ResourceID, qualifiedName);
+            return fs.CurrentConnection.FeatureService.GetClassDefinition(fs.ResourceID, qualifiedName);
         }
 
         /// <summary>
@@ -289,7 +461,7 @@
         public static void AddSpatialContextOverride(this IFeatureSource fs, string name, string coordSys)
         {
             Check.NotNull(fs, "fs");
-            fs.AddSpatialContextOverride(new SpatialContextType() { Name = name, CoordinateSystem = coordSys });
+            fs.AddSpatialContextOverride(new OSGeo.MapGuide.ObjectModels.FeatureSource_1_0_0.SpatialContextType() { Name = name, CoordinateSystem = coordSys });
         }
 
         /// <summary>
@@ -303,10 +475,16 @@
             return fs.CurrentConnection.FeatureService.TestConnection(fs.ResourceID);
         }
 
+        /// <summary>
+        /// Adds the specified property pair to this join
+        /// </summary>
+        /// <param name="rel"></param>
+        /// <param name="primary"></param>
+        /// <param name="secondary"></param>
         public static void AddRelateProperty(this IAttributeRelation rel, string primary, string secondary)
         {
             Check.NotNull(rel, "rel");
-            rel.AddRelateProperty(new RelatePropertyType() { FeatureClassProperty = primary, AttributeClassProperty = secondary });
+            rel.AddRelateProperty(new OSGeo.MapGuide.ObjectModels.FeatureSource_1_0_0.RelatePropertyType() { FeatureClassProperty = primary, AttributeClassProperty = secondary });
         }
     }
 }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/GridLayerDefinitionImpl.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/GridLayerDefinitionImpl.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/GridLayerDefinitionImpl.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -22,6 +22,8 @@
 using System.Text;
 using System.Xml.Serialization;
 
+#pragma warning disable 1591, 0114, 0108
+
 #if LDF_110
 namespace OSGeo.MapGuide.ObjectModels.LayerDefinition_1_1_0
 #elif LDF_120

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/IDynamicInvokable.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/IDynamicInvokable.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/IDynamicInvokable.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,7 +23,7 @@
 using System.Reflection;
 using System.ComponentModel;
 
-namespace OSGeo.MapGuide.MaestroAPI.ObjectModels
+namespace OSGeo.MapGuide.ObjectModels
 {
     /// <summary>
     /// Interface allowing for dynamic invocation of public properties and methods.
@@ -33,6 +33,9 @@
         //Nothing here. All done through extension methods baby!
     }
 
+    /// <summary>
+    /// Extension method class
+    /// </summary>
     public static class DynamicInvokableExtensions
     {
         /// <summary>

Added: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/IRepositoryItem.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/IRepositoryItem.cs	                        (rev 0)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/IRepositoryItem.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -0,0 +1,84 @@
+#region Disclaimer / License
+// Copyright (C) 2010, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// 
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+// 
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+// 
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Text;
+using OSGeo.MapGuide.MaestroAPI;
+
+namespace OSGeo.MapGuide.ObjectModels.Common
+{
+
+    /// <summary>
+    /// Represents an item in the repository
+    /// </summary>
+    public interface IRepositoryItem
+    {
+        /// <summary>
+        /// Gets the name.
+        /// </summary>
+        /// <value>The name.</value>
+        string Name { get; }
+
+        /// <summary>
+        /// Gets the resource id.
+        /// </summary>
+        /// <value>The resource id.</value>
+        string ResourceId { get; }
+
+        /// <summary>
+        /// Gets the type of the resource.
+        /// </summary>
+        /// <value>The type of the resource.</value>
+        ResourceTypes ResourceType { get; }
+
+        /// <summary>
+        /// Gets a value indicating whether this instance is folder.
+        /// </summary>
+        /// <value><c>true</c> if this instance is folder; otherwise, <c>false</c>.</value>
+        bool IsFolder { get; }
+
+        /// <summary>
+        /// Gets a value indicating whether this instance has children.
+        /// </summary>
+        /// <value>
+        /// 	<c>true</c> if this instance has children; otherwise, <c>false</c>.
+        /// </value>
+        bool HasChildren { get; }
+
+        /// <summary>
+        /// Gets the owner.
+        /// </summary>
+        /// <value>The owner.</value>
+        string Owner { get; }
+
+        /// <summary>
+        /// Gets the created date.
+        /// </summary>
+        /// <value>The created date.</value>
+        DateTime CreatedDate { get; }
+
+        /// <summary>
+        /// Gets the modified date.
+        /// </summary>
+        /// <value>The modified date.</value>
+        DateTime ModifiedDate { get; }
+    }
+
+}

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerFactory.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerFactory.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerFactory.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -26,6 +26,8 @@
 using OSGeo.MapGuide.MaestroAPI.Resource;
 using System.IO;
 
+#pragma warning disable 1591, 0114, 0108
+
 #if LDF_110
 namespace OSGeo.MapGuide.ObjectModels.LayerDefinition_1_1_0
 #elif LDF_120
@@ -111,9 +113,9 @@
         /// <summary>
         /// Creates a fill
         /// </summary>
-        /// <param name="p"></param>
-        /// <param name="color"></param>
-        /// <param name="color_3"></param>
+        /// <param name="pattern"></param>
+        /// <param name="background"></param>
+        /// <param name="foreground"></param>
         /// <returns></returns>
         public IFill CreateFill(string pattern, System.Drawing.Color background, System.Drawing.Color foreground)
         {

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaceExtensions.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaceExtensions.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaceExtensions.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -25,18 +25,31 @@
 using System.Drawing;
 using OSGeo.MapGuide.ObjectModels.Common;
 using OSGeo.MapGuide.MaestroAPI.Services;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels.DrawingSource;
 
 namespace OSGeo.MapGuide.ObjectModels.LayerDefinition
 {
+    /// <summary>
+    /// Extension method clas
+    /// </summary>
     public static class BlockSymbolExtensions
     {
+        /// <summary>
+        /// Sets the color of the block.
+        /// </summary>
+        /// <param name="sym">The sym.</param>
+        /// <param name="c">The c.</param>
         public static void SetBlockColor(this IBlockSymbol sym, Color c)
         {
             Check.NotNull(sym, "sym");
             sym.BlockColor = Utility.SerializeHTMLColor(c, true);
         }
 
+        /// <summary>
+        /// Sets the color of the layer.
+        /// </summary>
+        /// <param name="sym">The sym.</param>
+        /// <param name="c">The c.</param>
         public static void SetLayerColor(this IBlockSymbol sym, Color c)
         {
             Check.NotNull(sym, "sym");
@@ -44,6 +57,9 @@
         }
     }
 
+    /// <summary>
+    /// Extension method class
+    /// </summary>
     public static class FontSymbolExtensions
     {
         /// <summary>
@@ -60,6 +76,11 @@
             sym.Underlined = f.Underline;
         }
 
+        /// <summary>
+        /// Sets the color of the foreground.
+        /// </summary>
+        /// <param name="sym">The sym.</param>
+        /// <param name="c">The c.</param>
         public static void SetForegroundColor(this IFontSymbol sym, Color c)
         {
             Check.NotNull(sym, "sym");
@@ -67,14 +88,29 @@
         }
     }
 
+    /// <summary>
+    /// Extension method class
+    /// </summary>
     public static class VectorLayerExtensions
     {
+        /// <summary>
+        /// Determines whether the vector layer has scale ranges
+        /// </summary>
+        /// <param name="vl">The vl.</param>
+        /// <returns>
+        /// 	<c>true</c> if vector layer has scale ranges; otherwise, <c>false</c>.
+        /// </returns>
         public static bool HasVectorScaleRanges(this IVectorLayerDefinition vl)
         {
             Check.NotNull(vl, "vl");
             return vl.GetScaleRangeCount() > 0;
         }
 
+        /// <summary>
+        /// Gets the number of scale ranges in this vector layer
+        /// </summary>
+        /// <param name="vl"></param>
+        /// <returns></returns>
         public static int GetScaleRangeCount(this IVectorLayerDefinition vl)
         {
             Check.NotNull(vl, "vl");
@@ -83,6 +119,9 @@
         }
     }
 
+    /// <summary>
+    /// Extension method class
+    /// </summary>
     public static class VectorScaleRangeExtensions
     {
         /// <summary>
@@ -114,14 +153,27 @@
             }
         }
 
+        /// <summary>
+        /// Removes the styles.
+        /// </summary>
+        /// <param name="range">The range.</param>
+        /// <param name="geomTypes">The geom types.</param>
         public static void RemoveStyles(this IVectorScaleRange range, params string[] geomTypes)
         {
             range.RemoveStyles(geomTypes);
         }
     }
 
+    /// <summary>
+    /// Extension method class
+    /// </summary>
     public static class LayerDefinitionExtensions
     {
+        /// <summary>
+        /// Gets the coordinate system WKT.
+        /// </summary>
+        /// <param name="layer">The layer.</param>
+        /// <returns></returns>
         public static string GetCoordinateSystemWkt(this ILayerDefinition layer)
         {
             Check.NotNull(layer, "layer");
@@ -134,7 +186,7 @@
                 case LayerType.Raster:
                     {
                         var rl = (IRasterLayerDefinition)layer.SubLayer;
-                        var fs = (FeatureSourceType)conn.ResourceService.GetResource(rl.ResourceId);
+                        var fs = (IFeatureSource)conn.ResourceService.GetResource(rl.ResourceId);
                         var scList = fs.GetSpatialInfo(true);
                         if (scList.SpatialContext.Count > 0)
                             return scList.SpatialContext[0].CoordinateSystemWkt;
@@ -143,7 +195,7 @@
                 case LayerType.Vector:
                     {
                         var vl = (IVectorLayerDefinition)layer.SubLayer;
-                        var fs = (FeatureSourceType)conn.ResourceService.GetResource(vl.ResourceId);
+                        var fs = (IFeatureSource)conn.ResourceService.GetResource(vl.ResourceId);
                         var scList = fs.GetSpatialInfo(true);
                         if (scList.SpatialContext.Count > 0)
                             return scList.SpatialContext[0].CoordinateSystemWkt;
@@ -167,12 +219,13 @@
         }
 
         /// <summary>
-        /// Returns the spatial extent of the data. 
+        /// Returns the spatial extent of the data.
         /// This is calculated by asking the underlying featuresource for the minimum rectangle that
         /// contains all the features in the specified table. If the <paramref name="allowFallbackToContextInformation"/>
         /// is set to true, and the query fails, the code will attempt to read this information
         /// from the spatial context information instead.
         /// </summary>
+        /// <param name="layer">The layer.</param>
         /// <param name="allowFallbackToContextInformation">True to allow reading spatial extents from the spatial context information, if the spatial query fails.</param>
         /// <returns>The envelope for the data in the table</returns>
         public static IEnvelope GetSpatialExtent(this ILayerDefinition layer, bool allowFallbackToContextInformation)
@@ -214,6 +267,9 @@
         }
     }
 
+    /// <summary>
+    /// Extension method class
+    /// </summary>
     public static class LayerExtensionMethods
     {
         /// <summary>
@@ -230,20 +286,38 @@
         }
     }
 
+    /// <summary>
+    /// Extension method class
+    /// </summary>
     public static class W2DSymbolTypeExtensions
     {
+        /// <summary>
+        /// Sets the color of the fill.
+        /// </summary>
+        /// <param name="sym">The sym.</param>
+        /// <param name="c">The c.</param>
         public static void SetFillColor(this IW2DSymbol sym, Color c)
         {
             Check.NotNull(sym, "sym");
             sym.FillColor = Utility.SerializeHTMLColor(c, true);
         }
 
+        /// <summary>
+        /// Sets the color of the line.
+        /// </summary>
+        /// <param name="sym">The sym.</param>
+        /// <param name="c">The c.</param>
         public static void SetLineColor(this IW2DSymbol sym, Color c)
         {
             Check.NotNull(sym, "sym");
             sym.LineColor = Utility.SerializeHTMLColor(c, true);
         }
 
+        /// <summary>
+        /// Sets the color of the text.
+        /// </summary>
+        /// <param name="sym">The sym.</param>
+        /// <param name="c">The c.</param>
         public static void SetTextColor(this IW2DSymbol sym, Color c)
         {
             Check.NotNull(sym, "sym");
@@ -251,14 +325,27 @@
         }
     }
 
+    /// <summary>
+    /// Extension method class
+    /// </summary>
     public static class TextSymbolExtensions
     {
+        /// <summary>
+        /// Sets the color of the foreground.
+        /// </summary>
+        /// <param name="sym">The sym.</param>
+        /// <param name="c">The c.</param>
         public static void SetForegroundColor(this ITextSymbol sym, Color c)
         {
             Check.NotNull(sym, "sym");
             sym.ForegroundColor = Utility.SerializeHTMLColor(c, true);
         }
 
+        /// <summary>
+        /// Sets the color of the background.
+        /// </summary>
+        /// <param name="sym">The sym.</param>
+        /// <param name="c">The c.</param>
         public static void SetBackgroundColor(this ITextSymbol sym, Color c)
         {
             Check.NotNull(sym, "sym");
@@ -280,14 +367,27 @@
         }
     }
 
+    /// <summary>
+    /// Extension method class
+    /// </summary>
     public static class FillExtensions
     {
+        /// <summary>
+        /// Sets the color of the background.
+        /// </summary>
+        /// <param name="fil">The fil.</param>
+        /// <param name="c">The c.</param>
         public static void SetBackgroundColor(this IFill fil, Color c)
         {
             Check.NotNull(fil, "fil");
             fil.BackgroundColor = Utility.SerializeHTMLColor(c, true);
         }
 
+        /// <summary>
+        /// Sets the color of the foreground.
+        /// </summary>
+        /// <param name="fil">The fil.</param>
+        /// <param name="c">The c.</param>
         public static void SetForegroundColor(this IFill fil, Color c)
         {
             Check.NotNull(fil, "fil");
@@ -295,8 +395,16 @@
         }
     }
 
+    /// <summary>
+    /// Extension method class
+    /// </summary>
     public static class GridColorStyleExtensions
     {
+        /// <summary>
+        /// Sets the color of the transparency.
+        /// </summary>
+        /// <param name="style">The style.</param>
+        /// <param name="c">The c.</param>
         public static void SetTransparencyColor(this IGridColorStyle style, Color c)
         {
             Check.NotNull(style, "style");
@@ -304,8 +412,16 @@
         }
     }
 
+    /// <summary>
+    /// Extension method class
+    /// </summary>
     public static class GridSurfaceStyleExtensions
     {
+        /// <summary>
+        /// Sets the default color.
+        /// </summary>
+        /// <param name="style">The style.</param>
+        /// <param name="c">The c.</param>
         public static void SetDefaultColor(this IGridSurfaceStyle style, Color c)
         {
             Check.NotNull(style, "style");

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaces.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaces.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaces.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -27,7 +27,6 @@
 using OSGeo.MapGuide.ObjectModels.Common;
 using OSGeo.MapGuide.MaestroAPI.Services;
 using OSGeo.MapGuide.MaestroAPI;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
 using System.ComponentModel;
 using OSGeo.MapGuide.ObjectModels.SymbolDefinition;
 
@@ -35,6 +34,9 @@
 {
     #region core enums
 
+    /// <summary>
+    /// The type of length unit
+    /// </summary>
     [System.SerializableAttribute()]
     public enum LengthUnitType
     {
@@ -67,6 +69,9 @@
         Points,
     }
 
+    /// <summary>
+    /// The type of size context
+    /// </summary>
     [System.SerializableAttribute()]
     public enum SizeContextType
     {
@@ -78,6 +83,9 @@
         DeviceUnits,
     }
 
+    /// <summary>
+    /// The type of shape
+    /// </summary>
     [System.SerializableAttribute()]
     public enum ShapeType
     {
@@ -101,6 +109,9 @@
         X,
     }
 
+    /// <summary>
+    /// The type of background style
+    /// </summary>
     [System.SerializableAttribute()]
     public enum BackgroundStyleType
     {
@@ -115,6 +126,9 @@
         Ghosted,
     }
 
+    /// <summary>
+    /// The type of feature name
+    /// </summary>
     [System.SerializableAttribute()]
     public enum FeatureNameType
     {
@@ -126,6 +140,9 @@
         NamedExtension,
     }
 
+    /// <summary>
+    /// The type of explicit color
+    /// </summary>
     [System.SerializableAttribute()]
     [System.Xml.Serialization.XmlTypeAttribute(IncludeInSchema = false)]
     public enum ItemChoiceType
@@ -145,20 +162,48 @@
 
     #region core
 
+    /// <summary>
+    /// The type of layer definition
+    /// </summary>
     public enum LayerType
     {
+        /// <summary>
+        /// DWF-based drawing layer
+        /// </summary>
         Drawing,
+        /// <summary>
+        /// Vector layer
+        /// </summary>
         Vector,
+        /// <summary>
+        /// Raster layer
+        /// </summary>
         Raster
     }
 
+    /// <summary>
+    /// Represents elements that can create clones of themselves
+    /// </summary>
+    /// <typeparam name="T"></typeparam>
     public interface ICloneableLayerElement<T>
     {
+        /// <summary>
+        /// Clones this instance.
+        /// </summary>
+        /// <returns></returns>
         T Clone();
     }
 
+    /// <summary>
+    /// Helper class to clone certain elements
+    /// </summary>
     public static class LayerElementCloningUtil
     {
+        /// <summary>
+        /// Clones the strokes.
+        /// </summary>
+        /// <param name="strokes">The strokes.</param>
+        /// <returns></returns>
         public static IList<IStroke> CloneStrokes(IEnumerable<IStroke> strokes)
         {
             Check.NotNull(strokes, "strokes");
@@ -284,6 +329,10 @@
     /// </summary>
     public interface ILayerDefinition : IResource, ILayerElementFactory
     {
+        /// <summary>
+        /// Gets the sub layer.
+        /// </summary>
+        /// <value>The sub layer.</value>
         ISubLayerDefinition SubLayer { get; }
     }
 
@@ -416,10 +465,22 @@
     /// </summary>
     public interface IRasterLayerDefinition : ISubLayerDefinition
     {
+        /// <summary>
+        /// Gets or sets the name of the feature class.
+        /// </summary>
+        /// <value>The name of the feature class.</value>
         string FeatureName { get; set; }
 
+        /// <summary>
+        /// Gets or sets the raster property.
+        /// </summary>
+        /// <value>The raster property.</value>
         string Geometry { get; set; }
 
+        /// <summary>
+        /// Gets the grid scale ranges.
+        /// </summary>
+        /// <value>The grid scale ranges.</value>
         ICollection<IGridScaleRange> GridScaleRange { get; }
     }
 
@@ -524,8 +585,17 @@
     /// </summary>
     public enum StyleType
     {
+        /// <summary>
+        /// 
+        /// </summary>
         Area,
+        /// <summary>
+        /// 
+        /// </summary>
         Line,
+        /// <summary>
+        /// 
+        /// </summary>
         Point
     }
 
@@ -551,6 +621,9 @@
         /// <param name="rule"></param>
         void RemoveRule(IAreaRule rule);
 
+        /// <summary>
+        /// Removes all rules.
+        /// </summary>
         void RemoveAllRules();
     }
 
@@ -734,6 +807,9 @@
         IStroke Stroke { get; set; }
     }
 
+    /// <summary>
+    /// The type of point symbol
+    /// </summary>
     public enum PointSymbolType
     {
         /// <summary>
@@ -813,11 +889,21 @@
         double? InsertionPointY { get; set; }
     }
 
+    /// <summary>
+    /// Advanced placement settings
+    /// </summary>
     public interface IAdvancedPlacement
     {
+        /// <summary>
+        /// Gets or sets the scale limit.
+        /// </summary>
+        /// <value>The scale limit.</value>
         double ScaleLimit { get; set; }
     }
 
+    /// <summary>
+    /// Represents a text symbol
+    /// </summary>
     public interface ITextSymbol : ISymbol, ICloneableLayerElement<ITextSymbol>
     {
         /// <summary>
@@ -964,17 +1050,37 @@
     /// </summary>
     public interface IImageSymbol : ISymbol, ICloneableLayerElement<IImageSymbol>
     {
+        /// <summary>
+        /// Gets or sets the image.
+        /// </summary>
+        /// <value>The image.</value>
         IBaseImageSymbol Image { get; set; }
     }
 
+    /// <summary>
+    /// The types of image symbol references
+    /// </summary>
     public enum ImageSymbolReferenceType
     {
+        /// <summary>
+        /// 
+        /// </summary>
         SymbolReference,
+        /// <summary>
+        /// 
+        /// </summary>
         Inline
     }
 
+    /// <summary>
+    /// 
+    /// </summary>
     public interface IBaseImageSymbol
     {
+        /// <summary>
+        /// Gets the type.
+        /// </summary>
+        /// <value>The type.</value>
         ImageSymbolReferenceType Type { get; }
     }
 
@@ -983,8 +1089,16 @@
     /// </summary>
     public interface ISymbolReference : IBaseImageSymbol, ICloneableLayerElement<ISymbolReference>
     {
+        /// <summary>
+        /// Gets or sets the resource id.
+        /// </summary>
+        /// <value>The resource id.</value>
         string ResourceId { get; set; }
 
+        /// <summary>
+        /// Gets or sets the name of the library item.
+        /// </summary>
+        /// <value>The name of the library item.</value>
         string LibraryItemName { get; set; }
     }
 
@@ -1030,6 +1144,10 @@
     /// </summary>
     public interface IPointSymbolization2D : ICloneableLayerElement<IPointSymbolization2D>
     {
+        /// <summary>
+        /// Gets or sets the symbol.
+        /// </summary>
+        /// <value>The symbol.</value>
         ISymbol Symbol { get; set; }
     }
 
@@ -1110,31 +1228,69 @@
         IChannelBand BlueBand { get; set; }
     }
 
+    /// <summary>
+    /// An explicit color
+    /// </summary>
     public interface IExplicitColor
     {
+        /// <summary>
+        /// Gets the type.
+        /// </summary>
+        /// <value>The type.</value>
         ItemChoiceType Type { get; }
     }
 
+    /// <summary>
+    /// An explicit color value
+    /// </summary>
     public interface IExplictColorValue : IExplicitColor
     {
+        /// <summary>
+        /// Gets the value.
+        /// </summary>
+        /// <value>The value.</value>
         string Value { get; }
     }
 
+    /// <summary>
+    /// An explicit color band
+    /// </summary>
     public interface IExplicitColorBand : IExplicitColor
     {
+        /// <summary>
+        /// Gets the band.
+        /// </summary>
+        /// <value>The band.</value>
         string Band { get; }
     }
 
+    /// <summary>
+    /// An explicit color band
+    /// </summary>
     public interface IExplicitColorBands : IExplicitColor
     {
+        /// <summary>
+        /// Gets the bands.
+        /// </summary>
+        /// <value>The bands.</value>
         IGridColorBands Bands { get; }
     }
 
+    /// <summary>
+    /// A grid color
+    /// </summary>
     public interface IGridColor
     {
+        /// <summary>
+        /// Gets or sets the color of the explicit.
+        /// </summary>
+        /// <value>The color of the explicit.</value>
         IExplicitColor ExplicitColor { get; set; }
     }
 
+    /// <summary>
+    /// A grid color rule
+    /// </summary>
     public interface IGridColorRule
     {
         /// <summary>
@@ -1152,6 +1308,10 @@
         /// </summary>
         ITextSymbol Label { get; set; }
 
+        /// <summary>
+        /// Gets or sets the color.
+        /// </summary>
+        /// <value>The color.</value>
         IGridColor Color { get; set; }
     }
 
@@ -1181,8 +1341,15 @@
         double ScaleFactor { get; set; }
     }
 
+    /// <summary>
+    /// A grid color style
+    /// </summary>
     public interface IGridColorStyle
     {
+        /// <summary>
+        /// Gets or sets the hill shade.
+        /// </summary>
+        /// <value>The hill shade.</value>
         IHillShade HillShade { get; set; }
 
         /// <summary>
@@ -1218,6 +1385,9 @@
         void RemoveColorRule(IGridColorRule rule);
     }
 
+    /// <summary>
+    /// A grid surface style
+    /// </summary>
     public interface IGridSurfaceStyle
     {
         /// <summary>
@@ -1241,6 +1411,9 @@
         string DefaultColor { get; set; }
     }
 
+    /// <summary>
+    /// A grid scale range
+    /// </summary>
     public interface IGridScaleRange
     {
         /// <summary>
@@ -1258,6 +1431,10 @@
         /// </summary>
         IGridSurfaceStyle SurfaceStyle { get; set; }
 
+        /// <summary>
+        /// Gets or sets the color style.
+        /// </summary>
+        /// <value>The color style.</value>
         IGridColorStyle ColorStyle { get; set; }
 
         /// <summary>
@@ -1270,6 +1447,9 @@
 
     #region Layer Definition 1.1.0 interfaces
 
+    /// <summary>
+    /// Type of elevation
+    /// </summary>
     [System.SerializableAttribute()]
     public enum ElevationTypeType
     {
@@ -1286,28 +1466,70 @@
     /// </summary>
     public interface ICompositeTypeStyle
     {
+        /// <summary>
+        /// Gets the composite rules.
+        /// </summary>
+        /// <value>The composite rules.</value>
         IEnumerable<ICompositeRule> CompositeRule { get; }
 
+        /// <summary>
+        /// Adds the composite rule.
+        /// </summary>
+        /// <param name="compRule">The comp rule.</param>
         void AddCompositeRule(ICompositeRule compRule);
 
+        /// <summary>
+        /// Removes the composite rule.
+        /// </summary>
+        /// <param name="compRule">The comp rule.</param>
         void RemoveCompositeRule(ICompositeRule compRule);
     }
 
+    /// <summary>
+    /// Represents a composite rule
+    /// </summary>
     public interface ICompositeRule
     {
+        /// <summary>
+        /// Gets or sets the legend label.
+        /// </summary>
+        /// <value>The legend label.</value>
         string LegendLabel { get; set; }
 
+        /// <summary>
+        /// Gets or sets the filter.
+        /// </summary>
+        /// <value>The filter.</value>
         string Filter { get; set; }
 
+        /// <summary>
+        /// Gets or sets the composite symbolization.
+        /// </summary>
+        /// <value>The composite symbolization.</value>
         ICompositeSymbolization CompositeSymbolization { get; set; }
     }
 
+    /// <summary>
+    /// Represents a composite symbolization
+    /// </summary>
     public interface ICompositeSymbolization
     {
+        /// <summary>
+        /// Gets the symbol instances.
+        /// </summary>
+        /// <value>The symbol instances.</value>
         IEnumerable<ISymbolInstance> SymbolInstance { get; }
 
+        /// <summary>
+        /// Adds the symbol instance.
+        /// </summary>
+        /// <param name="inst">The inst.</param>
         void AddSymbolInstance(ISymbolInstance inst);
 
+        /// <summary>
+        /// Removes the symbol instance.
+        /// </summary>
+        /// <param name="inst">The inst.</param>
         void RemoveSymbolInstance(ISymbolInstance inst);
     }
 
@@ -1337,20 +1559,49 @@
     /// </summary>
     public interface IParameterOverrideCollection
     {
+        /// <summary>
+        /// Gets the parameter overrides.
+        /// </summary>
+        /// <value>The parameter overrides.</value>
         IEnumerable<IParameterOverride> Override { get; }
 
+        /// <summary>
+        /// Adds the override.
+        /// </summary>
+        /// <param name="ov">The ov.</param>
         void AddOverride(IParameterOverride ov);
 
+        /// <summary>
+        /// Removes the override.
+        /// </summary>
+        /// <param name="ov">The ov.</param>
         void RemoveOverride(IParameterOverride ov);
     }
 
-    
-
+    /// <summary>
+    /// Represents elevation settings
+    /// </summary>
     public interface IElevationSettings
     {
+        /// <summary>
+        /// Gets or sets the Z offset.
+        /// </summary>
+        /// <value>The Z offset.</value>
         string ZOffset { get; set; }
+        /// <summary>
+        /// Gets or sets the Z extrusion.
+        /// </summary>
+        /// <value>The Z extrusion.</value>
         string ZExtrusion { get; set; }
+        /// <summary>
+        /// Gets or sets the type of the Z offset.
+        /// </summary>
+        /// <value>The type of the Z offset.</value>
         ElevationTypeType ZOffsetType { get; set; }
+        /// <summary>
+        /// Gets or sets the unit.
+        /// </summary>
+        /// <value>The unit.</value>
         LengthUnitType Unit { get; set; }
     }
 
@@ -1358,6 +1609,9 @@
 
     #region Layer Definition 1.2.0 interfaces
 
+    /// <summary>
+    /// The types of usage context
+    /// </summary>
     [System.SerializableAttribute()]
     public enum UsageContextType
     {
@@ -1375,6 +1629,9 @@
         Area,
     }
 
+    /// <summary>
+    /// The types of geometry context
+    /// </summary>
     [System.SerializableAttribute()]
     public enum GeometryContextType
     {
@@ -1413,6 +1670,10 @@
     /// </summary>
     public interface IParameterOverride2 : IParameterOverride
     {
+        /// <summary>
+        /// Gets or sets the theme label.
+        /// </summary>
+        /// <value>The theme label.</value>
         IThemeLabel ThemeLabel { get; set; }
     }
 
@@ -1421,10 +1682,22 @@
     /// </summary>
     public interface ISymbolInstance2 : ISymbolInstance
     {
+        /// <summary>
+        /// Gets or sets the rendering pass.
+        /// </summary>
+        /// <value>The rendering pass.</value>
         string RenderingPass { get; set; }
 
+        /// <summary>
+        /// Gets or sets the usage context.
+        /// </summary>
+        /// <value>The usage context.</value>
         UsageContextType UsageContext { get; set; }
 
+        /// <summary>
+        /// Gets or sets the geometry context.
+        /// </summary>
+        /// <value>The geometry context.</value>
         GeometryContextType GeometryContext { get; set; }
     }
 
@@ -1432,23 +1705,51 @@
 
     #region Layer Definition 1.3.0 interfaces
 
+    /// <summary>
+    /// A point vector style introduced in the v1.3.0 layer definition schema
+    /// </summary>
     public interface IPointVectorStyle2 : IPointVectorStyle
     {
+        /// <summary>
+        /// Gets or sets a value indicating whether [show in legend].
+        /// </summary>
+        /// <value><c>true</c> if [show in legend]; otherwise, <c>false</c>.</value>
         bool ShowInLegend { get; set; }
     }
 
+    /// <summary>
+    /// A line vector style introduced in the v1.3.0 layer definition schema
+    /// </summary>
     public interface ILineVectorStyle2 : ILineVectorStyle
     {
+        /// <summary>
+        /// Gets or sets a value indicating whether [show in legend].
+        /// </summary>
+        /// <value><c>true</c> if [show in legend]; otherwise, <c>false</c>.</value>
         bool ShowInLegend { get; set; }
     }
 
+    /// <summary>
+    /// An area vector style introduced in the v1.3.0 layer definition schema
+    /// </summary>
     public interface IAreaVectorStyle2 : IAreaVectorStyle
     {
+        /// <summary>
+        /// Gets or sets a value indicating whether [show in legend].
+        /// </summary>
+        /// <value><c>true</c> if [show in legend]; otherwise, <c>false</c>.</value>
         bool ShowInLegend { get; set; }
     }
 
+    /// <summary>
+    /// A composite style introduced in the v1.3.0 layer definition schema
+    /// </summary>
     public interface ICompositeTypeStyle2 : ICompositeTypeStyle
     {
+        /// <summary>
+        /// Gets or sets a value indicating whether [show in legend].
+        /// </summary>
+        /// <value><c>true</c> if [show in legend]; otherwise, <c>false</c>.</value>
         bool ShowInLegend { get; set; }
     }
 

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcFactory.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcFactory.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcFactory.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -5,6 +5,8 @@
 using OSGeo.MapGuide.MaestroAPI.Resource;
 using System.IO;
 
+#pragma warning disable 1591, 0114, 0108
+
 #if LP110
 namespace OSGeo.MapGuide.ObjectModels.LoadProcedure_1_1_0
 #elif LP220
@@ -13,6 +15,9 @@
 namespace OSGeo.MapGuide.ObjectModels.LoadProcedure_1_0_0
 #endif
 {
+    /// <summary>
+    /// Helper class for registration with <see cref="OSGeo.MapGuide.ObjectModels.ObjectFactory"/> and <see cref="OSGeo.MapGuide.MaestroAPI.ResourceTypeRegistry"/> classes
+    /// </summary>
     public static class LoadProcEntryPoint
     {
         const string ARBITRARY_XYM = "LOCAL_CS[\"Non-Earth (Meter)\", LOCAL_DATUM[\"Local Datum\", 0], UNIT[\"Meter\", 1], AXIS[\"X\", EAST], AXIS[\"Y\", NORTH]]";

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcedure.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcedure.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcedure.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -25,6 +25,8 @@
 using OSGeo.MapGuide.MaestroAPI;
 using OSGeo.MapGuide.ObjectModels.LoadProcedure;
 
+#pragma warning disable 1591, 0114, 0108
+
 #if LP110
 namespace OSGeo.MapGuide.ObjectModels.LoadProcedure_1_1_0
 #elif LP220

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcedureInterfaces.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcedureInterfaces.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcedureInterfaces.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -26,6 +26,9 @@
 
 namespace OSGeo.MapGuide.ObjectModels.LoadProcedure
 {
+    /// <summary>
+    /// Defines how to handle duplicate SDF2 keys
+    /// </summary>
     [System.SerializableAttribute()]
     public enum SdfKeyTreatmentType
     {
@@ -39,61 +42,160 @@
         MergeDuplicates,
     }
 
+    /// <summary>
+    /// The types of load procedures
+    /// </summary>
     public enum LoadType
     {
+        /// <summary>
+        /// 
+        /// </summary>
         Sdf,
+        /// <summary>
+        /// 
+        /// </summary>
         Shp,
+        /// <summary>
+        /// 
+        /// </summary>
         Dwf,
+        /// <summary>
+        /// 
+        /// </summary>
         Raster,
+        /// <summary>
+        /// 
+        /// </summary>
         Dwg,
+        /// <summary>
+        /// 
+        /// </summary>
         Sqlite
     }
 
+    /// <summary>
+    /// Represents Load Procedures
+    /// </summary>
     public interface ILoadProcedure : IResource
     {
+        /// <summary>
+        /// Gets the type of the sub.
+        /// </summary>
+        /// <value>The type of the sub.</value>
         IBaseLoadProcedure SubType { get; }
     }
 
+    /// <summary>
+    /// A DWG load procedure. Execution not supported by Maestro
+    /// </summary>
     public interface IDwgLoadProcedure : IBaseLoadProcedure
     {
 
     }
 
+    /// <summary>
+    /// A raster load procedure. Execution not supported by Maestro
+    /// </summary>
     public interface IRasterLoadProcedure : IBaseLoadProcedure
     {
 
     }
 
+    /// <summary>
+    /// Base type of all load procedures
+    /// </summary>
     public interface IBaseLoadProcedure : INotifyPropertyChanged
     {
+        /// <summary>
+        /// Gets the type.
+        /// </summary>
+        /// <value>The type.</value>
         LoadType Type { get; }
 
+        /// <summary>
+        /// Gets the source files.
+        /// </summary>
+        /// <value>The source files.</value>
         BindingList<string> SourceFile { get; }
 
+        /// <summary>
+        /// Adds the file.
+        /// </summary>
+        /// <param name="file">The file.</param>
         void AddFile(string file);
 
+        /// <summary>
+        /// Removes the file.
+        /// </summary>
+        /// <param name="file">The file.</param>
         void RemoveFile(string file);
 
+        /// <summary>
+        /// Gets or sets the root path.
+        /// </summary>
+        /// <value>The root path.</value>
         string RootPath { get; set; }
 
+        /// <summary>
+        /// Gets or sets the coordinate system to use if none found in the source file.
+        /// </summary>
+        /// <value>The coordinate system.</value>
         string CoordinateSystem { get; set; }
 
+        /// <summary>
+        /// Gets or sets a value indicating whether [generate spatial data sources].
+        /// </summary>
+        /// <value>
+        /// 	<c>true</c> if [generate spatial data sources]; otherwise, <c>false</c>.
+        /// </value>
         bool GenerateSpatialDataSources { get; set; }
 
+        /// <summary>
+        /// Gets or sets the spatial data sources path.
+        /// </summary>
+        /// <value>The spatial data sources path.</value>
         string SpatialDataSourcesPath { get; set; }
 
+        /// <summary>
+        /// Gets or sets the spatial data sources folder.
+        /// </summary>
+        /// <value>The spatial data sources folder.</value>
         string SpatialDataSourcesFolder { get; set; }
 
+        /// <summary>
+        /// Gets or sets a value indicating whether [generate layers].
+        /// </summary>
+        /// <value><c>true</c> if [generate layers]; otherwise, <c>false</c>.</value>
         bool GenerateLayers { get; set; }
 
+        /// <summary>
+        /// Gets or sets the layers path.
+        /// </summary>
+        /// <value>The layers path.</value>
         string LayersPath { get; set; }
 
+        /// <summary>
+        /// Gets or sets the layers folder.
+        /// </summary>
+        /// <value>The layers folder.</value>
         string LayersFolder { get; set; }
 
+        /// <summary>
+        /// Gets or sets the generate maps.
+        /// </summary>
+        /// <value>The generate maps.</value>
         bool? GenerateMaps { get; set; }
 
+        /// <summary>
+        /// Gets or sets the maps path.
+        /// </summary>
+        /// <value>The maps path.</value>
         string MapsPath { get; set; }
 
+        /// <summary>
+        /// Gets or sets the maps folder.
+        /// </summary>
+        /// <value>The maps folder.</value>
         string MapsFolder { get; set; }
 
         /// <summary>
@@ -111,9 +213,16 @@
         /// </summary>
         string SymbolLibrariesFolder { get; set; }
 
+        /// <summary>
+        /// Gets or sets the resource id that were created as part of executing this load procedure
+        /// </summary>
+        /// <value>The resource id.</value>
         BindingList<string> ResourceId { get; set; }
     }
 
+    /// <summary>
+    /// Extension method class
+    /// </summary>
     public static class BaseLoadProcedureExtensions
     {
         /// <summary>
@@ -132,11 +241,17 @@
         }
     }
 
+    /// <summary>
+    /// A DWF load procedure. Execution is supported with limitations
+    /// </summary>
     public interface IDwfLoadProcedure : IBaseLoadProcedure
     {
 
     }
 
+    /// <summary>
+    /// A SDF load procedure. Execution is supported with limitations
+    /// </summary>
     public interface ISdfLoadProcedure : IBaseLoadProcedure
     {
         /// <summary>
@@ -150,6 +265,9 @@
         SdfKeyTreatmentType SdfKeyTreatment { get; set; }
     }
 
+    /// <summary>
+    /// A SHP load procedure. Execution is supported with limitations
+    /// </summary>
     public interface IShpLoadProcedure : IBaseLoadProcedure
     {
         /// <summary>
@@ -163,6 +281,9 @@
         bool ConvertToSdf { get; set; }
     }
 
+    /// <summary>
+    /// A SQLite load procedure. Execution is supported with limitations
+    /// </summary>
     public interface ISqliteLoadProcedure : IBaseLoadProcedure
     {
         /// <summary>

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinition.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinition.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinition.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -26,8 +26,11 @@
 using System.Drawing;
 using OSGeo.MapGuide.ObjectModels.LayerDefinition;
 using OSGeo.MapGuide.ObjectModels.Common;
+using OSGeo.MapGuide.ObjectModels.MapDefinition;
 
-namespace OSGeo.MapGuide.ObjectModels.MapDefinition
+#pragma warning disable 1591, 0114, 0108
+
+namespace OSGeo.MapGuide.ObjectModels.MapDefinition_1_0_0
 {
     partial class MapDefinitionType
     {

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinitionInterfaces.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinitionInterfaces.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinitionInterfaces.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -28,18 +28,49 @@
 
 namespace OSGeo.MapGuide.ObjectModels.MapDefinition
 {
+    /// <summary>
+    /// Represents a Map Definition
+    /// </summary>
     public interface IMapDefinition : IResource, INotifyPropertyChanged
     {
+        /// <summary>
+        /// Gets or sets the name.
+        /// </summary>
+        /// <value>The name.</value>
         string Name { get; set; }
 
+        /// <summary>
+        /// Gets or sets the coordinate system. Layers whose coordinate system does
+        /// not match will be re-projecte to this coordinate system when rendering
+        /// </summary>
+        /// <value>The coordinate system.</value>
         string CoordinateSystem { get; set; }
 
+        /// <summary>
+        /// Gets or sets the extents.
+        /// </summary>
+        /// <value>The extents.</value>
         IEnvelope Extents { get; set; }
 
+        /// <summary>
+        /// Sets the extents.
+        /// </summary>
+        /// <param name="minx">The minx.</param>
+        /// <param name="miny">The miny.</param>
+        /// <param name="maxx">The maxx.</param>
+        /// <param name="maxy">The maxy.</param>
         void SetExtents(double minx, double miny, double maxx, double maxy);
 
+        /// <summary>
+        /// Gets or sets the color of the background.
+        /// </summary>
+        /// <value>The color of the background.</value>
         Color BackgroundColor { get; set; }
 
+        /// <summary>
+        /// Gets or sets the metadata.
+        /// </summary>
+        /// <value>The metadata.</value>
         string Metadata { get; set; }
 
         /// <summary>
@@ -60,6 +91,10 @@
         /// </summary>
         void RemoveBaseMap();
 
+        /// <summary>
+        /// Gets the map layers.
+        /// </summary>
+        /// <value>The map layers.</value>
         IEnumerable<IMapLayer> MapLayer { get; }
 
         /// <summary>
@@ -85,29 +120,82 @@
         /// <returns></returns>
         IMapLayer AddLayer(IMapLayer layerToInsertAbove, string groupName, string layerName, string resourceId);
 
+        /// <summary>
+        /// Removes the layer.
+        /// </summary>
+        /// <param name="layer">The layer.</param>
         void RemoveLayer(IMapLayer layer);
 
+        /// <summary>
+        /// Gets the index of the specified layer
+        /// </summary>
+        /// <param name="layer">The layer.</param>
+        /// <returns></returns>
         int GetIndex(IMapLayer layer);
 
+        /// <summary>
+        /// Moves the layer up the draw order
+        /// </summary>
+        /// <param name="layer">The layer.</param>
+        /// <returns></returns>
         int MoveUp(IMapLayer layer);
 
+        /// <summary>
+        /// Moves the layer down the draw order.
+        /// </summary>
+        /// <param name="layer">The layer.</param>
+        /// <returns></returns>
         int MoveDown(IMapLayer layer);
 
+        /// <summary>
+        /// Gets the map layer groups.
+        /// </summary>
+        /// <value>The map layer groups.</value>
         IEnumerable<IMapLayerGroup> MapLayerGroup { get; }
 
+        /// <summary>
+        /// Adds the group.
+        /// </summary>
+        /// <param name="groupName">Name of the group.</param>
+        /// <returns></returns>
         IMapLayerGroup AddGroup(string groupName);
          
+        /// <summary>
+        /// Removes the group
+        /// </summary>
+        /// <param name="group"></param>
         void RemoveGroup(IMapLayerGroup group);
 
+        /// <summary>
+        /// Gets the index of the specified group
+        /// </summary>
+        /// <param name="group"></param>
+        /// <returns></returns>
         int GetIndex(IMapLayerGroup group);
 
+        /// <summary>
+        /// Moves the specified layer to the top of the draw order
+        /// </summary>
+        /// <param name="layer"></param>
         void SetTopDrawOrder(IMapLayer layer);
 
+        /// <summary>
+        /// Moves the specified layer to the bottom of the draw order
+        /// </summary>
+        /// <param name="layer"></param>
         void SetBottomDrawOrder(IMapLayer layer);
     }
 
+    /// <summary>
+    /// Extension methdo class
+    /// </summary>
     public static class BaseMapDefinitionExtensions
     {
+        /// <summary>
+        /// Gets the minimum finite display scale
+        /// </summary>
+        /// <param name="map"></param>
+        /// <returns></returns>
         public static double GetMinScale(this IBaseMapDefinition map)
         {
             Check.NotNull(map, "map");
@@ -119,6 +207,11 @@
             return scales[0];
         }
 
+        /// <summary>
+        /// Gets the maximum finite display scale
+        /// </summary>
+        /// <param name="map"></param>
+        /// <returns></returns>
         public static double GetMaxScale(this IBaseMapDefinition map)
         {
             Check.NotNull(map, "map");
@@ -130,12 +223,22 @@
             return scales[scales.Count - 1];
         }
 
+        /// <summary>
+        /// Gets whether this base map group has tiled layers
+        /// </summary>
+        /// <param name="grp"></param>
+        /// <returns></returns>
         public static bool HasLayers(this IBaseMapGroup grp)
         {
             Check.NotNull(grp, "grp");
             return new List<IBaseMapLayer>(grp.BaseMapLayer).Count > 0;
         }
 
+        /// <summary>
+        /// Gets whether this base map has tiled layers
+        /// </summary>
+        /// <param name="map"></param>
+        /// <returns></returns>
         public static bool HasLayers(this IBaseMapDefinition map)
         {
             Check.NotNull(map, "map");
@@ -150,12 +253,22 @@
             return false;
         }
 
+        /// <summary>
+        /// Gets whether this base map has groups
+        /// </summary>
+        /// <param name="map"></param>
+        /// <returns></returns>
         public static bool HasGroups(this IBaseMapDefinition map)
         {
             Check.NotNull(map, "map");
             return new List<IBaseMapGroup>(map.BaseMapLayerGroup).Count > 0;
         }
 
+        /// <summary>
+        /// Gets the first base map group
+        /// </summary>
+        /// <param name="map"></param>
+        /// <returns></returns>
         public static IBaseMapGroup GetFirstGroup(this IBaseMapDefinition map)
         {
             Check.NotNull(map, "map");
@@ -165,6 +278,12 @@
             return null;
         }
 
+        /// <summary>
+        /// Gets whether a tiled layer of the specified name exists.
+        /// </summary>
+        /// <param name="map"></param>
+        /// <param name="layerName"></param>
+        /// <returns></returns>
         public static bool LayerExists(this IBaseMapDefinition map, string layerName)
         {
             Check.NotNull(map, "map");
@@ -181,6 +300,12 @@
             return false;
         }
 
+        /// <summary>
+        /// Gets the base map group of the specified name
+        /// </summary>
+        /// <param name="map"></param>
+        /// <param name="groupName"></param>
+        /// <returns></returns>
         public static IBaseMapGroup GetGroup(this IBaseMapDefinition map, string groupName)
         { 
             Check.NotNull(map, "map");
@@ -193,6 +318,12 @@
             return null;
         }
 
+        /// <summary>
+        /// Gets whether the specified base map group exists
+        /// </summary>
+        /// <param name="map"></param>
+        /// <param name="groupName"></param>
+        /// <returns></returns>
         public static bool GroupExists(this IBaseMapDefinition map, string groupName)
         {
             Check.NotNull(map, "map");
@@ -205,6 +336,12 @@
             return false;
         }
 
+        /// <summary>
+        /// Gets the tiled layers for the specified base map group
+        /// </summary>
+        /// <param name="map"></param>
+        /// <param name="groupName"></param>
+        /// <returns></returns>
         public static IEnumerable<IBaseMapLayer> GetLayersForGroup(this IBaseMapDefinition map, string groupName)
         {
             Check.NotNull(map, "map");
@@ -222,8 +359,17 @@
         }
     }
 
+    /// <summary>
+    /// Extension method class
+    /// </summary>
     public static class MapDefinitionExtensions
     {
+        /// <summary>
+        /// Get a layer by its name
+        /// </summary>
+        /// <param name="map"></param>
+        /// <param name="name"></param>
+        /// <returns></returns>
         public static IMapLayer GetLayerByName(this IMapDefinition map, string name)
         {
             Check.NotNull(map, "map");
@@ -236,6 +382,12 @@
             return null;
         }
 
+        /// <summary>
+        /// Gets a group by its name
+        /// </summary>
+        /// <param name="map"></param>
+        /// <param name="name"></param>
+        /// <returns></returns>
         public static IMapLayerGroup GetGroupByName(this IMapDefinition map, string name)
         {
             Check.NotNull(map, "map");
@@ -248,18 +400,34 @@
             return null;
         }
 
+        /// <summary>
+        /// Gets the number of layers (non-tiled) on this map
+        /// </summary>
+        /// <param name="map"></param>
+        /// <returns></returns>
         public static int GetLayerCount(this IMapDefinition map)
         {
             Check.NotNull(map, "map");
             return new List<IMapLayer>(map.MapLayer).Count;
         }
 
+        /// <summary>
+        /// Gets the number of groups (non-tiled) on this map
+        /// </summary>
+        /// <param name="map"></param>
+        /// <returns></returns>
         public static int GetGroupCount(this IMapDefinition map)
         {
             Check.NotNull(map, "map");
             return new List<IMapLayerGroup>(map.MapLayerGroup).Count;
         }
 
+        /// <summary>
+        /// Gets all the layers that belong to the specified group
+        /// </summary>
+        /// <param name="map"></param>
+        /// <param name="name"></param>
+        /// <returns></returns>
         public static IEnumerable<IMapLayer> GetLayersForGroup(this IMapDefinition map, string name)
         {
             Check.NotNull(map, "map");
@@ -271,6 +439,11 @@
             }
         }
 
+        /// <summary>
+        /// Gets all that layers that do not belong to a group
+        /// </summary>
+        /// <param name="map"></param>
+        /// <returns></returns>
         public static IEnumerable<IMapLayer> GetLayersWithoutGroups(this IMapDefinition map)
         {
             Check.NotNull(map, "map");
@@ -282,79 +455,218 @@
         }
     }
 
+    /// <summary>
+    /// Represents the tiled map portion of the Map Definition
+    /// </summary>
     public interface IBaseMapDefinition
     {
+        /// <summary>
+        /// Gets the finite display scales
+        /// </summary>
         IEnumerable<double> FiniteDisplayScale { get; }
 
+        /// <summary>
+        /// Adds the finite display scale.
+        /// </summary>
+        /// <param name="value">The value.</param>
         void AddFiniteDisplayScale(double value);
 
+        /// <summary>
+        /// Removes the finite display scale.
+        /// </summary>
+        /// <param name="value">The value.</param>
         void RemoveFiniteDisplayScale(double value);
 
+        /// <summary>
+        /// Gets the scale count.
+        /// </summary>
+        /// <value>The scale count.</value>
         int ScaleCount { get; }
 
+        /// <summary>
+        /// Removes the scale at the specified index
+        /// </summary>
+        /// <param name="index">The index.</param>
         void RemoveScaleAt(int index);
 
+        /// <summary>
+        /// Gets the scale at the specified index
+        /// </summary>
+        /// <param name="index">The index.</param>
+        /// <returns></returns>
         double GetScaleAt(int index);
 
+        /// <summary>
+        /// Gets the base map layer groups.
+        /// </summary>
+        /// <value>The base map layer groups.</value>
         IEnumerable<IBaseMapGroup> BaseMapLayerGroup { get; }
 
+        /// <summary>
+        /// Gets the group count.
+        /// </summary>
+        /// <value>The group count.</value>
         int GroupCount { get; }
 
+        /// <summary>
+        /// Gets the group at the specified index
+        /// </summary>
+        /// <param name="index">The index.</param>
+        /// <returns></returns>
         IBaseMapGroup GetGroupAt(int index);
 
+        /// <summary>
+        /// Adds the base layer group.
+        /// </summary>
+        /// <param name="name">The name.</param>
+        /// <returns></returns>
         IBaseMapGroup AddBaseLayerGroup(string name);
 
+        /// <summary>
+        /// Removes the base layer group.
+        /// </summary>
+        /// <param name="group">The group.</param>
         void RemoveBaseLayerGroup(IBaseMapGroup group);
 
+        /// <summary>
+        /// Removes all scales.
+        /// </summary>
         void RemoveAllScales();
     }
 
+    /// <summary>
+    /// Base legend element
+    /// </summary>
     public interface IMapLegendElementBase : INotifyPropertyChanged
     {
+        /// <summary>
+        /// Gets or sets the name.
+        /// </summary>
+        /// <value>The name.</value>
         string Name { get; set; }
 
+        /// <summary>
+        /// Gets or sets a value indicating whether [show in legend].
+        /// </summary>
+        /// <value><c>true</c> if [show in legend]; otherwise, <c>false</c>.</value>
         bool ShowInLegend { get; set; }
 
+        /// <summary>
+        /// Gets or sets the legend label.
+        /// </summary>
+        /// <value>The legend label.</value>
         string LegendLabel { get; set; }
 
+        /// <summary>
+        /// Gets or sets a value indicating whether [expand in legend].
+        /// </summary>
+        /// <value><c>true</c> if [expand in legend]; otherwise, <c>false</c>.</value>
         bool ExpandInLegend { get; set; }
     }
 
+    /// <summary>
+    /// Base layer interface
+    /// </summary>
     public interface IBaseMapLayer : IMapLegendElementBase
     {
+        /// <summary>
+        /// Gets or sets the resource id.
+        /// </summary>
+        /// <value>The resource id.</value>
         string ResourceId { get; set; }
 
+        /// <summary>
+        /// Gets or sets a value indicating whether this <see cref="IBaseMapLayer"/> is selectable.
+        /// </summary>
+        /// <value><c>true</c> if selectable; otherwise, <c>false</c>.</value>
         bool Selectable { get; set; }
     }
 
+    /// <summary>
+    /// Tiled map group
+    /// </summary>
     public interface IBaseMapGroup : IMapLegendElementBase
     {
+        /// <summary>
+        /// Gets or sets a value indicating whether this <see cref="IBaseMapGroup"/> is visible.
+        /// </summary>
+        /// <value><c>true</c> if visible; otherwise, <c>false</c>.</value>
         bool Visible { get; set; }
 
+        /// <summary>
+        /// Gets the base map layers.
+        /// </summary>
+        /// <value>The base map layers.</value>
         IEnumerable<IBaseMapLayer> BaseMapLayer { get; }
 
+        /// <summary>
+        /// Adds the layer.
+        /// </summary>
+        /// <param name="layerName">Name of the layer.</param>
+        /// <param name="resourceId">The resource id.</param>
+        /// <returns></returns>
         IBaseMapLayer AddLayer(string layerName, string resourceId);
 
+        /// <summary>
+        /// Removes the base map layer.
+        /// </summary>
+        /// <param name="layer">The layer.</param>
         void RemoveBaseMapLayer(IBaseMapLayer layer);
 
+        /// <summary>
+        /// Moves the specified layer up.
+        /// </summary>
+        /// <param name="layer">The layer.</param>
+        /// <returns></returns>
         int MoveUp(IBaseMapLayer layer);
 
+        /// <summary>
+        /// Moves the specified layer down.
+        /// </summary>
+        /// <param name="layer">The layer.</param>
+        /// <returns></returns>
         int MoveDown(IBaseMapLayer layer);
     }
 
+    /// <summary>
+    /// A dynamic map layer
+    /// </summary>
     public interface IMapLayer : IBaseMapLayer
     {
+        /// <summary>
+        /// Gets or sets a value indicating whether this <see cref="IMapLayer"/> is visible.
+        /// </summary>
+        /// <value><c>true</c> if visible; otherwise, <c>false</c>.</value>
         bool Visible { get; set; }
 
+        /// <summary>
+        /// Gets or sets the group.
+        /// </summary>
+        /// <value>The group.</value>
         string Group { get; set; }
     }
 
+    /// <summary>
+    /// A dynamic map layer group
+    /// </summary>
     public interface IMapLayerGroup : IMapLegendElementBase
     {
+        /// <summary>
+        /// Gets or sets a value indicating whether this <see cref="IMapLayerGroup"/> is visible.
+        /// </summary>
+        /// <value><c>true</c> if visible; otherwise, <c>false</c>.</value>
         bool Visible { get; set; }
 
+        /// <summary>
+        /// Gets or sets the group name. If null, it means this layer doesn't belong to any group
+        /// </summary>
+        /// <value>The group.</value>
         string Group { get; set; }
 
+        /// <summary>
+        /// Gets the parent map definition
+        /// </summary>
+        /// <value>The parent map definition.</value>
         IMapDefinition Parent { get; }
     }
 }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/ObjectFactory.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/ObjectFactory.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/ObjectFactory.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -19,26 +19,36 @@
 #endregion
 using System;
 using System.Collections.Generic;
+using System.Drawing;
 using System.Text;
+using OSGeo.MapGuide.MaestroAPI;
 using OSGeo.MapGuide.MaestroAPI.Resource;
+using OSGeo.MapGuide.MaestroAPI.Services;
+using OSGeo.MapGuide.ObjectModels.ApplicationDefinition;
+using OSGeo.MapGuide.ObjectModels.Common;
+using OSGeo.MapGuide.ObjectModels.DrawingSource;
+using OSGeo.MapGuide.ObjectModels.FeatureSource;
 using OSGeo.MapGuide.ObjectModels.LayerDefinition;
-using OSGeo.MapGuide.ObjectModels.FeatureSource;
+using OSGeo.MapGuide.ObjectModels.LoadProcedure;
 using OSGeo.MapGuide.ObjectModels.MapDefinition;
+using OSGeo.MapGuide.ObjectModels.PrintLayout;
+using OSGeo.MapGuide.ObjectModels.SymbolDefinition;
+using OSGeo.MapGuide.ObjectModels.SymbolLibrary;
 using OSGeo.MapGuide.ObjectModels.WebLayout;
-using OSGeo.MapGuide.ObjectModels.SymbolLibrary;
-using OSGeo.MapGuide.ObjectModels.SymbolDefinition;
-using OSGeo.MapGuide.ObjectModels.ApplicationDefinition;
-using OSGeo.MapGuide.ObjectModels.PrintLayout;
-using OSGeo.MapGuide.ObjectModels.LoadProcedure;
-using OSGeo.MapGuide.ObjectModels.Common;
-using System.Drawing;
-using OSGeo.MapGuide.MaestroAPI.Services;
-using OSGeo.MapGuide.ObjectModels.DrawingSource;
 
-namespace OSGeo.MapGuide.MaestroAPI.ObjectModels
+namespace OSGeo.MapGuide.ObjectModels
 {
+    /// <summary>
+    /// Factory method signature for creating layer definitions
+    /// </summary>
     public delegate ILayerDefinition LayerCreatorFunc(LayerType type);
+    /// <summary>
+    /// Factory method signature for creating load procedures
+    /// </summary>
     public delegate ILoadProcedure LoadProcCreatorFunc();
+    /// <summary>
+    /// Factory method signature for creating web layouts
+    /// </summary>
     public delegate IWebLayout WebLayoutCreatorFunc(string mapDefinitionId);
 
     /// <summary>
@@ -87,36 +97,58 @@
                 new WebLayoutCreatorFunc(OSGeo.MapGuide.ObjectModels.WebLayout_1_0_0.WebLayoutEntryPoint.CreateDefault));
         }
 
+        /// <summary>
+        /// Registers the layer factory method.
+        /// </summary>
+        /// <param name="ver">The ver.</param>
+        /// <param name="method">The method.</param>
         public static void RegisterLayerFactoryMethod(Version ver, LayerCreatorFunc method)
         {
             if (_layerFactories.ContainsKey(ver))
-                throw new ArgumentException("Factory method already registered for version: " + ver); //LOCALIZEME
+                throw new ArgumentException(OSGeo.MapGuide.MaestroAPI.Properties.Resources.FactoryMethodAlreadyRegistered + ver);
 
             _layerFactories[ver] = method;
         }
 
+        /// <summary>
+        /// Registers the load procedure factory method.
+        /// </summary>
+        /// <param name="type">The type.</param>
+        /// <param name="method">The method.</param>
         public static void RegisterLoadProcedureFactoryMethod(LoadType type, LoadProcCreatorFunc method)
         {
             if (_loadProcFactories.ContainsKey(type))
-                throw new ArgumentException("Factory method already registered for load procedure type: " + type); //LOCALIZEME
+                throw new ArgumentException(OSGeo.MapGuide.MaestroAPI.Properties.Resources.LoadProcFactoryMethodAlreadyRegistered + type);
 
             _loadProcFactories[type] = method;
         }
 
+        /// <summary>
+        /// Registers the web layout factory method.
+        /// </summary>
+        /// <param name="version">The version.</param>
+        /// <param name="method">The method.</param>
         public static void RegisterWebLayoutFactoryMethod(Version version, WebLayoutCreatorFunc method)
         {
             if (_wlFactories.ContainsKey(version))
-                throw new ArgumentException("Factory method already registered for version: " + version); //LOCALIZEME
+                throw new ArgumentException(OSGeo.MapGuide.MaestroAPI.Properties.Resources.FactoryMethodAlreadyRegistered + version);
 
             _wlFactories[version] = method;
         }
 
+        /// <summary>
+        /// Creates the web layout.
+        /// </summary>
+        /// <param name="owner">The owner.</param>
+        /// <param name="version">The version.</param>
+        /// <param name="mapDefinitionId">The map definition id.</param>
+        /// <returns></returns>
         public static IWebLayout CreateWebLayout(IServerConnection owner, Version version, string mapDefinitionId)
         {
             Check.NotNull(owner, "owner");
 
             if (!_wlFactories.ContainsKey(version))
-                throw new ArgumentException("Unknown web layout version: " + version.ToString()); //LOCALIZEME
+                throw new ArgumentException(OSGeo.MapGuide.MaestroAPI.Properties.Resources.UnknownWebLayoutVersion + version.ToString());
 
             var wl = _wlFactories[version](mapDefinitionId);
             wl.CurrentConnection = owner;
@@ -124,12 +156,19 @@
             return wl;
         }
 
+        /// <summary>
+        /// Creates the default layer.
+        /// </summary>
+        /// <param name="owner">The owner.</param>
+        /// <param name="type">The type.</param>
+        /// <param name="version">The version.</param>
+        /// <returns></returns>
         public static ILayerDefinition CreateDefaultLayer(IServerConnection owner, LayerType type, Version version)
         {
             Check.NotNull(owner, "owner");
 
             if (!_layerFactories.ContainsKey(version))
-                throw new ArgumentException("Unknown layer version: " + version.ToString()); //LOCALIZEME
+                throw new ArgumentException(OSGeo.MapGuide.MaestroAPI.Properties.Resources.UnknownLayerVersion + version.ToString());
 
             var layer = _layerFactories[version](type);
             layer.CurrentConnection = owner;
@@ -137,31 +176,49 @@
             return layer;
         }
 
+        /// <summary>
+        /// Creates the drawing source.
+        /// </summary>
+        /// <param name="owner">The owner.</param>
+        /// <returns></returns>
         public static IDrawingSource CreateDrawingSource(IServerConnection owner)
         {
             Check.NotNull(owner, "owner");
 
-            return new DrawingSource() 
+            return new OSGeo.MapGuide.ObjectModels.DrawingSource_1_0_0.DrawingSource() 
             { 
                 CurrentConnection = owner,
                 SourceName = string.Empty,
                 CoordinateSpace = string.Empty,
-                Sheet = new System.ComponentModel.BindingList<DrawingSourceSheet>()
+                Sheet = new System.ComponentModel.BindingList<OSGeo.MapGuide.ObjectModels.DrawingSource_1_0_0.DrawingSourceSheet>()
             };
         }
 
+        /// <summary>
+        /// Creates the feature source.
+        /// </summary>
+        /// <param name="owner">The owner.</param>
+        /// <param name="provider">The provider.</param>
+        /// <returns></returns>
         public static IFeatureSource CreateFeatureSource(IServerConnection owner, string provider)
         {
             Check.NotNull(owner, "owner");
 
-            return new FeatureSourceType()
+            return new OSGeo.MapGuide.ObjectModels.FeatureSource_1_0_0.FeatureSourceType()
             {
                 CurrentConnection = owner,
                 Provider = provider,
-                Parameter = new System.ComponentModel.BindingList<NameValuePairType>()
+                Parameter = new System.ComponentModel.BindingList<OSGeo.MapGuide.ObjectModels.FeatureSource_1_0_0.NameValuePairType>()
             };
         }
 
+        /// <summary>
+        /// Creates the feature source.
+        /// </summary>
+        /// <param name="owner">The owner.</param>
+        /// <param name="provider">The provider.</param>
+        /// <param name="connectionString">The connection string.</param>
+        /// <returns></returns>
         public static IFeatureSource CreateFeatureSource(IServerConnection owner, string provider, string connectionString)
         {
             var fs = CreateFeatureSource(owner, provider);
@@ -170,21 +227,34 @@
             return fs;
         }
 
+        /// <summary>
+        /// Creates the map definition.
+        /// </summary>
+        /// <param name="owner">The owner.</param>
+        /// <param name="name">The name.</param>
+        /// <returns></returns>
         public static IMapDefinition CreateMapDefinition(IServerConnection owner, string name)
         {
             Check.NotNull(owner, "owner");
 
-            return new MapDefinition() { 
+            return new OSGeo.MapGuide.ObjectModels.MapDefinition_1_0_0.MapDefinition() { 
                 CurrentConnection = owner,
                 CoordinateSystem = string.Empty,
-                Extents = new Box2DType() { MaxX = 0.0, MaxY = 0.0, MinX = 0.0, MinY = 0.0 },
+                Extents = new OSGeo.MapGuide.ObjectModels.MapDefinition_1_0_0.Box2DType() { MaxX = 0.0, MaxY = 0.0, MinX = 0.0, MinY = 0.0 },
                 Name = name,
                 BackgroundColor = Color.White,
-                MapLayer = new System.ComponentModel.BindingList<MapLayerType>(),
+                MapLayer = new System.ComponentModel.BindingList<OSGeo.MapGuide.ObjectModels.MapDefinition_1_0_0.MapLayerType>(),
                 //MapLayerGroup = new System.ComponentModel.BindingList<MapLayerGroupType>(),
             };
         }
 
+        /// <summary>
+        /// Creates the map definition.
+        /// </summary>
+        /// <param name="owner">The owner.</param>
+        /// <param name="name">The name.</param>
+        /// <param name="coordinateSystemWkt">The coordinate system WKT.</param>
+        /// <returns></returns>
         public static IMapDefinition CreateMapDefinition(IServerConnection owner, string name, string coordinateSystemWkt)
         {
             var map = CreateMapDefinition(owner, name);
@@ -193,6 +263,14 @@
             return map;
         }
 
+        /// <summary>
+        /// Creates the map definition.
+        /// </summary>
+        /// <param name="owner">The owner.</param>
+        /// <param name="name">The name.</param>
+        /// <param name="coordinateSystemWkt">The coordinate system WKT.</param>
+        /// <param name="env">The env.</param>
+        /// <returns></returns>
         public static IMapDefinition CreateMapDefinition(IServerConnection owner, string name, string coordinateSystemWkt, IEnvelope env)
         {
             var map = CreateMapDefinition(owner, name, coordinateSystemWkt);
@@ -201,6 +279,11 @@
             return map;
         }
 
+        /// <summary>
+        /// Creates the simple symbol.
+        /// </summary>
+        /// <param name="owner">The owner.</param>
+        /// <returns></returns>
         public static SimpleSymbolDefinition CreateSimpleSymbol(IServerConnection owner)
         {
             Check.NotNull(owner, "owner");
@@ -208,6 +291,11 @@
             return new SimpleSymbolDefinition() { CurrentConnection = owner };
         }
 
+        /// <summary>
+        /// Creates the compound symbol.
+        /// </summary>
+        /// <param name="owner">The owner.</param>
+        /// <returns></returns>
         public static CompoundSymbolDefinition CreateCompoundSymbol(IServerConnection owner)
         {
             Check.NotNull(owner, "owner");
@@ -215,13 +303,13 @@
             return new CompoundSymbolDefinition() { CurrentConnection = owner };
         }
 
-        public static SymbolLibraryType CreateSymbolLibrary(IServerConnection conn)
-        {
-            return new SymbolLibraryType() { CurrentConnection = conn };
-        }
-
         //TODO: Just deserialize from an embedded resource. The content model for a fusion
         //flexible layout is just too loose to programmatically build reliably.
+        /// <summary>
+        /// Creates the flexible layout.
+        /// </summary>
+        /// <param name="owner">The owner.</param>
+        /// <returns></returns>
         public static ApplicationDefinitionType CreateFlexibleLayout(IServerConnection owner)
         {
             Check.NotNull(owner, "owner");
@@ -244,6 +332,12 @@
             return new System.ComponentModel.BindingList<WidgetSetType>();
         }
 
+        /// <summary>
+        /// Creates the flexible layout.
+        /// </summary>
+        /// <param name="owner">The owner.</param>
+        /// <param name="title">The title.</param>
+        /// <returns></returns>
         public static ApplicationDefinitionType CreateFlexibleLayout(IServerConnection owner, string title)
         {
             Check.NotNull(owner, "owner");
@@ -253,6 +347,11 @@
             return appDef;
         }
 
+        /// <summary>
+        /// Creates the preview flex layout.
+        /// </summary>
+        /// <param name="owner">The owner.</param>
+        /// <returns></returns>
         public static ApplicationDefinitionType CreatePreviewFlexLayout(IServerConnection owner)
         {
             Check.NotNull(owner, "owner");
@@ -296,32 +395,44 @@
             }
 
             if (string.IsNullOrEmpty(url))
-                throw new InvalidOperationException("Could not find template url for template: " + templateName); //LOCALIZEME
+                throw new InvalidOperationException(OSGeo.MapGuide.MaestroAPI.Properties.Resources.TemplateUrlNotFound + templateName);
 
             var appDef = CreateFlexibleLayout(owner, title);
             appDef.TemplateUrl = url;
             return appDef;
         }
 
+        /// <summary>
+        /// Creates the print layout.
+        /// </summary>
+        /// <param name="owner">The owner.</param>
+        /// <returns></returns>
         public static IPrintLayout CreatePrintLayout(IServerConnection owner)
         {
             Check.NotNull(owner, "owner");
 
-            return new PrintLayout()
+            return new OSGeo.MapGuide.ObjectModels.PrintLayout_1_0_0.PrintLayout()
             {
                 CurrentConnection = owner,
-                CustomLogos = new System.ComponentModel.BindingList<PrintLayoutLogo>(),
-                CustomText = new System.ComponentModel.BindingList<PrintLayoutText>(),
-                LayoutProperties = new PrintLayoutLayoutProperties(),
-                PageProperties = new PrintLayoutPageProperties()
+                CustomLogos = new System.ComponentModel.BindingList<OSGeo.MapGuide.ObjectModels.PrintLayout_1_0_0.PrintLayoutLogo>(),
+                CustomText = new System.ComponentModel.BindingList<OSGeo.MapGuide.ObjectModels.PrintLayout_1_0_0.PrintLayoutText>(),
+                LayoutProperties = new OSGeo.MapGuide.ObjectModels.PrintLayout_1_0_0.PrintLayoutLayoutProperties(),
+                PageProperties = new OSGeo.MapGuide.ObjectModels.PrintLayout_1_0_0.PrintLayoutPageProperties()
                 {
-                    BackgroundColor = new PrintLayoutPagePropertiesBackgroundColor()
+                    BackgroundColor = new OSGeo.MapGuide.ObjectModels.PrintLayout_1_0_0.PrintLayoutPagePropertiesBackgroundColor()
                     {
                     }
                 },
             };
         }
 
+        /// <summary>
+        /// Creates the load procedure.
+        /// </summary>
+        /// <param name="owner">The owner.</param>
+        /// <param name="type">The type.</param>
+        /// <param name="fileNames">The file names.</param>
+        /// <returns></returns>
         public static ILoadProcedure CreateLoadProcedure(IServerConnection owner, LoadType type, IEnumerable<string> fileNames)
         {
             var proc = CreateLoadProcedure(owner, type);
@@ -339,10 +450,16 @@
             return proc;
         }
 
+        /// <summary>
+        /// Creates the load procedure.
+        /// </summary>
+        /// <param name="owner">The owner.</param>
+        /// <param name="type">The type.</param>
+        /// <returns></returns>
         public static ILoadProcedure CreateLoadProcedure(IServerConnection owner, LoadType type)
         {
             if (type == LoadType.Dwg || type == LoadType.Raster)
-                throw new NotSupportedException("Unsupported load procedure type"); //LOCALIZEME
+                throw new NotSupportedException(OSGeo.MapGuide.MaestroAPI.Properties.Resources.UnsupportedLoadProcedureType);
 
             if (_loadProcFactories.ContainsKey(type))
             {
@@ -351,7 +468,7 @@
                 return proc;
             }
 
-            throw new InvalidOperationException("Could not create load procedure of type: " + type); //LOCALIZEME
+            throw new InvalidOperationException(OSGeo.MapGuide.MaestroAPI.Properties.Resources.CannotCreateLoadProcedureSubType + type);
         }
 
         /// <summary>
@@ -424,25 +541,37 @@
             };
         }
 
+        /// <summary>
+        /// Creates the feature source extension.
+        /// </summary>
+        /// <returns></returns>
         public static IFeatureSourceExtension CreateFeatureSourceExtension()
         {
-            return new FeatureSourceTypeExtension()
+            return new OSGeo.MapGuide.ObjectModels.FeatureSource_1_0_0.FeatureSourceTypeExtension()
             {
-                CalculatedProperty = new System.ComponentModel.BindingList<CalculatedPropertyType>(),
-                AttributeRelate = new System.ComponentModel.BindingList<AttributeRelateType>()
+                CalculatedProperty = new System.ComponentModel.BindingList<OSGeo.MapGuide.ObjectModels.FeatureSource_1_0_0.CalculatedPropertyType>(),
+                AttributeRelate = new System.ComponentModel.BindingList<OSGeo.MapGuide.ObjectModels.FeatureSource_1_0_0.AttributeRelateType>()
             };
         }
 
+        /// <summary>
+        /// Creates the calculated property.
+        /// </summary>
+        /// <returns></returns>
         public static ICalculatedProperty CreateCalculatedProperty()
         {
-            return new CalculatedPropertyType();
+            return new OSGeo.MapGuide.ObjectModels.FeatureSource_1_0_0.CalculatedPropertyType();
         }
 
+        /// <summary>
+        /// Creates the attribute relation.
+        /// </summary>
+        /// <returns></returns>
         public static IAttributeRelation CreateAttributeRelation()
         {
-            IAttributeRelation rel = new AttributeRelateType() 
+            IAttributeRelation rel = new OSGeo.MapGuide.ObjectModels.FeatureSource_1_0_0.AttributeRelateType() 
             { 
-                RelateProperty = new System.ComponentModel.BindingList<RelatePropertyType>(),
+                RelateProperty = new System.ComponentModel.BindingList<OSGeo.MapGuide.ObjectModels.FeatureSource_1_0_0.RelatePropertyType>(),
             };
             rel.RelateType = RelateTypeEnum.LeftOuter;
             rel.ForceOneToOne = false;

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/PrintLayout.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/PrintLayout.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/PrintLayout.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,8 +23,11 @@
 using OSGeo.MapGuide.MaestroAPI.Resource;
 using System.Xml.Serialization;
 using OSGeo.MapGuide.MaestroAPI;
+using OSGeo.MapGuide.ObjectModels.PrintLayout;
 
-namespace OSGeo.MapGuide.ObjectModels.PrintLayout
+#pragma warning disable 1591, 0114, 0108
+
+namespace OSGeo.MapGuide.ObjectModels.PrintLayout_1_0_0
 {
     partial class PrintLayout : IPrintLayout
     {

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/PrintLayoutInterfaces.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/PrintLayoutInterfaces.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/PrintLayoutInterfaces.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -26,89 +26,292 @@
 
 namespace OSGeo.MapGuide.ObjectModels.PrintLayout
 {
+    /// <summary>
+    /// Print Layouts
+    /// </summary>
     public interface IPrintLayout : IResource
     {
+        /// <summary>
+        /// Gets the page properties.
+        /// </summary>
+        /// <value>The page properties.</value>
         IPrintLayoutPageProperties PageProperties { get; }
+        /// <summary>
+        /// Gets the layout properties.
+        /// </summary>
+        /// <value>The layout properties.</value>
         IPrintLayoutProperties LayoutProperties { get; }
 
+        /// <summary>
+        /// Creates the size of the logo.
+        /// </summary>
+        /// <param name="width">The width.</param>
+        /// <param name="height">The height.</param>
+        /// <param name="units">The units.</param>
+        /// <returns></returns>
         ISize CreateLogoSize(float width, float height, string units);
+        /// <summary>
+        /// Creates the font.
+        /// </summary>
+        /// <param name="name">The name.</param>
+        /// <param name="height">The height.</param>
+        /// <param name="units">The units.</param>
+        /// <returns></returns>
         IFont CreateFont(string name, float height, string units);
+        /// <summary>
+        /// Creates the logo position.
+        /// </summary>
+        /// <param name="left">The left.</param>
+        /// <param name="bottom">The bottom.</param>
+        /// <param name="units">The units.</param>
+        /// <returns></returns>
         IPosition CreateLogoPosition(float left, float bottom, string units);
+        /// <summary>
+        /// Creates the text position.
+        /// </summary>
+        /// <param name="left">The left.</param>
+        /// <param name="bottom">The bottom.</param>
+        /// <param name="units">The units.</param>
+        /// <returns></returns>
         IPosition CreateTextPosition(float left, float bottom, string units);
 
+        /// <summary>
+        /// Gets the custom logos.
+        /// </summary>
+        /// <value>The custom logos.</value>
         IEnumerable<ILogo> CustomLogos { get; }
+        /// <summary>
+        /// Creates the logo.
+        /// </summary>
+        /// <param name="symbolLibraryId">The symbol library id.</param>
+        /// <param name="symbolName">Name of the symbol.</param>
+        /// <param name="size">The size.</param>
+        /// <param name="position">The position.</param>
+        /// <returns></returns>
         ILogo CreateLogo(string symbolLibraryId, string symbolName, ISize size, IPosition position);
+        /// <summary>
+        /// Adds the logo.
+        /// </summary>
+        /// <param name="logo">The logo.</param>
         void AddLogo(ILogo logo);
+        /// <summary>
+        /// Removes the logo.
+        /// </summary>
+        /// <param name="logo">The logo.</param>
         void RemoveLogo(ILogo logo);
 
+        /// <summary>
+        /// Gets the custom text elements.
+        /// </summary>
+        /// <value>The custom text elements.</value>
         IEnumerable<IText> CustomText { get; }
+        /// <summary>
+        /// Creates the text element.
+        /// </summary>
+        /// <param name="value">The value.</param>
+        /// <param name="font">The font.</param>
+        /// <param name="text">The text.</param>
+        /// <returns></returns>
         IText CreateText(string value, IFont font, IPosition text);
+        /// <summary>
+        /// Adds the text.
+        /// </summary>
+        /// <param name="text">The text.</param>
         void AddText(IText text);
+        /// <summary>
+        /// Removes the text.
+        /// </summary>
+        /// <param name="text">The text.</param>
         void RemoveText(IText text);
     }
 
+    /// <summary>
+    /// Page properties of the print layout
+    /// </summary>
     public interface IPrintLayoutPageProperties : INotifyPropertyChanged
     {
+        /// <summary>
+        /// Gets or sets the color of the background.
+        /// </summary>
+        /// <value>The color of the background.</value>
         Color BackgroundColor { get; set; }
     }
 
+    /// <summary>
+    /// Layout properties of the print layout
+    /// </summary>
     public interface IPrintLayoutProperties : INotifyPropertyChanged
     {
+        /// <summary>
+        /// Gets or sets a value indicating whether [show title].
+        /// </summary>
+        /// <value><c>true</c> if [show title]; otherwise, <c>false</c>.</value>
         bool ShowTitle { get; set; }
 
+        /// <summary>
+        /// Gets or sets a value indicating whether [show legend].
+        /// </summary>
+        /// <value><c>true</c> if [show legend]; otherwise, <c>false</c>.</value>
         bool ShowLegend { get; set; }
 
+        /// <summary>
+        /// Gets or sets a value indicating whether [show scale bar].
+        /// </summary>
+        /// <value><c>true</c> if [show scale bar]; otherwise, <c>false</c>.</value>
         bool ShowScaleBar { get; set; }
 
+        /// <summary>
+        /// Gets or sets a value indicating whether [show north arrow].
+        /// </summary>
+        /// <value><c>true</c> if [show north arrow]; otherwise, <c>false</c>.</value>
         bool ShowNorthArrow { get; set; }
 
+        /// <summary>
+        /// Gets or sets a value indicating whether [show URL].
+        /// </summary>
+        /// <value><c>true</c> if [show URL]; otherwise, <c>false</c>.</value>
         bool ShowURL { get; set; }
 
+        /// <summary>
+        /// Gets or sets a value indicating whether [show date time].
+        /// </summary>
+        /// <value><c>true</c> if [show date time]; otherwise, <c>false</c>.</value>
         bool ShowDateTime { get; set; }
 
+        /// <summary>
+        /// Gets or sets a value indicating whether [show custom logos].
+        /// </summary>
+        /// <value><c>true</c> if [show custom logos]; otherwise, <c>false</c>.</value>
         bool ShowCustomLogos { get; set; }
 
+        /// <summary>
+        /// Gets or sets a value indicating whether [show custom text].
+        /// </summary>
+        /// <value><c>true</c> if [show custom text]; otherwise, <c>false</c>.</value>
         bool ShowCustomText { get; set; }
     }
 
+    /// <summary>
+    /// Represents a position
+    /// </summary>
     public interface IPosition : INotifyPropertyChanged
     {
+        /// <summary>
+        /// Gets or sets the left margin.
+        /// </summary>
+        /// <value>The left margin.</value>
         float Left { get; set; }
+        /// <summary>
+        /// Gets or sets the bottom margin.
+        /// </summary>
+        /// <value>The bottom margin.</value>
         float Bottom { get; set; }
+        /// <summary>
+        /// Gets or sets the units.
+        /// </summary>
+        /// <value>The units.</value>
         string Units { get; set; }
     }
 
+    /// <summary>
+    /// Represents a size
+    /// </summary>
     public interface ISize : INotifyPropertyChanged
     {
+        /// <summary>
+        /// Gets or sets the width.
+        /// </summary>
+        /// <value>The width.</value>
         float Width { get; set; }
+        /// <summary>
+        /// Gets or sets the height.
+        /// </summary>
+        /// <value>The height.</value>
         float Height { get; set; }
+        /// <summary>
+        /// Gets or sets the units.
+        /// </summary>
+        /// <value>The units.</value>
         string Units { get; set; }
     }
 
+    /// <summary>
+    /// Represents a logo
+    /// </summary>
     public interface ILogo : INotifyPropertyChanged
     {
+        /// <summary>
+        /// Gets the position.
+        /// </summary>
+        /// <value>The position.</value>
         IPosition Position { get; }
+        /// <summary>
+        /// Gets or sets the resource id.
+        /// </summary>
+        /// <value>The resource id.</value>
         string ResourceId { get; set; }
+        /// <summary>
+        /// Gets or sets the name.
+        /// </summary>
+        /// <value>The name.</value>
         string Name { get; set; }
+        /// <summary>
+        /// Gets the size.
+        /// </summary>
+        /// <value>The size.</value>
         ISize Size { get; }
+        /// <summary>
+        /// Gets or sets the rotation.
+        /// </summary>
+        /// <value>The rotation.</value>
         float? Rotation { get; set; }
     }
 
+    /// <summary>
+    /// Represents a font
+    /// </summary>
     public interface IFont : INotifyPropertyChanged
     {
+        /// <summary>
+        /// Gets or sets the name.
+        /// </summary>
+        /// <value>The name.</value>
         string Name { get; set; }
 
+        /// <summary>
+        /// Gets or sets the height.
+        /// </summary>
+        /// <value>The height.</value>
         float Height { get; set; }
 
+        /// <summary>
+        /// Gets or sets the units.
+        /// </summary>
+        /// <value>The units.</value>
         string Units { get; set; }
     }
 
+    /// <summary>
+    /// Represents a text element
+    /// </summary>
     public interface IText : INotifyPropertyChanged
     {
+        /// <summary>
+        /// Gets the position.
+        /// </summary>
+        /// <value>The position.</value>
         IPosition Position { get; }
 
+        /// <summary>
+        /// Gets the font.
+        /// </summary>
+        /// <value>The font.</value>
         IFont Font { get; }
 
+        /// <summary>
+        /// Gets or sets the value.
+        /// </summary>
+        /// <value>The value.</value>
         string Value { get; set; }
     }
 }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/ResourceItems.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/ResourceItems.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/ResourceItems.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,27 +24,10 @@
 using System.Xml.Serialization;
 using OSGeo.MapGuide.MaestroAPI;
 
+#pragma warning disable 1591, 0114, 0108
+
 namespace OSGeo.MapGuide.ObjectModels.Common
 {
-    public interface IRepositoryItem
-    {
-        string Name { get; }
-
-        string ResourceId { get; }
-
-        ResourceTypes ResourceType { get; }
-
-        bool IsFolder { get; }
-
-        bool HasChildren { get; }
-
-        string Owner { get; }
-
-        DateTime CreatedDate { get; }
-
-        DateTime ModifiedDate { get; }
-    }
-
     partial class ResourceList
     {
         [XmlIgnore]

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/ResourceList.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/ResourceList.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/ResourceList.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,6 +23,8 @@
 using System.Collections.Specialized;
 using System.Xml.Serialization;
 
+#pragma warning disable 1591, 0114, 0108
+
 namespace OSGeo.MapGuide.ObjectModels.Common
 {
     partial class ResourceSecurityTypeGroups

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/ResourcePackageManifest.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/ResourcePackageManifest.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/ResourcePackageManifest.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -6,6 +6,11 @@
 {
     partial class ResourcePackageManifestOperationsOperationParameters
     {
+        /// <summary>
+        /// Gets the value of the specified parameter
+        /// </summary>
+        /// <param name="name"></param>
+        /// <returns></returns>
         public string GetParameterValue(string name)
         {
             if (this.parameterField != null)
@@ -21,6 +26,11 @@
             return null;
         }
 
+        /// <summary>
+        /// Sets the value of the specified parameter
+        /// </summary>
+        /// <param name="name"></param>
+        /// <param name="value"></param>
         public void SetParameterValue(string name, string value)
         {
             if (this.parameterField == null)

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolDefinition.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolDefinition.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolDefinition.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,6 +24,8 @@
 using System.Xml.Serialization;
 using OSGeo.MapGuide.MaestroAPI;
 
+#pragma warning disable 1591, 0114, 0108
+
 namespace OSGeo.MapGuide.ObjectModels.SymbolDefinition
 {
     partial class SimpleSymbolDefinition : IResource

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolInterfaces.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolInterfaces.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolInterfaces.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,6 +24,9 @@
 
 namespace OSGeo.MapGuide.ObjectModels.SymbolDefinition
 {
+    /// <summary>
+    /// Defines the type of symbol instances
+    /// </summary>
     public enum SymbolInstanceType
     {
         /// <summary>
@@ -45,46 +48,104 @@
     /// </summary>
     public interface ISymbolInstance
     {
+        /// <summary>
+        /// Gets or sets the symbol reference
+        /// </summary>
         ISymbolInstanceReference Reference { get; set; }
 
+        /// <summary>
+        /// Gets the parameter overrides for this symbol
+        /// </summary>
         IParameterOverrideCollection ParameterOverrides { get; }
 
+        /// <summary>
+        /// Gets or sets the X scale
+        /// </summary>
         double? ScaleX { get; set; }
 
+        /// <summary>
+        /// Gets or sets the Y scale
+        /// </summary>
         double? ScaleY { get; set; }
 
+        /// <summary>
+        /// Gets or sets the X insertion offset
+        /// </summary>
         double? InsertionOffsetX { get; set; }
 
+        /// <summary>
+        /// Gets or sets the Y insertion offset
+        /// </summary>
         double? InsertionOffsetY { get; set; }
 
+        /// <summary>
+        /// Gets or sets the size context
+        /// </summary>
         SizeContextType SizeContext { get; set; }
 
+        /// <summary>
+        /// Gets or sets whether to draw this instance last
+        /// </summary>
         bool? DrawLast { get; set; }
 
+        /// <summary>
+        /// Gets or sets whether to check the exclusion region
+        /// </summary>
         bool? CheckExclusionRegion { get; set; }
 
+        /// <summary>
+        /// Gets or sets whether to add this instance to the exclusion region
+        /// </summary>
         bool? AddToExclusionRegion { get; set; }
 
+        /// <summary>
+        /// Gets or sets the position algorithm
+        /// </summary>
         string PositionAlgorithm { get; set; }
     }
 
+    /// <summary>
+    /// Represents a symbol instance reference
+    /// </summary>
     public interface ISymbolInstanceReference
     {
+        /// <summary>
+        /// Gets the type
+        /// </summary>
         SymbolInstanceType Type { get; }
     }
 
+    /// <summary>
+    /// Represents a symbol instance reference by a resource id
+    /// </summary>
     public interface ISymbolLibraryReference : ISymbolInstanceReference
     {
+        /// <summary>
+        /// Gets or sets the resource id.
+        /// </summary>
+        /// <value>The resource id.</value>
         string ResourceId { get; set; }
     }
 
+    /// <summary>
+    /// Represents a symbol instance reference by a inline definition
+    /// </summary>
     public interface IInlineSimpleSymbolReference : ISymbolInstanceReference
     {
+        /// <summary>
+        /// Gets or sets the inline definition
+        /// </summary>
         ISimpleSymbolDefinition SimpleSymbolDefinition { get; set; } 
     }
 
+    /// <summary>
+    /// Represents a symbol instance reference by a inline definition
+    /// </summary>
     public interface IInlineCompoundSymbolReference : ISymbolInstanceReference
     {
+        /// <summary>
+        /// Gets or sets the inline definition
+        /// </summary>
         ICompoundSymbolDefinition CompoundSymbolDefinition { get; set; }
     }
 
@@ -95,36 +156,94 @@
     /// </summary>
     public interface ISymbolDefinitionBase
     {
+        /// <summary>
+        /// Gets or sets the name.
+        /// </summary>
+        /// <value>The name.</value>
         string Name { get; set; }
 
+        /// <summary>
+        /// Gets or sets the description.
+        /// </summary>
+        /// <value>The description.</value>
         string Description { get; set; }
     }
 
+    /// <summary>
+    /// Represents a simple symbol definition
+    /// </summary>
     public interface ISimpleSymbolDefinition : ISymbolDefinitionBase
     {
+        /// <summary>
+        /// Gets the graphics.
+        /// </summary>
+        /// <value>The graphics.</value>
         IEnumerable<IGraphics> Graphics { get; }
 
+        /// <summary>
+        /// Adds the graphics.
+        /// </summary>
+        /// <param name="graphics">The graphics.</param>
         void AddGraphics(IGraphics graphics);
 
+        /// <summary>
+        /// Removes the graphics.
+        /// </summary>
+        /// <param name="graphics">The graphics.</param>
         void RemoveGraphics(IGraphics graphics);
 
+        /// <summary>
+        /// Gets or sets the resize box.
+        /// </summary>
+        /// <value>The resize box.</value>
         IResizeBox ResizeBox { get; set; }
 
+        /// <summary>
+        /// Gets or sets the point usage.
+        /// </summary>
+        /// <value>The point usage.</value>
         IPointUsage PointUsage { get; set; }
 
+        /// <summary>
+        /// Gets or sets the line usage.
+        /// </summary>
+        /// <value>The line usage.</value>
         ILineUsage LineUsage { get; set; }
 
+        /// <summary>
+        /// Gets or sets the area usage.
+        /// </summary>
+        /// <value>The area usage.</value>
         IAreaUsage AreaUsage { get; set; }
 
+        /// <summary>
+        /// Gets the parameter definition.
+        /// </summary>
+        /// <value>The parameter definition.</value>
         IParameterDefinition ParameterDefinition { get; }
     }
 
+    /// <summary>
+    /// Represents a compound symbol definition
+    /// </summary>
     public interface ICompoundSymbolDefinition : ISymbolDefinitionBase
     {
+        /// <summary>
+        /// Gets the simple symbols.
+        /// </summary>
+        /// <value>The simple symbols.</value>
         IEnumerable<ISimpleSymbolReferenceBase> SimpleSymbol { get; }
 
+        /// <summary>
+        /// Adds the simple symbol.
+        /// </summary>
+        /// <param name="sym">The sym.</param>
         void AddSimpleSymbol(ISimpleSymbolReferenceBase sym);
 
+        /// <summary>
+        /// Removes the simple symbol.
+        /// </summary>
+        /// <param name="sym">The sym.</param>
         void RemoveSimpleSymbol(ISimpleSymbolReferenceBase sym);
     }
 
@@ -133,10 +252,22 @@
     /// </summary>
     public interface IGraphics
     {
+        /// <summary>
+        /// Gets the elements.
+        /// </summary>
+        /// <value>The elements.</value>
         IEnumerable<IGraphicBase> Elements { get; }
 
+        /// <summary>
+        /// Adds the graphic element.
+        /// </summary>
+        /// <param name="graphics">The graphics.</param>
         void AddGraphicElement(IGraphicBase graphics);
 
+        /// <summary>
+        /// Removes the graphic element.
+        /// </summary>
+        /// <param name="graphics">The graphics.</param>
         void RemoveGraphicElement(IGraphicBase graphics);
     }
 
@@ -171,6 +302,9 @@
         string GrowControl { get; set; }
     }
 
+    /// <summary>
+    /// Base usage interface
+    /// </summary>
     public interface IUsageBase
     {
         /// <summary>
@@ -200,44 +334,117 @@
         double OriginOffsetY { get; set; }
     }
 
+    /// <summary>
+    /// Represents line usage
+    /// </summary>
     public interface ILineUsage : IUsageBase
     {
+        /// <summary>
+        /// Gets or sets the units control.
+        /// </summary>
+        /// <value>The units control.</value>
         string UnitsControl { get; set; }
 
+        /// <summary>
+        /// Gets or sets the vertex control.
+        /// </summary>
+        /// <value>The vertex control.</value>
         string VertexControl { get; set; }
 
+        /// <summary>
+        /// Gets or sets the start offset.
+        /// </summary>
+        /// <value>The start offset.</value>
         double? StartOffset { get; set; }
 
+        /// <summary>
+        /// Gets or sets the end offset.
+        /// </summary>
+        /// <value>The end offset.</value>
         double? EndOffset { get; set; }
 
+        /// <summary>
+        /// Gets or sets the repeat value
+        /// </summary>
+        /// <value>The repeat value.</value>
         double? Repeat { get; set; }
 
+        /// <summary>
+        /// Gets or sets the vertex angle limit.
+        /// </summary>
+        /// <value>The vertex angle limit.</value>
         double? VertexAngleLimit { get; set; }
 
+        /// <summary>
+        /// Gets or sets the vertex join.
+        /// </summary>
+        /// <value>The vertex join.</value>
         string VertexJoin { get; set; }
 
+        /// <summary>
+        /// Gets or sets the vertex miter limit.
+        /// </summary>
+        /// <value>The vertex miter limit.</value>
         string VertexMiterLimit { get; set; }
 
+        /// <summary>
+        /// Gets or sets the default path.
+        /// </summary>
+        /// <value>The default path.</value>
         IPath DefaultPath { get; set; }
     }
 
+    /// <summary>
+    /// Defines area usage
+    /// </summary>
     public interface IAreaUsage : IUsageBase
     {
+        /// <summary>
+        /// Gets or sets the origin control.
+        /// </summary>
+        /// <value>The origin control.</value>
         string OriginControl { get; set; }
 
+        /// <summary>
+        /// Gets or sets the clipping control.
+        /// </summary>
+        /// <value>The clipping control.</value>
         string ClippingControl { get; set; }
 
+        /// <summary>
+        /// Gets or sets the X origin.
+        /// </summary>
+        /// <value>The X origin.</value>
         double? OriginX { get; set; }
 
+        /// <summary>
+        /// Gets or sets the Y origin.
+        /// </summary>
+        /// <value>The Y origin.</value>
         double? OriginY { get; set; }
 
+        /// <summary>
+        /// Gets or sets the X repeat value.
+        /// </summary>
+        /// <value>The X repeat value.</value>
         double? RepeatX { get; set; }
 
+        /// <summary>
+        /// Gets or sets the Y repeat value
+        /// </summary>
+        /// <value>The Y repeat value.</value>
         double? RepeatY { get; set; }
 
+        /// <summary>
+        /// Gets or sets the width of the buffer.
+        /// </summary>
+        /// <value>The width of the buffer.</value>
         double? BufferWidth { get; set; }
     }
 
+    /// <summary>
+    /// 
+    /// </summary>
     [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
     [System.SerializableAttribute()]
     public enum DataType
@@ -259,6 +466,9 @@
         Color,
     }
 
+    /// <summary>
+    /// 
+    /// </summary>
     [System.SerializableAttribute()]
     public enum DataType2
     {
@@ -357,258 +567,704 @@
         RepeatY,
     }
 
+    /// <summary>
+    /// Defines a parameter
+    /// </summary>
     public interface IParameter
     {
+        /// <summary>
+        /// Gets or sets the identifier.
+        /// </summary>
+        /// <value>The identifier.</value>
         string Identifier { get; set; }
 
+        /// <summary>
+        /// Gets or sets the default value.
+        /// </summary>
+        /// <value>The default value.</value>
         string DefaultValue { get; set; }
 
+        /// <summary>
+        /// Gets or sets the display name.
+        /// </summary>
+        /// <value>The display name.</value>
         string DisplayName { get; set; }
 
+        /// <summary>
+        /// Gets or sets the description.
+        /// </summary>
+        /// <value>The description.</value>
         string Description { get; set; }
 
+        /// <summary>
+        /// Gets or sets the type of the data.
+        /// </summary>
+        /// <value>The type of the data.</value>
         DataType DataType { get; set; }
     }
 
+    /// <summary>
+    /// A parameter definition
+    /// </summary>
     public interface IParameterDefinition
     {
+        /// <summary>
+        /// Gets the parameters.
+        /// </summary>
+        /// <value>The parameters.</value>
         IEnumerable<IParameter> Parameter { get; }
 
+        /// <summary>
+        /// Adds the parameter.
+        /// </summary>
+        /// <param name="param">The param.</param>
         void AddParameter(IParameter param);
 
+        /// <summary>
+        /// Removes the parameter.
+        /// </summary>
+        /// <param name="param">The param.</param>
         void RemoveParameter(IParameter param);
     }
 
+    /// <summary>
+    /// Represents a simple symbol reference
+    /// </summary>
     public interface ISimpleSymbolReferenceBase
     {
+        /// <summary>
+        /// Gets the type.
+        /// </summary>
+        /// <value>The type.</value>
         SimpleSymbolReferenceType Type { get; }
 
+        /// <summary>
+        /// Gets or sets the rendering pass.
+        /// </summary>
+        /// <value>The rendering pass.</value>
         string RenderingPass { get; set; }
     }
 
+    /// <summary>
+    /// Represents a simple symbol reference by resource id
+    /// </summary>
     public interface ISimpleSymbolLibraryReference : ISimpleSymbolReferenceBase
     {
+        /// <summary>
+        /// Gets or sets the resource id.
+        /// </summary>
+        /// <value>The resource id.</value>
         string ResourceId { get; set; }
     }
 
+    /// <summary>
+    /// Represents a simple symbol reference by inline definition
+    /// </summary>
     public interface ISimpleSymbolInlineReference : ISimpleSymbolReferenceBase
     {
+        /// <summary>
+        /// Gets or sets the simple symbol definition.
+        /// </summary>
+        /// <value>The simple symbol definition.</value>
         ISimpleSymbolDefinition SimpleSymbolDefinition { get; set; }
     }
 
+    /// <summary>
+    /// The type of simple symbol reference
+    /// </summary>
     public enum SimpleSymbolReferenceType
     {
+        /// <summary>
+        /// External resource id reference
+        /// </summary>
         Library,
+        /// <summary>
+        /// Inlined definition
+        /// </summary>
         Inline
     }
 
+    /// <summary>
+    /// Represents the base interface of all graphics
+    /// </summary>
     public interface IGraphicBase
     {
+        /// <summary>
+        /// Gets or sets the resize control.
+        /// </summary>
+        /// <value>The resize control.</value>
         string ResizeControl { get; set; }
     }
 
+    /// <summary>
+    /// A path
+    /// </summary>
     public interface IPath : IGraphicBase
     {
+        /// <summary>
+        /// Gets or sets the geometry.
+        /// </summary>
+        /// <value>The geometry.</value>
         string Geometry { get; set; }
 
+        /// <summary>
+        /// Gets or sets the color of the fill.
+        /// </summary>
+        /// <value>The color of the fill.</value>
         string FillColor { get; set; }
 
+        /// <summary>
+        /// Gets or sets the color of the line.
+        /// </summary>
+        /// <value>The color of the line.</value>
         string LineColor { get; set; }
 
+        /// <summary>
+        /// Gets or sets the line weight.
+        /// </summary>
+        /// <value>The line weight.</value>
         double? LineWeight { get; set; }
 
+        /// <summary>
+        /// Gets or sets the line weight scalable.
+        /// </summary>
+        /// <value>The line weight scalable.</value>
         bool? LineWeightScalable { get; set; }
 
+        /// <summary>
+        /// Gets or sets the line cap.
+        /// </summary>
+        /// <value>The line cap.</value>
         string LineCap { get; set; }
 
+        /// <summary>
+        /// Gets or sets the line join.
+        /// </summary>
+        /// <value>The line join.</value>
         string LineJoin { get; set; }
 
+        /// <summary>
+        /// Gets or sets the line miter limit.
+        /// </summary>
+        /// <value>The line miter limit.</value>
         double? LineMiterLimit { get; set; }
     }
 
+    /// <summary>
+    /// An image reference
+    /// </summary>
     public interface IImageReference
     {
+        /// <summary>
+        /// Gets or sets the resource id.
+        /// </summary>
+        /// <value>The resource id.</value>
         string ResourceId { get; set; }
 
+        /// <summary>
+        /// Gets or sets the name of the library item.
+        /// </summary>
+        /// <value>The name of the library item.</value>
         string LibraryItemName { get; set; }
     }
 
+    /// <summary>
+    /// The type of image
+    /// </summary>
     public enum ImageType
     {
+        /// <summary>
+        /// 
+        /// </summary>
         Reference,
+        /// <summary>
+        /// 
+        /// </summary>
         Inline
     }
 
+    /// <summary>
+    /// An image graphic
+    /// </summary>
     public interface IImageBase : IGraphicBase
     {
+        /// <summary>
+        /// Gets the type.
+        /// </summary>
+        /// <value>The type.</value>
         ImageType Type { get; }
 
+        /// <summary>
+        /// Gets or sets the size X.
+        /// </summary>
+        /// <value>The size X.</value>
         double? SizeX { get; set; }
 
+        /// <summary>
+        /// Gets or sets the size Y.
+        /// </summary>
+        /// <value>The size Y.</value>
         double? SizeY { get; set; }
 
+        /// <summary>
+        /// Gets or sets the size scalable.
+        /// </summary>
+        /// <value>The size scalable.</value>
         bool? SizeScalable { get; set; }
 
+        /// <summary>
+        /// Gets or sets the angle.
+        /// </summary>
+        /// <value>The angle.</value>
         double? Angle { get; set; }
 
+        /// <summary>
+        /// Gets or sets the position X.
+        /// </summary>
+        /// <value>The position X.</value>
         double? PositionX { get; set; }
 
+        /// <summary>
+        /// Gets or sets the position Y.
+        /// </summary>
+        /// <value>The position Y.</value>
         double? PositionY { get; set; }
     }
 
+    /// <summary>
+    /// Represents an inline image
+    /// </summary>
     public interface IInlineImage : IImageBase
     {
+        /// <summary>
+        /// Gets or sets the content.
+        /// </summary>
+        /// <value>The content.</value>
         byte[] Content { get; set; }
     }
 
+    /// <summary>
+    /// Represents an image refrence
+    /// </summary>
     public interface IImageReferenceImage : IImageBase
     {
+        /// <summary>
+        /// Gets or sets the reference.
+        /// </summary>
+        /// <value>The reference.</value>
         IImageReference Reference { get; set; }
     }
 
+    /// <summary>
+    /// A text frame
+    /// </summary>
     public interface ITextFrame
     {
+        /// <summary>
+        /// Gets or sets the color of the line.
+        /// </summary>
+        /// <value>The color of the line.</value>
         string LineColor { get; set; }
 
+        /// <summary>
+        /// Gets or sets the color of the fill.
+        /// </summary>
+        /// <value>The color of the fill.</value>
         string FillColor { get; set; }
 
+        /// <summary>
+        /// Gets or sets the offset X.
+        /// </summary>
+        /// <value>The offset X.</value>
         double? OffsetX { get; set; }
 
+        /// <summary>
+        /// Gets or sets the offset Y.
+        /// </summary>
+        /// <value>The offset Y.</value>
         double? OffsetY { get; set; }
     }
 
+    /// <summary>
+    /// Text graphics
+    /// </summary>
     public interface IText : IGraphicBase
     {
+        /// <summary>
+        /// Gets or sets the content.
+        /// </summary>
+        /// <value>The content.</value>
         string Content { get; set; }
 
+        /// <summary>
+        /// Gets or sets the name of the font.
+        /// </summary>
+        /// <value>The name of the font.</value>
         string FontName { get; set; }
 
+        /// <summary>
+        /// Gets or sets the bold.
+        /// </summary>
+        /// <value>The bold.</value>
         bool? Bold { get; set; }
 
+        /// <summary>
+        /// Gets or sets the italic.
+        /// </summary>
+        /// <value>The italic.</value>
         bool? Italic { get; set; }
 
+        /// <summary>
+        /// Gets or sets the underlined.
+        /// </summary>
+        /// <value>The underlined.</value>
         bool? Underlined { get; set; }
 
+        /// <summary>
+        /// Gets or sets the height.
+        /// </summary>
+        /// <value>The height.</value>
         double? Height { get; set; }
 
+        /// <summary>
+        /// Gets or sets the height scalable.
+        /// </summary>
+        /// <value>The height scalable.</value>
         bool? HeightScalable { get; set; }
 
+        /// <summary>
+        /// Gets or sets the angle.
+        /// </summary>
+        /// <value>The angle.</value>
         double? Angle { get; set; }
 
+        /// <summary>
+        /// Gets or sets the position X.
+        /// </summary>
+        /// <value>The position X.</value>
         double? PositionX { get; set; }
 
+        /// <summary>
+        /// Gets or sets the position Y.
+        /// </summary>
+        /// <value>The position Y.</value>
         double? PositionY { get; set; }
 
+        /// <summary>
+        /// Gets or sets the horizontal alignment.
+        /// </summary>
+        /// <value>The horizontal alignment.</value>
         string HorizontalAlignment { get; set; }
 
+        /// <summary>
+        /// Gets or sets the vertical alignment.
+        /// </summary>
+        /// <value>The vertical alignment.</value>
         string VerticalAlignment { get; set; }
 
+        /// <summary>
+        /// Gets or sets the justification.
+        /// </summary>
+        /// <value>The justification.</value>
         string Justification { get; set; }
 
+        /// <summary>
+        /// Gets or sets the line spacing.
+        /// </summary>
+        /// <value>The line spacing.</value>
         double? LineSpacing { get; set; }
 
+        /// <summary>
+        /// Gets or sets the color of the text.
+        /// </summary>
+        /// <value>The color of the text.</value>
         string TextColor { get; set; }
 
+        /// <summary>
+        /// Gets or sets the color of the ghost.
+        /// </summary>
+        /// <value>The color of the ghost.</value>
         string GhostColor { get; set; }
 
+        /// <summary>
+        /// Gets or sets the frame.
+        /// </summary>
+        /// <value>The frame.</value>
         ITextFrame Frame { get; set; }
     }
 
+    /// <summary>
+    /// The possible values for grow control
+    /// </summary>
     public enum GrowControl
     {
+        /// <summary>
+        /// 
+        /// </summary>
         GrowInX,
+        /// <summary>
+        /// 
+        /// </summary>
         GrowInY,
+        /// <summary>
+        /// 
+        /// </summary>
         GrowInXY,
+        /// <summary>
+        /// 
+        /// </summary>
         GrowInXYMaintainAspect,
     }
 
+    /// <summary>
+    /// The types of angle control
+    /// </summary>
     public enum AngleControl
     {
+        /// <summary>
+        /// 
+        /// </summary>
         FromAngle,
+        /// <summary>
+        /// 
+        /// </summary>
         FromGeometry,
     }
 
+    /// <summary>
+    /// The types of units control
+    /// </summary>
     public enum UnitsControl
     {
+        /// <summary>
+        /// 
+        /// </summary>
         Absolute,
+        /// <summary>
+        /// 
+        /// </summary>
         Parametric,
     }
 
+    /// <summary>
+    /// The types of vertex control
+    /// </summary>
     public enum VertexControl
     {
+        /// <summary>
+        /// 
+        /// </summary>
         OverlapNone,
+        /// <summary>
+        /// 
+        /// </summary>
         OverlapDirect,
+        /// <summary>
+        /// 
+        /// </summary>
         OverlapNoWrap,
+        /// <summary>
+        /// 
+        /// </summary>
         OverlapWrap,
     }
 
+    /// <summary>
+    /// The types of vertex join
+    /// </summary>
     public enum VertexJoin
     {
+        /// <summary>
+        /// 
+        /// </summary>
         None,
+        /// <summary>
+        /// 
+        /// </summary>
         Bevel,
+        /// <summary>
+        /// 
+        /// </summary>
         Round,
+        /// <summary>
+        /// 
+        /// </summary>
         Miter,
     }
 
+    /// <summary>
+    /// The types of origin control
+    /// </summary>
     public enum OriginControl
     {
+        /// <summary>
+        /// 
+        /// </summary>
         Global,
+        /// <summary>
+        /// 
+        /// </summary>
         Local,
+        /// <summary>
+        /// 
+        /// </summary>
         Centroid,
     }
 
+    /// <summary>
+    /// The types of clipping control
+    /// </summary>
     public enum ClippingControl
     {
+        /// <summary>
+        /// 
+        /// </summary>
         Clip,
+        /// <summary>
+        /// 
+        /// </summary>
         Inside,
+        /// <summary>
+        /// 
+        /// </summary>
         Overlap
     }
 
+    /// <summary>
+    /// The types of resize control
+    /// </summary>
     public enum ResizeControl
     {
+        /// <summary>
+        /// 
+        /// </summary>
         ResizeNone,
+        /// <summary>
+        /// 
+        /// </summary>
         AddToResizeBox,
+        /// <summary>
+        /// 
+        /// </summary>
         AdjustToResizeBox,
     }
 
+    /// <summary>
+    /// The types of line cap
+    /// </summary>
     public enum LineCap
     {
+        /// <summary>
+        /// 
+        /// </summary>
         None,
+        /// <summary>
+        /// 
+        /// </summary>
         Round,
+        /// <summary>
+        /// 
+        /// </summary>
         Triangle,
+        /// <summary>
+        /// 
+        /// </summary>
         Square,
     }
 
+    /// <summary>
+    /// The types of line join
+    /// </summary>
     public enum LineJoin
     {
+        /// <summary>
+        /// 
+        /// </summary>
         None,
+        /// <summary>
+        /// 
+        /// </summary>
         Bevel,
+        /// <summary>
+        /// 
+        /// </summary>
         Round,
+        /// <summary>
+        /// 
+        /// </summary>
         Miter,
     }
 
+    /// <summary>
+    /// The types of horizontal alignment
+    /// </summary>
     public enum HorizontalAlignment
     {
+        /// <summary>
+        /// 
+        /// </summary>
         Left,
+        /// <summary>
+        /// 
+        /// </summary>
         Center,
+        /// <summary>
+        /// 
+        /// </summary>
         Right,
     }
 
+    /// <summary>
+    /// The types of vertical alignment
+    /// </summary>
     public enum VerticalAlignment
     {
+        /// <summary>
+        /// 
+        /// </summary>
         Bottom,
+        /// <summary>
+        /// 
+        /// </summary>
         Baseline,
+        /// <summary>
+        /// 
+        /// </summary>
         Halfline,
+        /// <summary>
+        /// 
+        /// </summary>
         Capline,
+        /// <summary>
+        /// 
+        /// </summary>
         Top,
     }
 
+    /// <summary>
+    /// The types of justification
+    /// </summary>
     public enum Justification
     {
+        /// <summary>
+        /// 
+        /// </summary>
         Left,
+        /// <summary>
+        /// 
+        /// </summary>
         Center,
+        /// <summary>
+        /// 
+        /// </summary>
         Right,
+        /// <summary>
+        /// 
+        /// </summary>
         Justified,
+        /// <summary>
+        /// 
+        /// </summary>
         FromAlignment,
     }
 

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolLibrary.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolLibrary.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolLibrary.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,10 +23,13 @@
 using OSGeo.MapGuide.MaestroAPI.Resource;
 using System.Xml.Serialization;
 using OSGeo.MapGuide.MaestroAPI;
+using OSGeo.MapGuide.ObjectModels.SymbolLibrary;
 
-namespace OSGeo.MapGuide.ObjectModels.SymbolLibrary
+#pragma warning disable 1591, 0114, 0108
+
+namespace OSGeo.MapGuide.ObjectModels.SymbolLibrary_1_0_0
 {
-    partial class SymbolLibraryType : IResource
+    partial class SymbolLibraryType : ISymbolLibrary
     {
         internal SymbolLibraryType() { }
 
@@ -97,5 +100,20 @@
         {
             get { return true; }
         }
+
+        IEnumerable<ISymbol> ISymbolLibrary.Symbol
+        {
+            get
+            {
+                foreach (var sym in this.Symbol)
+                {
+                    yield return sym;
+                }
+            }
+        }
     }
+
+    partial class SymbolType : ISymbol
+    {
+    }
 }

Added: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolLibraryInterfaces.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolLibraryInterfaces.cs	                        (rev 0)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolLibraryInterfaces.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -0,0 +1,62 @@
+#region Disclaimer / License
+// Copyright (C) 2010, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// 
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+// 
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+// 
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Text;
+using OSGeo.MapGuide.MaestroAPI.Resource;
+
+namespace OSGeo.MapGuide.ObjectModels.SymbolLibrary
+{
+    /// <summary>
+    /// A DWF-based symbol library
+    /// </summary>
+    public interface ISymbolLibrary : IResource
+    {
+        /// <summary>
+        /// Gets or sets the description.
+        /// </summary>
+        /// <value>The description.</value>
+        string Description { get; set; }
+
+        /// <summary>
+        /// Gets the symbol references
+        /// </summary>
+        /// <value>The symbol references.</value>
+        IEnumerable<ISymbol> Symbol { get; }
+    }
+
+    /// <summary>
+    /// A reference in a DWF symbol library
+    /// </summary>
+    public interface ISymbol
+    {
+        /// <summary>
+        /// Gets or sets the name.
+        /// </summary>
+        /// <value>The name.</value>
+        string Name { get; set; }
+
+        /// <summary>
+        /// Gets or sets the resource.
+        /// </summary>
+        /// <value>The resource.</value>
+        string Resource { get; set; }
+    }
+}

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/UnmanagedDataList.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/UnmanagedDataList.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/UnmanagedDataList.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,6 +23,8 @@
 using System.Xml.Serialization;
 using System.Diagnostics;
 
+#pragma warning disable 1591, 0114, 0108
+
 namespace OSGeo.MapGuide.ObjectModels.Common
 {
     partial class UnmanagedDataListUnmanagedDataFile

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/UntypedResource.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/UntypedResource.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/UntypedResource.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -21,8 +21,11 @@
 using System.Collections.Generic;
 using System.Text;
 using OSGeo.MapGuide.MaestroAPI.Resource;
+using OSGeo.MapGuide.MaestroAPI;
 
-namespace OSGeo.MapGuide.MaestroAPI.ObjectModels
+#pragma warning disable 1591, 0114, 0108
+
+namespace OSGeo.MapGuide.ObjectModels
 {
     /// <summary>
     /// Represents resource content that could not be deserialized into a corresponding
@@ -37,6 +40,10 @@
             this.ResourceVersion = new Version(version);
         }
 
+        /// <summary>
+        /// Gets or sets the current connection.
+        /// </summary>
+        /// <value>The current connection.</value>
         public IServerConnection CurrentConnection
         {
             get;

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/VectorLayerDefinitionImpl.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/VectorLayerDefinitionImpl.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/VectorLayerDefinitionImpl.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -26,10 +26,11 @@
 using OSGeo.MapGuide.ObjectModels.Common;
 using System.ComponentModel;
 using OSGeo.MapGuide.MaestroAPI.Services;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
 using OSGeo.MapGuide.ObjectModels.FeatureSource;
 using System.Globalization;
 
+#pragma warning disable 1591, 0114, 0108
+
 #if LDF_110
 namespace OSGeo.MapGuide.ObjectModels.LayerDefinition_1_1_0
 #elif LDF_120

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/WebLayout.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/WebLayout.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/WebLayout.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -27,6 +27,8 @@
 using System.ComponentModel;
 using System.IO;
 
+#pragma warning disable 1591, 0114, 0108
+
 #if WL110
 namespace OSGeo.MapGuide.ObjectModels.WebLayout_1_1_0
 #else

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/WebLayoutInterfaces.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/WebLayoutInterfaces.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ObjectModels/WebLayoutInterfaces.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -7,10 +7,22 @@
 
 namespace OSGeo.MapGuide.ObjectModels.WebLayout
 {
+    /// <summary>
+    /// Defines a region of the web layout where UI items can reside
+    /// </summary>
     public enum WebLayoutRegion
     {
+        /// <summary>
+        /// The context menu
+        /// </summary>
         ContextMenu,
+        /// <summary>
+        /// The toolbar
+        /// </summary>
         Toolbar,
+        /// <summary>
+        /// The task bar
+        /// </summary>
         TaskBar
     }
 
@@ -19,36 +31,123 @@
     /// </summary>
     public enum BuiltInCommandType : int
     {
+        /// <summary>
+        /// 
+        /// </summary>
         Pan = BasicCommandActionType.Pan,
+        /// <summary>
+        /// 
+        /// </summary>
         PanUp = BasicCommandActionType.PanUp,
+        /// <summary>
+        /// 
+        /// </summary>
         PanDown = BasicCommandActionType.PanDown,
+        /// <summary>
+        /// 
+        /// </summary>
         PanRight = BasicCommandActionType.PanRight,
+        /// <summary>
+        /// 
+        /// </summary>
         PanLeft = BasicCommandActionType.PanLeft,
+        /// <summary>
+        /// 
+        /// </summary>
         Zoom = BasicCommandActionType.Zoom,
+        /// <summary>
+        /// 
+        /// </summary>
         ZoomIn = BasicCommandActionType.ZoomIn,
+        /// <summary>
+        /// 
+        /// </summary>
         ZoomOut = BasicCommandActionType.ZoomOut,
+        /// <summary>
+        /// 
+        /// </summary>
         ZoomRectangle = BasicCommandActionType.ZoomRectangle,
+        /// <summary>
+        /// 
+        /// </summary>
         ZoomToSelection = BasicCommandActionType.ZoomToSelection,
+        /// <summary>
+        /// 
+        /// </summary>
         FitToWindow = BasicCommandActionType.FitToWindow,
+        /// <summary>
+        /// 
+        /// </summary>
         PreviousView = BasicCommandActionType.PreviousView,
+        /// <summary>
+        /// 
+        /// </summary>
         NextView = BasicCommandActionType.NextView,
+        /// <summary>
+        /// 
+        /// </summary>
         RestoreView = BasicCommandActionType.RestoreView,
+        /// <summary>
+        /// 
+        /// </summary>
         Select = BasicCommandActionType.Select,
+        /// <summary>
+        /// 
+        /// </summary>
         SelectRadius = BasicCommandActionType.SelectRadius,
+        /// <summary>
+        /// 
+        /// </summary>
         SelectPolygon = BasicCommandActionType.SelectPolygon,
+        /// <summary>
+        /// 
+        /// </summary>
         ClearSelection = BasicCommandActionType.ClearSelection,
+        /// <summary>
+        /// 
+        /// </summary>
         Refresh = BasicCommandActionType.Refresh,
+        /// <summary>
+        /// 
+        /// </summary>
         CopyMap = BasicCommandActionType.CopyMap,
+        /// <summary>
+        /// 
+        /// </summary>
         About = BasicCommandActionType.About,
+        /// <summary>
+        /// 
+        /// </summary>
         Buffer,
+        /// <summary>
+        /// 
+        /// </summary>
         SelectWithin,
+        /// <summary>
+        /// 
+        /// </summary>
         Print,
+        /// <summary>
+        /// 
+        /// </summary>
         GetPrintablePage,
+        /// <summary>
+        /// 
+        /// </summary>
         Measure,
+        /// <summary>
+        /// 
+        /// </summary>
         ViewOptions,
+        /// <summary>
+        /// 
+        /// </summary>
         Help,
     }
 
+    /// <summary>
+    /// 
+    /// </summary>
     [System.SerializableAttribute()]
     public enum BasicCommandActionType
     {
@@ -116,6 +215,9 @@
         About,
     }
 
+    /// <summary>
+    /// 
+    /// </summary>
     [System.SerializableAttribute()]
     public enum UIItemFunctionType
     {
@@ -129,7 +231,10 @@
         /// <remarks/>
         Flyout,
     }
-    
+
+    /// <summary>
+    /// 
+    /// </summary>
     [System.SerializableAttribute()]
     public enum TargetType
     {
@@ -144,6 +249,9 @@
         SpecifiedFrame,
     }
 
+    /// <summary>
+    /// 
+    /// </summary>
     [System.SerializableAttribute()]
     public enum TargetViewerType
     {
@@ -158,40 +266,128 @@
         All,
     }
 
+    /// <summary>
+    /// The Web Layout
+    /// </summary>
     public interface IWebLayout : IResource, INotifyPropertyChanged
     {
+        /// <summary>
+        /// Determines whether the specified command name is referenced in any regions
+        /// </summary>
+        /// <param name="name">The name.</param>
+        /// <param name="region">The region.</param>
         bool IsCommandReferenced(string name, out WebLayoutRegion[] region);
 
+        /// <summary>
+        /// Removes all references to the specified command name
+        /// </summary>
+        /// <param name="cmdName">Name of the command.</param>
+        /// <returns></returns>
         int RemoveAllReferences(string cmdName);
 
+        /// <summary>
+        /// Gets a command by its name
+        /// </summary>
+        /// <param name="cmdName">Name of the command.</param>
+        /// <returns></returns>
         ICommand GetCommandByName(string cmdName);
 
+        /// <summary>
+        /// Gets the custom commands.
+        /// </summary>
+        /// <returns></returns>
         IEnumerable<ICommand> GetCustomCommands();
 
+        /// <summary>
+        /// Finds the command by its name in the specified menu.
+        /// </summary>
+        /// <param name="name">The name.</param>
+        /// <param name="menu">The menu.</param>
+        /// <returns></returns>
         bool FindCommand(string name, IMenu menu);
 
+        /// <summary>
+        /// Gets or sets the title.
+        /// </summary>
+        /// <value>The title.</value>
         string Title { get; set; }
 
+        /// <summary>
+        /// Creates the default view.
+        /// </summary>
+        /// <returns></returns>
         IMapView CreateDefaultView();
 
+        /// <summary>
+        /// Gets the map.
+        /// </summary>
+        /// <value>The map.</value>
         IMap Map { get; }
 
+        /// <summary>
+        /// Gets the task pane.
+        /// </summary>
+        /// <value>The task pane.</value>
         ITaskPane TaskPane { get; }
 
+        /// <summary>
+        /// Gets the tool bar.
+        /// </summary>
+        /// <value>The tool bar.</value>
         IToolbar ToolBar { get; }
 
+        /// <summary>
+        /// Gets the information pane.
+        /// </summary>
+        /// <value>The information pane.</value>
         IInformationPane InformationPane { get; }
 
+        /// <summary>
+        /// Gets the context menu.
+        /// </summary>
+        /// <value>The context menu.</value>
         IContextMenu ContextMenu { get; }
 
+        /// <summary>
+        /// Gets the status bar.
+        /// </summary>
+        /// <value>The status bar.</value>
         IStatusBar StatusBar { get; }
 
+        /// <summary>
+        /// Gets the zoom control.
+        /// </summary>
+        /// <value>The zoom control.</value>
         IZoomControl ZoomControl { get; }
 
+        /// <summary>
+        /// Gets the command set.
+        /// </summary>
+        /// <value>The command set.</value>
         ICommandSet CommandSet { get; }
 
+        /// <summary>
+        /// Creates the basic command.
+        /// </summary>
+        /// <param name="label">The label.</param>
+        /// <param name="tooltip">The tooltip.</param>
+        /// <param name="description">The description.</param>
+        /// <param name="iconName">Name of the icon.</param>
+        /// <param name="targets">The targets.</param>
+        /// <param name="action">The action.</param>
+        /// <returns></returns>
         IBasicCommand CreateBasicCommand(string label, string tooltip, string description, string iconName, TargetViewerType targets, BasicCommandActionType action);
 
+        /// <summary>
+        /// Creates the flyout.
+        /// </summary>
+        /// <param name="label">The label.</param>
+        /// <param name="tooltip">The tooltip.</param>
+        /// <param name="description">The description.</param>
+        /// <param name="imageUrl">The image URL.</param>
+        /// <param name="disabledImageUrl">The disabled image URL.</param>
+        /// <param name="subItems">The sub items.</param>
+        /// <returns></returns>
         IFlyoutItem CreateFlyout(
             string label,
             string tooltip,
@@ -200,105 +396,288 @@
             string disabledImageUrl,
             params IUIItem[] subItems);
 
+        /// <summary>
+        /// Creates the targeted command.
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="name">The name.</param>
+        /// <param name="label">The label.</param>
+        /// <param name="tooltip">The tooltip.</param>
+        /// <param name="description">The description.</param>
+        /// <param name="iconName">Name of the icon.</param>
+        /// <param name="targets">The targets.</param>
+        /// <param name="target">The target.</param>
+        /// <param name="targetFrame">The target frame.</param>
+        /// <returns></returns>
         T CreateTargetedCommand<T>(string name, string label, string tooltip, string description, string iconName, TargetViewerType targets, TargetType target, string targetFrame) where T : ITargetedCommand, new();
 
+        /// <summary>
+        /// Creates the command item.
+        /// </summary>
+        /// <param name="cmdName">Name of the CMD.</param>
+        /// <returns></returns>
         ICommandItem CreateCommandItem(string cmdName);
 
+        /// <summary>
+        /// Creates the invoke URL command.
+        /// </summary>
+        /// <returns></returns>
         IInvokeUrlCommand CreateInvokeUrlCommand();
 
+        /// <summary>
+        /// Creates the search command.
+        /// </summary>
+        /// <returns></returns>
         ISearchCommand CreateSearchCommand();
 
+        /// <summary>
+        /// Creates the invoke script command.
+        /// </summary>
+        /// <returns></returns>
         IInvokeScriptCommand CreateInvokeScriptCommand();
 
+        /// <summary>
+        /// Creates the separator.
+        /// </summary>
+        /// <returns></returns>
         ISeparatorItem CreateSeparator();
     }
 
+    /// <summary>
+    /// Web Layout from v1.1.0 schema
+    /// </summary>
     public interface IWebLayout2 : IWebLayout
     {
+        /// <summary>
+        /// Gets or sets a value indicating whether [enable ping server].
+        /// </summary>
+        /// <value><c>true</c> if [enable ping server]; otherwise, <c>false</c>.</value>
         bool EnablePingServer { get; set; }
     }
 
+    /// <summary>
+    /// The map referenced in this web layout
+    /// </summary>
     public interface IMap : INotifyPropertyChanged
     {
+        /// <summary>
+        /// Gets or sets the resource id.
+        /// </summary>
+        /// <value>The resource id.</value>
         string ResourceId { get; set; }
 
+        /// <summary>
+        /// Gets or sets the initial view.
+        /// </summary>
+        /// <value>The initial view.</value>
         IMapView InitialView { get; set; }
 
+        /// <summary>
+        /// Gets or sets the hyperlink target for feature selection urls
+        /// </summary>
+        /// <value>The hyperlink target.</value>
         TargetType HyperlinkTarget { get; set; }
 
+        /// <summary>
+        /// Gets or sets the hyperlink target frame for feature selection urls.
+        /// </summary>
+        /// <value>The hyperlink target frame.</value>
         string HyperlinkTargetFrame { get; set; }
     }
 
+    /// <summary>
+    /// The initial view of the map
+    /// </summary>
     public interface IMapView : INotifyPropertyChanged
     {
+        /// <summary>
+        /// Gets or sets the center X.
+        /// </summary>
+        /// <value>The center X.</value>
         double CenterX { get; set; }
 
+        /// <summary>
+        /// Gets or sets the center Y.
+        /// </summary>
+        /// <value>The center Y.</value>
         double CenterY { get; set; }
 
+        /// <summary>
+        /// Gets or sets the scale.
+        /// </summary>
+        /// <value>The scale.</value>
         double Scale { get; set; }
     }
 
+    /// <summary>
+    /// A web layout element
+    /// </summary>
     public interface IWebLayoutControl : INotifyPropertyChanged
     {
+        /// <summary>
+        /// Gets or sets a value indicating whether this <see cref="IWebLayoutControl"/> is visible.
+        /// </summary>
+        /// <value><c>true</c> if visible; otherwise, <c>false</c>.</value>
         bool Visible { get; set; }
     }
 
+    /// <summary>
+    /// A resizable web layout element
+    /// </summary>
     public interface IWebLayoutResizableControl
     {
+        /// <summary>
+        /// Gets or sets the width.
+        /// </summary>
+        /// <value>The width.</value>
         int Width { get; set; }
     }
 
+    /// <summary>
+    /// A UI element
+    /// </summary>
     public interface IUIItem
     {
+        /// <summary>
+        /// Gets the parent menu.
+        /// </summary>
+        /// <value>The parent menu.</value>
         IMenu Parent { get; }
 
+        /// <summary>
+        /// Gets or sets the function.
+        /// </summary>
+        /// <value>The function.</value>
         UIItemFunctionType Function { get; set; }
     }
 
+    /// <summary>
+    /// A UI element with localizable features
+    /// </summary>
     public interface ILocalizable
     {
+        /// <summary>
+        /// Gets or sets the tooltip.
+        /// </summary>
+        /// <value>The tooltip.</value>
         string Tooltip { get; set; }
 
+        /// <summary>
+        /// Gets or sets the description.
+        /// </summary>
+        /// <value>The description.</value>
         string Description { get; set; }
 
+        /// <summary>
+        /// Gets or sets the image URL.
+        /// </summary>
+        /// <value>The image URL.</value>
         string ImageURL { get; set; }
 
+        /// <summary>
+        /// Gets or sets the disabled image URL.
+        /// </summary>
+        /// <value>The disabled image URL.</value>
         string DisabledImageURL { get; set; }
     }
 
+    /// <summary>
+    /// A separator item
+    /// </summary>
     public interface ISeparatorItem : IUIItem { }
 
+    /// <summary>
+    /// A menu item that invokes a command
+    /// </summary>
     public interface ICommandItem : IUIItem
     {
+        /// <summary>
+        /// Gets or sets the command.
+        /// </summary>
+        /// <value>The command.</value>
         string Command { get; set; }
     }
 
+    /// <summary>
+    /// A flyout menu item
+    /// </summary>
     public interface IFlyoutItem : IUIItem, IMenu, ILocalizable 
     {
+        /// <summary>
+        /// Gets or sets the label.
+        /// </summary>
+        /// <value>The label.</value>
         string Label { get; set; }
     }
 
+    /// <summary>
+    /// Represents a UI element that can have any number of child UI elements
+    /// </summary>
     public interface IMenu
     {
+        /// <summary>
+        /// Gets the item count.
+        /// </summary>
+        /// <value>The item count.</value>
         int ItemCount { get; }
 
+        /// <summary>
+        /// Gets the items.
+        /// </summary>
+        /// <value>The items.</value>
         IEnumerable<IUIItem> Items { get; }
 
+        /// <summary>
+        /// Moves the specified item up.
+        /// </summary>
+        /// <param name="item">The item.</param>
+        /// <returns></returns>
         bool MoveUp(IUIItem item);
 
+        /// <summary>
+        /// Moves the specified item down.
+        /// </summary>
+        /// <param name="item">The item.</param>
+        /// <returns></returns>
         bool MoveDown(IUIItem item);
 
+        /// <summary>
+        /// Gets the index of the specified item.
+        /// </summary>
+        /// <param name="item">The item.</param>
+        /// <returns></returns>
         int GetIndex(IUIItem item);
 
+        /// <summary>
+        /// Inserts the specified item at the specified index.
+        /// </summary>
+        /// <param name="item">The item.</param>
+        /// <param name="index">The index.</param>
         void Insert(IUIItem item, int index);
 
+        /// <summary>
+        /// Adds the item.
+        /// </summary>
+        /// <param name="item">The item.</param>
         void AddItem(IUIItem item);
 
+        /// <summary>
+        /// Removes the item.
+        /// </summary>
+        /// <param name="item">The item.</param>
         void RemoveItem(IUIItem item);
     }
 
+    /// <summary>
+    /// Extension method class
+    /// </summary>
     public static class MenuExtensions
     {
+        /// <summary>
+        /// Adds items to the menu
+        /// </summary>
+        /// <param name="mnu"></param>
+        /// <param name="items"></param>
         public static void AddItems(this IMenu mnu, params IUIItem[] items)
         {
             Check.NotNull(mnu, "mnu");
@@ -309,196 +688,489 @@
             }
         }
     }
-
+    
+    /// <summary>
+    /// The viewer toolbar
+    /// </summary>
     public interface IToolbar : IMenu, IWebLayoutControl
     { 
         
     }
 
+    /// <summary>
+    /// The legend and property pane
+    /// </summary>
     public interface IInformationPane : IWebLayoutResizableControl
     {
+        /// <summary>
+        /// Gets or sets a value indicating whether [legend visible].
+        /// </summary>
+        /// <value><c>true</c> if [legend visible]; otherwise, <c>false</c>.</value>
         bool LegendVisible { get; set; }
 
+        /// <summary>
+        /// Gets or sets a value indicating whether [properties visible].
+        /// </summary>
+        /// <value><c>true</c> if [properties visible]; otherwise, <c>false</c>.</value>
         bool PropertiesVisible { get; set; }
     }
 
+    /// <summary>
+    /// The viewer context menu
+    /// </summary>
     public interface IContextMenu : IMenu, IWebLayoutControl
     {
     }
 
+    /// <summary>
+    /// The task pane
+    /// </summary>
     public interface ITaskPane : IWebLayoutResizableControl
     {
+        /// <summary>
+        /// Gets or sets the url of the initial task.
+        /// </summary>
+        /// <value>The url of the initial task.</value>
         string InitialTask { get; set; }
 
+        /// <summary>
+        /// Gets the task bar.
+        /// </summary>
+        /// <value>The task bar.</value>
         ITaskBar TaskBar { get; }
     }
 
+    /// <summary>
+    /// The task bar
+    /// </summary>
     public interface ITaskBar : IWebLayoutControl, IMenu
     {
+        /// <summary>
+        /// Gets the home button.
+        /// </summary>
+        /// <value>The home.</value>
         ITaskButton Home { get; }
 
+        /// <summary>
+        /// Gets the forward button.
+        /// </summary>
+        /// <value>The forward.</value>
         ITaskButton Forward { get; }
 
+        /// <summary>
+        /// Gets the back button.
+        /// </summary>
+        /// <value>The back.</value>
         ITaskButton Back { get; }
 
+        /// <summary>
+        /// Gets the tasks button.
+        /// </summary>
+        /// <value>The tasks.</value>
         ITaskButton Tasks { get; }
     }
 
+    /// <summary>
+    /// A button on the task pane
+    /// </summary>
     public interface ITaskButton : ILocalizable
     {
 
     }
 
+    /// <summary>
+    /// The status bar
+    /// </summary>
     public interface IStatusBar : IWebLayoutControl
     {
     }
 
+    /// <summary>
+    /// The zoom slider
+    /// </summary>
     public interface IZoomControl : IWebLayoutControl
     {
     }
 
+    /// <summary>
+    /// 
+    /// </summary>
     public delegate void CommandEventHandler(ICommand cmd);
 
+    /// <summary>
+    /// The master list of viewer commands
+    /// </summary>
     public interface ICommandSet
     {
+        /// <summary>
+        /// Gets the command count.
+        /// </summary>
+        /// <value>The command count.</value>
         int CommandCount { get; }
 
+        /// <summary>
+        /// Clears this instance.
+        /// </summary>
         void Clear();
 
+        /// <summary>
+        /// Gets the commands.
+        /// </summary>
+        /// <value>The commands.</value>
         IEnumerable<ICommand> Commands { get; }
 
+        /// <summary>
+        /// Adds the command.
+        /// </summary>
+        /// <param name="cmd">The CMD.</param>
         void AddCommand(ICommand cmd);
 
+        /// <summary>
+        /// Removes the command.
+        /// </summary>
+        /// <param name="cmd">The CMD.</param>
         void RemoveCommand(ICommand cmd);
 
+        /// <summary>
+        /// Occurs when [custom command added].
+        /// </summary>
         event CommandEventHandler CustomCommandAdded;
 
+        /// <summary>
+        /// Occurs when [custom command removed].
+        /// </summary>
         event CommandEventHandler CustomCommandRemoved;
     }
 
+    /// <summary>
+    /// Base viewer command
+    /// </summary>
     public interface ICommand : ILocalizable, INotifyPropertyChanged
     {
+        /// <summary>
+        /// Gets or sets the name.
+        /// </summary>
+        /// <value>The name.</value>
         string Name { get; set; }
 
+        /// <summary>
+        /// Gets or sets the label.
+        /// </summary>
+        /// <value>The label.</value>
         string Label { get; set; }
 
+        /// <summary>
+        /// Gets or sets the target viewer.
+        /// </summary>
+        /// <value>The target viewer.</value>
         TargetViewerType TargetViewer { get; set; }
     }
 
+    /// <summary>
+    /// A built-in basic command
+    /// </summary>
     public interface IBasicCommand : ICommand
     {
+        /// <summary>
+        /// Gets or sets the action.
+        /// </summary>
+        /// <value>The action.</value>
         BasicCommandActionType Action { get; set; }
     }
 
+    /// <summary>
+    /// A custom command
+    /// </summary>
     public interface ICustomCommand : ICommand
     {
 
     }
 
+    /// <summary>
+    /// A command that operates in a certain viewer frame
+    /// </summary>
     public interface ITargetedCommand : ICustomCommand
     {
+        /// <summary>
+        /// Gets or sets the target.
+        /// </summary>
+        /// <value>The target.</value>
         TargetType Target { get; set; }
 
+        /// <summary>
+        /// Gets or sets the target frame.
+        /// </summary>
+        /// <value>The target frame.</value>
         string TargetFrame { get; set; }
     }
 
+    /// <summary>
+    /// Search command
+    /// </summary>
     public interface ISearchCommand : ITargetedCommand
     {
+        /// <summary>
+        /// Gets or sets the layer.
+        /// </summary>
+        /// <value>The layer.</value>
         string Layer { get; set; }
 
+        /// <summary>
+        /// Gets or sets the prompt.
+        /// </summary>
+        /// <value>The prompt.</value>
         string Prompt { get; set; }
 
+        /// <summary>
+        /// Gets the result columns.
+        /// </summary>
+        /// <value>The result columns.</value>
         IResultColumnSet ResultColumns { get; }
-        
+
+        /// <summary>
+        /// Gets or sets the filter.
+        /// </summary>
+        /// <value>The filter.</value>
         string Filter { get; set; }
 
+        /// <summary>
+        /// Gets or sets the match limit.
+        /// </summary>
+        /// <value>The match limit.</value>
         int MatchLimit { get; set; }
     }
 
+    /// <summary>
+    /// A search command result specification
+    /// </summary>
     public interface IResultColumnSet
     {
+        /// <summary>
+        /// Clears this instance.
+        /// </summary>
         void Clear();
 
+        /// <summary>
+        /// Gets the columns.
+        /// </summary>
+        /// <value>The columns.</value>
         IEnumerable<IResultColumn> Column { get; }
 
+        /// <summary>
+        /// Creates the column.
+        /// </summary>
+        /// <param name="name">The name.</param>
+        /// <param name="property">The property.</param>
+        /// <returns></returns>
         IResultColumn CreateColumn(string name, string property);
 
+        /// <summary>
+        /// Adds the result column.
+        /// </summary>
+        /// <param name="col">The col.</param>
         void AddResultColumn(IResultColumn col);
 
+        /// <summary>
+        /// Removes the result column.
+        /// </summary>
+        /// <param name="col">The col.</param>
         void RemoveResultColumn(IResultColumn col);
     }
 
+    /// <summary>
+    /// A search command result column
+    /// </summary>
     public interface IResultColumn
     {
+        /// <summary>
+        /// Gets or sets the name.
+        /// </summary>
+        /// <value>The name.</value>
         string Name { get; set; }
 
+        /// <summary>
+        /// Gets or sets the property.
+        /// </summary>
+        /// <value>The property.</value>
         string Property { get; set; }
     }
 
+    /// <summary>
+    /// Invoke URL command
+    /// </summary>
     public interface IInvokeUrlCommand : ITargetedCommand
     {
+        /// <summary>
+        /// Gets or sets the URL.
+        /// </summary>
+        /// <value>The URL.</value>
         string URL { get; set; }
 
+        /// <summary>
+        /// Gets the layer set that this layer applies to
+        /// </summary>
+        /// <value>The layer set.</value>
         ILayerSet LayerSet { get; }
 
+        /// <summary>
+        /// Gets the additional parameters.
+        /// </summary>
+        /// <value>The additional parameters.</value>
         IEnumerable<IParameterPair> AdditionalParameter { get; }
 
+        /// <summary>
+        /// Creates the parameter.
+        /// </summary>
+        /// <param name="name">The name.</param>
+        /// <param name="value">The value.</param>
+        /// <returns></returns>
         IParameterPair CreateParameter(string name, string value);
 
+        /// <summary>
+        /// Adds the parameter.
+        /// </summary>
+        /// <param name="param">The param.</param>
         void AddParameter(IParameterPair param);
 
+        /// <summary>
+        /// Removes the parameter.
+        /// </summary>
+        /// <param name="param">The param.</param>
         void RemoveParameter(IParameterPair param);
 
+        /// <summary>
+        /// Gets or sets a value indicating whether [disable if selection empty].
+        /// </summary>
+        /// <value>
+        /// 	<c>true</c> if [disable if selection empty]; otherwise, <c>false</c>.
+        /// </value>
         bool DisableIfSelectionEmpty { get; set; }
     }
 
+    /// <summary>
+    /// A set of layers
+    /// </summary>
     public interface ILayerSet
     {
+        /// <summary>
+        /// Gets the layers.
+        /// </summary>
+        /// <value>The layers.</value>
         BindingList<string> Layer { get; }
     }
 
+    /// <summary>
+    /// A key value pair
+    /// </summary>
     public interface IParameterPair
     {
+        /// <summary>
+        /// Gets or sets the key.
+        /// </summary>
+        /// <value>The key.</value>
         string Key { get; set; }
 
+        /// <summary>
+        /// Gets or sets the value.
+        /// </summary>
+        /// <value>The value.</value>
         string Value { get; set; }
     }
 
+    /// <summary>
+    /// Buffer command
+    /// </summary>
     public interface IBufferCommand : ITargetedCommand { }
 
+    /// <summary>
+    /// Select within command
+    /// </summary>
     public interface ISelectWithinCommand : ITargetedCommand { }
 
+    /// <summary>
+    /// A resource reference
+    /// </summary>
     public interface IResourceReference : INotifyPropertyChanged
     {
+        /// <summary>
+        /// Gets or sets the resource id.
+        /// </summary>
+        /// <value>The resource id.</value>
         string ResourceId { get; set; }
     }
 
+    /// <summary>
+    /// Print command
+    /// </summary>
     public interface IPrintCommand : ICustomCommand 
     {
+        /// <summary>
+        /// Clears this instance.
+        /// </summary>
         void Clear();
 
+        /// <summary>
+        /// Gets the print layouts.
+        /// </summary>
+        /// <value>The print layouts.</value>
         IEnumerable<IResourceReference> PrintLayout { get; }
 
+        /// <summary>
+        /// Creates the print layout.
+        /// </summary>
+        /// <param name="resourceId">The resource id.</param>
+        /// <returns></returns>
         IResourceReference CreatePrintLayout(string resourceId);
 
+        /// <summary>
+        /// Adds the print layout.
+        /// </summary>
+        /// <param name="reference">The reference.</param>
         void AddPrintLayout(IResourceReference reference);
 
+        /// <summary>
+        /// Removes the print layout.
+        /// </summary>
+        /// <param name="reference">The reference.</param>
         void RemovePrintLayout(IResourceReference reference);
     }
 
+    /// <summary>
+    /// Get printable page command
+    /// </summary>
     public interface IGetPrintablePageCommand : ITargetedCommand { }
 
+    /// <summary>
+    /// Measure command
+    /// </summary>
     public interface IMeasureCommand : ITargetedCommand { }
 
+    /// <summary>
+    /// View options command
+    /// </summary>
     public interface IViewOptionsCommand : ITargetedCommand { }
 
+    /// <summary>
+    /// A help command
+    /// </summary>
     public interface IHelpCommand : ITargetedCommand
     {
+        /// <summary>
+        /// Gets or sets the URL.
+        /// </summary>
+        /// <value>The URL.</value>
         string URL { get; set; }
     }
 
+    /// <summary>
+    /// An invoke script command
+    /// </summary>
     public interface IInvokeScriptCommand : ICustomCommand
     {
+        /// <summary>
+        /// Gets or sets the script.
+        /// </summary>
+        /// <value>The script.</value>
         string Script { get; set; }
     }
 }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Platform.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Platform.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Platform.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,6 +23,9 @@
 
 namespace OSGeo.MapGuide.MaestroAPI
 {
+    /// <summary>
+    /// Platform check helper class
+    /// </summary>
     public static class Platform
     {
         static Platform()
@@ -32,6 +35,9 @@
 
         private static Type _mrtType;
 
+        /// <summary>
+        /// Gets whether this application is running under the Mono CLR
+        /// </summary>
         public static bool IsRunningOnMono
         {
             get

Copied: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/PlatformConnectionBase.cs (from rev 5336, sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ServerConnectionBase.cs)
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/PlatformConnectionBase.cs	                        (rev 0)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/PlatformConnectionBase.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -0,0 +1,1615 @@
+#region Disclaimer / License
+// Copyright (C) 2009, Kenneth Skovhede
+// http://www.hexad.dk, opensource at hexad.dk
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// 
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+// 
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+// 
+#endregion
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Xml;
+using System.Text;
+using System.IO;
+
+using ObjCommon = OSGeo.MapGuide.ObjectModels.Common;
+using OSGeo.MapGuide.ObjectModels.Capabilities;
+using OSGeo.MapGuide.MaestroAPI.Resource;
+using OSGeo.MapGuide.MaestroAPI.Commands;
+
+namespace OSGeo.MapGuide.MaestroAPI
+{
+	/// <summary>
+	/// Base class of all connection classes. Covers functionality encompassed by
+    /// the MapGuide Geospatial Platform API (ie. Feature Service and Resource Service)
+	/// </summary>
+	public abstract class PlatformConnectionBase
+	{
+		/// <summary>
+		/// A list of cached serializers
+		/// </summary>
+		protected Hashtable m_serializers;
+
+		/// <summary>
+		/// The current XML validator
+		/// </summary>
+		protected XMLValidator m_validator;
+
+		/// <summary>
+		/// The path of Xsd schemas 
+		/// </summary>
+		protected string m_schemasPath;
+
+		/// <summary>
+		/// A lookup table for Xsd Schemas
+		/// </summary>
+		protected Hashtable m_cachedSchemas;
+
+		/// <summary>
+		/// A flag indicating if Xsd validation is perfomed
+		/// </summary>
+		protected bool m_disableValidation = false;
+
+        /// <summary>
+        /// Initializes a new instance of the <see cref="PlatformConnectionBase"/> class.
+        /// </summary>
+		protected PlatformConnectionBase()
+		{
+            ResourceTypeRegistry.Init();
+
+			m_serializers = new Hashtable();
+			m_validator = new XMLValidator();
+			m_cachedSchemas = new Hashtable();
+
+			m_schemasPath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), "Schemas");
+		}
+
+        #region Serialization plumbing
+
+        /// <summary>
+        /// Deserializes an object from a stream.
+        /// </summary>
+        /// <typeparam name="T">The expected object type</typeparam>
+        /// <param name="data">The stream containing the object</param>
+        /// <returns>The deserialized object</returns>
+        virtual public T DeserializeObject<T>(System.IO.Stream data)
+        {
+            return (T)DeserializeObject(typeof(T), data);
+        }
+
+		/// <summary>
+		/// Deserializes an object from a stream.
+		/// </summary>
+		/// <param name="type">The expected object type</param>
+		/// <param name="data">The stream containing the object</param>
+		/// <returns>The deserialized object</returns>
+		virtual public object DeserializeObject(Type type, System.IO.Stream data)
+		{
+            //HACK: MGOS 2.2 outputs different capabilities xml (because it's actually the correct one!), so 
+            //without breaking support against 2.1 and older servers, we transform the xml to its pre-2.2 form
+            if (type == typeof(FdoProviderCapabilities) && this.SiteVersion < new Version(2, 2))
+            {
+                StringBuilder sb = null;
+                using (StreamReader reader = new StreamReader(data))
+                {
+                    sb = new StringBuilder(reader.ReadToEnd());
+                }
+
+                //Pre-2.2 the elements were suffixed with Collection, change the suffix to List
+
+                sb.Replace("<FunctionDefinitionCollection>", "<FunctionDefinitionList>");
+                sb.Replace("</FunctionDefinitionCollection>", "</FunctionDefinitionList>");
+                sb.Replace("<FunctionDefinitionCollection/>", "<FunctionDefinitionList/>");
+                sb.Replace("<ArgumentDefinitionCollection>", "<ArgumentDefinitionList>");
+                sb.Replace("</ArgumentDefinitionCollection>", "</ArgumentDefinitionList>");
+                sb.Replace("<ArgumentDefinitionCollection/>", "<ArgumentDefinitionList/>");
+
+                byte[] bytes = Encoding.UTF8.GetBytes(sb.ToString());
+
+                //Replace the original input stream
+                data = new MemoryStream(bytes);
+            }
+
+			//Must copy stream, because we will be reading it twice :(
+			//Once for validation, and once for deserialization
+			System.IO.MemoryStream ms = new System.IO.MemoryStream();
+			Utility.CopyStream(data, ms);
+			ms.Position = 0;
+
+#if DEBUG_LASTMESSAGE
+			//Save us a copy for later investigation
+			using (System.IO.FileStream fs = System.IO.File.Open("lastResponse.xml", System.IO.FileMode.Create, System.IO.FileAccess.ReadWrite, System.IO.FileShare.None))
+				Utility.CopyStream(ms, fs);
+
+			ms.Position = 0;
+#endif
+			//TODO: Find out why the "xs:include" doesn't work with validator
+			//Validation is quite important, as we otherwise may end up injecting malicious code
+			//			if (!m_disableValidation)
+			//			{
+			//				m_validator.Validate(ms, GetSchema(type));
+			//				ms.Position = 0;
+			//			}
+
+			try
+			{
+				return GetSerializer(type).Deserialize(ms);
+			}
+			catch (Exception ex)
+			{
+				string s = ex.Message;
+				throw;
+			}
+		}
+
+		/// <summary>
+		/// Serialize an object into a new memory stream.
+		/// </summary>
+		/// <param name="o">The object to serialize</param>
+		/// <returns>A memorystream with the serialized object</returns>
+		virtual public System.IO.MemoryStream SerializeObject(object o)
+		{
+			System.IO.MemoryStream ms = new System.IO.MemoryStream();
+            GetSerializer(o.GetType()).Serialize(new Utf8XmlWriter(ms), o);
+            return Utility.RemoveUTF8BOM(ms);
+		}
+
+		/// <summary>
+		/// Serializes an object into a stream
+		/// </summary>
+		/// <param name="o">The object to serialize</param>
+		/// <param name="stream">The stream to serialize into</param>
+		virtual public void SerializeObject(object o, System.IO.Stream stream)
+		{
+			//The Utf8 writer makes sure the Utf8 tag is in place + sets encoding to Utf8
+			//This is needed because the server fails when rendering maps using non utf8 xml documents
+			//And the XmlSerializer sytem in .Net does not have a method to set the encoding attribute
+
+            //This does not remove the utf8 BOM marker :(
+            //GetSerializer(o.GetType()).Serialize(new Utf8XmlWriter(stream), o);
+
+            SerializeObject(o).WriteTo(stream);
+		}
+
+		/// <summary>
+		/// Returns an XmlSerializer for the given type
+		/// </summary>
+		/// <param name="type">The object type to serialize</param>
+		/// <returns>An XmlSerializer for the given type</returns>
+		virtual protected System.Xml.Serialization.XmlSerializer GetSerializer(Type type)
+		{
+			if (m_serializers[type] == null)
+				m_serializers[type] = new System.Xml.Serialization.XmlSerializer(type);
+			return (System.Xml.Serialization.XmlSerializer)m_serializers[type];
+        }
+
+        #endregion
+
+        #region Validation
+
+        /// <summary>
+        /// Gets or sets a flag that indicates if the Xml resources are validated before leaving and entering the server.
+        /// </summary>
+        public bool DisableValidation
+        {
+            get { return m_disableValidation; }
+            set { m_disableValidation = value; }
+        }
+
+        /// <summary>
+		/// Validates the current server version against the highest tested version.
+		/// </summary>
+		/// <param name="version">The version to validate</param>
+        virtual protected void ValidateVersion(ObjCommon.SiteVersion version)
+		{
+			ValidateVersion(new Version(version.Version));
+		}
+
+		/// <summary>
+		/// Validates the current server version against the highest tested version.
+		/// </summary>
+		/// <param name="version">The version to validate</param>
+		virtual protected void ValidateVersion(Version version)
+		{
+			if (version > this.MaxTestedVersion)
+				throw new Exception("Untested with MapGuide Build > " + this.MaxTestedVersion.ToString());
+        }
+
+        #endregion
+
+        /// <summary>
+        /// Gets the current SessionID.
+        /// </summary>
+        abstract public string SessionID { get; }
+
+        /// <summary>
+        /// Gets the interface of this connection
+        /// </summary>
+        /// <returns></returns>
+        protected abstract IServerConnection GetInterface();
+
+		/// <summary>
+		/// Removes the version numbers from a providername
+		/// </summary>
+		/// <param name="providername">The name of the provider, with or without version numbers</param>
+		/// <returns>The provider name without version numbers</returns>
+		virtual public string RemoveVersionFromProviderName(string providername)
+		{
+            return Utility.StripVersionFromProviderName(providername);
+		}
+
+		/// <summary>
+		/// Gets the Xsd schema for a given type.
+		/// </summary>
+		/// <param name="type">The type to get the schema for</param>
+		/// <returns>The schema for the given type</returns>
+		virtual protected System.Xml.Schema.XmlSchema GetSchema(Type type)
+		{
+			if (m_cachedSchemas[type] == null)
+			{
+				System.Reflection.FieldInfo fi = type.GetField("SchemaName", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public );
+				if (fi == null)
+					throw new Exception("Type " + type + ", does not contain Schema Info");
+
+				string xsd = (string)fi.GetValue(null);
+
+				using (System.IO.FileStream fs = System.IO.File.Open(System.IO.Path.Combine(m_schemasPath, xsd), System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read))
+					m_cachedSchemas.Add(type, System.Xml.Schema.XmlSchema.Read(fs, null));
+			}
+
+			return (System.Xml.Schema.XmlSchema)m_cachedSchemas[type];
+		
+		}
+
+		/// <summary>
+		/// Gets or sets the collection of cached schemas. Use the object type for key, and an XmlSchema instance for value.
+		/// </summary>
+		virtual public Hashtable CachedSchemas
+		{
+			get { return m_cachedSchemas; }
+			set { m_cachedSchemas = value; }
+		}
+
+        /// <summary>
+        /// Releases unmanaged and - optionally - managed resources
+        /// </summary>
+        abstract public void Dispose();
+
+        /// <summary>
+        /// Clones this instance.
+        /// </summary>
+        /// <returns></returns>
+        public abstract IServerConnection Clone();
+
+        /// <summary>
+        /// Raised when a outbound request has been dispatched
+        /// </summary>
+        public event RequestEventHandler RequestDispatched;
+
+        /// <summary>
+        /// Called when [request dispatched].
+        /// </summary>
+        /// <param name="data">The data.</param>
+        protected void OnRequestDispatched(string data)
+        {
+            var handler = this.RequestDispatched;
+            if (handler != null)
+                handler(this, new RequestEventArgs(data));
+        }
+
+        #region Resource Service
+
+        /// <summary>
+        /// Returns raw data from the server a byte array
+        /// </summary>
+        /// <param name="resourceID">The full resourceID to get data from</param>
+        /// <returns>Raw data from the given resource</returns>
+        public abstract Stream GetResourceXmlData(string resourceID);
+
+        /// <summary>
+        /// Returns an object deserialized from server data.
+        /// Uses the ResourceID to infer the object type.
+        /// </summary>
+        /// <param name="resourceID">The full resourceID of the item to retrieve.</param>
+        /// <returns>A deserialized object.</returns>
+        virtual public IResource GetResource(string resourceID)
+        {
+            var stream = GetResourceXmlData(resourceID);
+            var rt = ResourceIdentifier.GetResourceType(resourceID);
+
+            IResource o = ResourceTypeRegistry.Deserialize(rt, stream);
+            o.CurrentConnection = GetInterface();
+            o.ResourceID = resourceID;
+
+            return o;
+        }
+
+        /// <summary>
+        /// Deletes the resource.
+        /// </summary>
+        /// <param name="resourceid">The resourceid.</param>
+        public abstract void DeleteResource(string resourceid);
+
+        /// <summary>
+        /// Writes an object into a resourceID
+        /// </summary>
+        /// <param name="resourceid">The resource to write into</param>
+        /// <param name="resource">The resourcec to write</param>
+        virtual public void WriteResource(string resourceid, object resource)
+        {
+            System.IO.MemoryStream ms = SerializeObject(resource);
+            ms.Position = 0;
+
+            //Validate that our data is correctly formated
+            /*if (!m_disableValidation)
+            {
+                m_validator.Validate(ms, GetSchema(resource.GetType()));
+                ms.Position = 0;
+            }*/
+
+#if DEBUG_LASTMESSAGE
+			using (System.IO.Stream s = System.IO.File.Open("lastSave.xml", System.IO.FileMode.Create, System.IO.FileAccess.Write, System.IO.FileShare.None))
+				Utility.CopyStream(ms, s);
+			ms.Position = 0;
+#endif
+
+            SetResourceXmlData(resourceid, ms);
+        }
+
+        /// <summary>
+        /// Writes raw data into a resource.
+        /// </summary>
+        /// <param name="resourceid">The resourceID to write into</param>
+        /// <param name="stream">The stream containing the data to write.</param>
+        public virtual void SetResourceXmlData(string resourceid, System.IO.Stream stream)
+        {
+            SetResourceXmlData(resourceid, stream, null);
+        }
+
+        /// <summary>
+        /// Gets a full list of resources in the permanent server repository (Library).
+        /// This method returns the full catalog and should be used sparringly.
+        /// </summary>
+        /// <returns>A list of contained resources</returns>
+        virtual public ObjCommon.ResourceList GetRepositoryResources()
+        {
+            return GetRepositoryResources("Library://", null, -1, true);
+        }
+
+        /// <summary>
+        /// Gets a list of resources in the permanent server repository (Library).
+        /// This method limits folder recursion to the specified depth.
+        /// </summary>
+        /// <param name="depth">The max depth to recurse. Use -1 for no limit.</param>
+        /// <returns>A list of contained resources</returns>
+        virtual public ObjCommon.ResourceList GetRepositoryResources(int depth)
+        {
+            return GetRepositoryResources("Library://", null, depth, true);
+        }
+
+        /// <summary>
+        /// Gets a list of resources in the permanent server repository (Library).
+        /// This method limits folder recursion to the specified depth.
+        /// </summary>
+        /// <param name="startingpoint">The folder from which to return items. Use null for &quot;Library://&quot;</param>
+        /// <param name="depth">The max depth to recurse. Use -1 for no limit.</param>
+        /// <returns>A list of contained resources</returns>
+        virtual public ObjCommon.ResourceList GetRepositoryResources(string startingpoint, int depth)
+        {
+            return GetRepositoryResources(startingpoint, null, depth, true);
+        }
+
+        /// <summary>
+        /// Gets a list of resources in the permanent server repository (Library).
+        /// This method limits folder recursion to the specified depth.
+        /// </summary>
+        /// <param name="startingpoint">The folder from which to return items. Use null for &quot;Library://&quot;</param>
+        /// <returns>A list of contained resources</returns>
+        virtual public ObjCommon.ResourceList GetRepositoryResources(string startingpoint)
+        {
+            return GetRepositoryResources(startingpoint, null, -1, true);
+        }
+
+        /// <summary>
+        /// Gets a list of resources in the permanent server repository (Library).
+        /// This method limits folder recursion to the specified depth.
+        /// </summary>
+        /// <param name="startingpoint">The folder from which to return items. Use null for &quot;Library://&quot;</param>
+        /// <param name="type">The type of resource to look for. Basically this is the resource extension, like &quot;.MapDefinition&quot;. Use null for all resources.</param>
+        /// <returns>A list of contained resources</returns>
+        virtual public ObjCommon.ResourceList GetRepositoryResources(string startingpoint, string type)
+        {
+            return GetRepositoryResources(startingpoint, type, -1, true);
+        }
+
+        /// <summary>
+        /// Gets a list of resources in the permanent server repository (Library).
+        /// This method limits folder recursion to the specified depth.
+        /// </summary>
+        /// <param name="startingpoint">The folder from which to return items. Use null for &quot;Library://&quot;</param>
+        /// <param name="type">The type of resource to look for. Basically this is the resource extension, like &quot;.MapDefinition&quot;. Use null for all resources.</param>
+        /// <param name="depth">The max depth to recurse. Use -1 for no limit.</param>
+        /// <returns>A list of contained resources</returns>
+        public ObjCommon.ResourceList GetRepositoryResources(string startingpoint, string type, int depth)
+        {
+            return GetRepositoryResources(startingpoint, type, depth, true);
+        }
+
+        /// <summary>
+        /// Gets a list of resources in the permanent server repository (Library).
+        /// </summary>
+        /// <param name="startingpoint">The folder from which to return items. Use null for &quot;Library://&quot;</param>
+        /// <param name="type">The type of resource to look for. Basically this is the resource extension, like &quot;.MapDefinition&quot;. Use null for all resources.</param>
+        /// <param name="depth">The max depth to recurse. Use -1 for no limit.</param>
+        /// <param name="computeChildren">A flag indicating if the count of subfolders and resources should be calculated for leaf nodes</param>
+        /// <returns>A list of contained resources</returns>
+        abstract public ObjCommon.ResourceList GetRepositoryResources(string startingpoint, string type, int depth, bool computeChildren);
+
+        /// <summary>
+        /// Returns a boolean indicating if a given resource exists
+        /// </summary>
+        /// <param name="resourceid">The resource to look for</param>
+        /// <returns>True if the resource exists false otherwise. Also returns false on error.</returns>
+        public virtual bool ResourceExists(string resourceid)
+        {
+            try
+            {
+                string sourcefolder;
+                if (resourceid.EndsWith("/"))
+                    sourcefolder = resourceid.Substring(0, resourceid.Substring(0, resourceid.Length - 1).LastIndexOf("/") + 1);
+                else
+                    sourcefolder = resourceid.Substring(0, resourceid.LastIndexOf("/") + 1);
+
+                ObjCommon.ResourceList lst = GetRepositoryResources(sourcefolder, 1);
+                foreach (object o in lst.Items)
+                    if (o.GetType() == typeof(ObjCommon.ResourceListResourceFolder) && ((ObjCommon.ResourceListResourceFolder)o).ResourceId == resourceid)
+                        return true;
+                    else if (o.GetType() == typeof(ObjCommon.ResourceListResourceDocument) && ((ObjCommon.ResourceListResourceDocument)o).ResourceId == resourceid)
+                        return true;
+
+                return false;
+            }
+            catch
+            {
+                return false;
+            }
+        }
+
+        /// <summary>
+        /// Updates all resource references inside an object.
+        /// </summary>
+        /// <param name="o">The object in which the resource references are to be updated</param>
+        /// <param name="oldresourcepath">The current resource path, the one updating from</param>
+        /// <param name="newresourcepath">The new resource path, the one updating to</param>
+        /// <param name="folderupdates">True if the old and new resource path identifiers are folders, false otherwise</param>
+        public virtual void UpdateResourceReferences(object o, string oldresourcepath, string newresourcepath, bool folderupdates)
+        {
+            UpdateResourceReferences(o, oldresourcepath, newresourcepath, folderupdates, new Hashtable());
+        }
+
+        /// <summary>
+        /// Updates all resource references inside an object.
+        /// </summary>
+        /// <param name="o">The object in which the resource references are to be updated</param>
+        /// <param name="oldresourcepath">The current resource path, the one updating from</param>
+        /// <param name="newresourcepath">The new resource path, the one updating to</param>
+        /// <param name="folderupdates">True if the old and new resource path identifiers are folders, false otherwise</param>
+        /// <param name="visited">A hashtable with objects previously visited. Used for recursion, leave as null when calling from outside the API.</param>
+        protected void UpdateResourceReferences(object o, string oldresourcepath, string newresourcepath, bool folderupdates, Hashtable visited)
+        {
+            if (o == null)
+                return;
+
+            if (visited == null)
+                visited = new Hashtable();
+
+            //Prevent infinite recursion
+            if (o as string == null && !o.GetType().IsPrimitive)
+            {
+                if (visited.ContainsKey(o))
+                    return;
+                else
+                    visited.Add(o, null);
+            }
+
+            if (folderupdates)
+            {
+                if (!oldresourcepath.EndsWith("/"))
+                    oldresourcepath += "/";
+                if (!newresourcepath.EndsWith("/"))
+                    newresourcepath += "/";
+            }
+
+            //If the value is a document or fragment of a document, we still wan't to repoint it
+            if (o as System.Xml.XmlDocument != null || o as System.Xml.XmlNode != null)
+            {
+                Queue<System.Xml.XmlNode> lst = new Queue<System.Xml.XmlNode>();
+                if (o as System.Xml.XmlDocument != null)
+                {
+                    foreach (System.Xml.XmlNode n in (o as System.Xml.XmlDocument).ChildNodes)
+                        if (n.NodeType == System.Xml.XmlNodeType.Element)
+                            lst.Enqueue(n);
+                }
+                else
+                    lst.Enqueue(o as System.Xml.XmlNode);
+
+                while (lst.Count > 0)
+                {
+                    System.Xml.XmlNode n = lst.Dequeue();
+
+                    foreach (System.Xml.XmlNode nx in n.ChildNodes)
+                        if (nx.NodeType == System.Xml.XmlNodeType.Element)
+                            lst.Enqueue(nx);
+
+                    if (n.Name == "ResourceId")
+                    {
+                        string current = n.InnerXml;
+                        if (folderupdates && current.StartsWith(oldresourcepath))
+                            n.InnerXml = newresourcepath + current.Substring(oldresourcepath.Length);
+                        else if (current == oldresourcepath)
+                            n.InnerXml = newresourcepath;
+                    }
+
+                    foreach (System.Xml.XmlAttribute a in n.Attributes)
+                        if (a.Name == "ResourceId")
+                        {
+                            string current = a.Value;
+                            if (folderupdates && current.StartsWith(oldresourcepath))
+                                n.Value = newresourcepath + current.Substring(oldresourcepath.Length);
+                            else if (current == oldresourcepath)
+                                n.Value = newresourcepath;
+                        }
+                }
+
+                //There can be no objects in an xml document or node, so just return immediately
+                return;
+            }
+
+            //Try to find the object properties
+            foreach (System.Reflection.PropertyInfo pi in o.GetType().GetProperties())
+            {
+                //Only index free read-write properties are taken into account
+                if (!pi.CanRead || !pi.CanWrite || pi.GetIndexParameters().Length != 0 || pi.GetValue(o, null) == null)
+                    continue;
+
+                object v = pi.GetValue(o, null);
+                if (v == null)
+                    continue;
+
+                if (v is string)
+
+                    //If we are at a ResourceId property, update it as needed
+                    if (v is string)
+                    {
+                        bool isResId = pi.Name == "ResourceId";
+                        if (!isResId)
+                        {
+                            //Search for attributes
+                            object[] xmlAttrs = pi.GetCustomAttributes(typeof(System.Xml.Serialization.XmlElementAttribute), false);
+                            if (xmlAttrs != null)
+                                foreach (System.Xml.Serialization.XmlElementAttribute attr in xmlAttrs)
+                                    if (attr.Type == typeof(string) && attr.ElementName == "ResourceId")
+                                        if (pi.Name == "ResourceId")
+                                        {
+                                            isResId = true;
+                                            break;
+                                        }
+                        }
+
+                        if (isResId)
+                        {
+                            string current = v as string;
+
+                            if (current != null)
+                            {
+                                if (folderupdates && current.StartsWith(oldresourcepath))
+                                    pi.SetValue(o, newresourcepath + current.Substring(oldresourcepath.Length), null);
+                                else if (current == oldresourcepath)
+                                    pi.SetValue(o, newresourcepath, null);
+                            }
+                        }
+                    }
+                    else if (v is IEnumerable)
+                    {
+                        //Handle collections
+                        System.Collections.IEnumerable srcList = (System.Collections.IEnumerable)v;
+                        foreach (object ox in srcList)
+                            UpdateResourceReferences(ox, oldresourcepath, newresourcepath, folderupdates, visited);
+                    }
+                    else if (v.GetType().IsArray)
+                    {
+                        //Handle arrays
+                        System.Array sourceArr = (System.Array)v;
+                        for (int i = 0; i < sourceArr.Length; i++)
+                            UpdateResourceReferences(sourceArr.GetValue(i), oldresourcepath, newresourcepath, folderupdates, visited);
+                    }
+                    else if (v.GetType().IsClass)
+                    {
+                        //Handle subobjects
+                        UpdateResourceReferences(v, oldresourcepath, newresourcepath, folderupdates, visited);
+                    }
+            }
+
+        }
+
+
+        /// <summary>
+        /// Moves a resource, and subsequently updates all resources pointing to the old resource path
+        /// </summary>
+        /// <param name="oldpath">The current resource path, the one moving from</param>
+        /// <param name="newpath">The new resource path, the one moving to</param>
+        /// <param name="callback">A callback delegate, being called for non progress reporting events.</param>
+        /// <param name="progress">A callback delegate, being called for progress reporting events.</param>
+        /// <returns></returns>
+        public virtual bool MoveResourceWithReferences(string oldpath, string newpath, LengthyOperationCallBack callback, LengthyOperationProgressCallBack progress)
+        {
+            LengthyOperationProgressArgs la = new LengthyOperationProgressArgs(Properties.Resources.MovingResource, -1);
+
+            if (progress != null)
+                progress(this, la);
+            if (la.Cancel)
+                return false;
+            MoveResource(oldpath, newpath, true);
+            la.Progress = 100;
+            if (progress != null)
+                progress(this, la);
+            if (la.Cancel)
+                return false;
+
+            la.Progress = -1;
+            if (progress != null)
+                progress(this, la);
+            if (la.Cancel)
+                return false;
+
+            ArrayList items = new ArrayList();
+            Hashtable paths = new Hashtable();
+
+            //The old path does not exist, but luckily the call works anyway
+            ObjCommon.ResourceReferenceList rlf = EnumerateResourceReferences(oldpath);
+
+            foreach (string s in rlf.ResourceId)
+                if (!paths.ContainsKey(s))
+                {
+                    items.Add(new LengthyOperationCallbackArgs.LengthyOperationItem(s));
+                    paths.Add(s, null);
+                }
+
+            la.Progress = 100;
+            if (progress != null)
+                progress(this, la);
+            if (la.Cancel)
+                return false;
+
+            LengthyOperationCallbackArgs args = new LengthyOperationCallbackArgs((LengthyOperationCallbackArgs.LengthyOperationItem[])items.ToArray(typeof(LengthyOperationCallbackArgs.LengthyOperationItem)));
+
+            if (callback != null)
+                callback(this, args);
+
+            if (args.Cancel)
+                return false;
+
+            if (args.Index > args.Items.Length)
+                return true;
+
+            if (args.Items.Length == 0)
+                return true;
+
+            do
+            {
+                LengthyOperationCallbackArgs.LengthyOperationItem item = args.Items[args.Index];
+                item.Status = LengthyOperationCallbackArgs.LengthyOperationItem.OperationStatus.Pending;
+
+                if (callback != null)
+                {
+                    callback(this, args);
+                    if (args.Cancel) return false;
+                }
+
+                try
+                {
+                    System.Xml.XmlDocument d = new System.Xml.XmlDocument();
+                    using (var ms = GetResourceXmlData(item.Itempath))
+                        d.Load(ms);
+
+                    UpdateResourceReferences(d, oldpath, newpath, false);
+                    using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
+                    {
+                        d.Save(ms);
+                        ms.Position = 0;
+
+                        SetResourceXmlData(item.Itempath, ms);
+                    }
+                    item.Status = LengthyOperationCallbackArgs.LengthyOperationItem.OperationStatus.Success;
+                }
+                catch (Exception ex)
+                {
+                    string s = ex.Message;
+                    item.Status = LengthyOperationCallbackArgs.LengthyOperationItem.OperationStatus.Failure;
+                }
+
+                if (callback != null)
+                {
+                    callback(this, args);
+                    if (args.Cancel) return false;
+                }
+
+                args.Index++;
+            } while (!args.Cancel && args.Index < args.Items.Length);
+
+            return !args.Cancel;
+        }
+
+        /// <summary>
+        /// Moves a folder, and subsequently updates all resources pointing to the old resource path
+        /// </summary>
+        /// <param name="oldpath">The current folder path, the one moving from</param>
+        /// <param name="newpath">The new folder path, the one moving to</param>
+        /// <param name="callback">A callback delegate, being called for non progress reporting events.</param>
+        /// <param name="progress">A callback delegate, being called for progress reporting events.</param>
+        /// <returns></returns>
+        public virtual bool MoveFolderWithReferences(string oldpath, string newpath, LengthyOperationCallBack callback, LengthyOperationProgressCallBack progress)
+        {
+            oldpath = FixAndValidateFolderPath(oldpath);
+            newpath = FixAndValidateFolderPath(newpath);
+
+            LengthyOperationProgressArgs la = new LengthyOperationProgressArgs("Moving folder...", -1);
+
+            if (progress != null)
+                progress(this, la);
+            if (la.Cancel)
+                return false;
+
+            MoveFolder(oldpath, newpath, true);
+            la.Progress = 100;
+            if (progress != null)
+                progress(this, la);
+            if (la.Cancel)
+                return false;
+
+            int pg = 0;
+            la.Progress = 0;
+            la.StatusMessage = "Finding folder references...";
+            if (progress != null)
+                progress(this, la);
+            if (la.Cancel)
+                return false;
+
+            ObjCommon.ResourceList lst = GetRepositoryResources(newpath);
+
+            Hashtable items = new Hashtable();
+            foreach (object o in lst.Items)
+            {
+                if (o.GetType() == typeof(ObjCommon.ResourceListResourceDocument))
+                {
+                    //The old path does not exist, but we need to enumerate references at the old location
+                    string resource_oldpath = ((ObjCommon.ResourceListResourceDocument)o).ResourceId;
+                    resource_oldpath = oldpath + resource_oldpath.Substring(newpath.Length);
+
+                    ObjCommon.ResourceReferenceList rlf = EnumerateResourceReferences(resource_oldpath);
+                    foreach (string s in rlf.ResourceId)
+                        if (!items.Contains(s))
+                            items.Add(s, new LengthyOperationCallbackArgs.LengthyOperationItem(s));
+                }
+
+                pg++;
+                la.Progress = Math.Max(Math.Min(99, (int)(((double)pg / (double)lst.Items.Count) * (double)100)), 0);
+
+                if (progress != null)
+                    progress(this, la);
+                if (la.Cancel)
+                    return false;
+            }
+
+            la.Progress = 100;
+            if (progress != null)
+                progress(this, la);
+            if (la.Cancel)
+                return false;
+
+            LengthyOperationCallbackArgs.LengthyOperationItem[] vi = new LengthyOperationCallbackArgs.LengthyOperationItem[items.Values.Count];
+            items.Values.CopyTo(vi, 0);
+            LengthyOperationCallbackArgs args = new LengthyOperationCallbackArgs(vi);
+
+            if (callback != null)
+                callback(this, args);
+
+            if (args.Cancel)
+                return false;
+
+            if (args.Index > args.Items.Length)
+                return true;
+
+            if (args.Items.Length == 0)
+                return true;
+
+            do
+            {
+                LengthyOperationCallbackArgs.LengthyOperationItem item = args.Items[args.Index];
+                item.Status = LengthyOperationCallbackArgs.LengthyOperationItem.OperationStatus.Pending;
+
+                if (callback != null)
+                {
+                    callback(this, args);
+                    if (args.Cancel)
+                        return false;
+                }
+
+                try
+                {
+                    System.Xml.XmlDocument d = new System.Xml.XmlDocument();
+                    using (var ms = GetResourceXmlData(item.Itempath))
+                        d.Load(ms);
+
+                    UpdateResourceReferences(d, oldpath, newpath, true);
+                    using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
+                    {
+                        d.Save(ms);
+                        ms.Position = 0;
+
+                        SetResourceXmlData(item.Itempath, ms);
+                    }
+                    item.Status = LengthyOperationCallbackArgs.LengthyOperationItem.OperationStatus.Success;
+                }
+                catch (Exception ex)
+                {
+                    string s = ex.Message;
+                    item.Status = LengthyOperationCallbackArgs.LengthyOperationItem.OperationStatus.Failure;
+                }
+
+                if (callback != null)
+                {
+                    callback(this, args);
+                    if (args.Cancel)
+                        return false;
+                }
+
+                args.Index++;
+            } while (!args.Cancel && args.Index < args.Items.Length);
+
+            return !args.Cancel;
+        }
+
+        /// <summary>
+        /// Copies folder, and subsequently updates all resources within the folder to use the new folder path instead of the originating one.
+        /// </summary>
+        /// <param name="oldpath">The current folder path, the one copying from</param>
+        /// <param name="newpath">The new folder path, the one copying to</param>
+        /// <param name="callback">A callback delegate, being called for non progress reporting events.</param>
+        /// <param name="progress">A callback delegate, being called for progress reporting events.</param>
+        /// <returns></returns>
+        public bool CopyFolderWithReferences(string oldpath, string newpath, LengthyOperationCallBack callback, LengthyOperationProgressCallBack progress)
+        {
+            oldpath = FixAndValidateFolderPath(oldpath);
+            newpath = FixAndValidateFolderPath(newpath);
+            ObjCommon.ResourceList lst = GetRepositoryResources(oldpath);
+
+            LengthyOperationProgressArgs la = new LengthyOperationProgressArgs("Copying folder...", -1);
+            if (progress != null)
+                progress(this, la);
+            if (la.Cancel)
+                return false;
+            CopyFolder(oldpath, newpath, true);
+            la.Progress = 100;
+            if (progress != null)
+                progress(this, la);
+            if (la.Cancel)
+                return false;
+
+
+            la.Progress = 0;
+            la.StatusMessage = "Finding folder references...";
+            int pg = 0;
+            if (progress != null)
+                progress(this, la);
+            if (la.Cancel)
+                return false;
+            ArrayList items = new ArrayList();
+            Hashtable paths = new Hashtable();
+            foreach (object o in lst.Items)
+            {
+                if (o.GetType() == typeof(ObjCommon.ResourceListResourceDocument))
+                {
+                    ObjCommon.ResourceReferenceList rlf = EnumerateResourceReferences(((ObjCommon.ResourceListResourceDocument)o).ResourceId);
+                    foreach (string s in rlf.ResourceId)
+                        if (s.StartsWith(oldpath))
+                        {
+                            string dest = newpath + s.Substring(oldpath.Length);
+                            if (!paths.ContainsKey(dest))
+                            {
+                                items.Add(new LengthyOperationCallbackArgs.LengthyOperationItem(dest));
+                                paths.Add(dest, null);
+                            }
+                        }
+                }
+                pg++;
+                la.Progress = Math.Max(Math.Min(99, (int)(((double)pg / (double)lst.Items.Count) * (double)100)), 0);
+
+                if (progress != null)
+                    progress(this, la);
+                if (la.Cancel)
+                    return false;
+            }
+
+            la.Progress = 100;
+            if (progress != null)
+                progress(this, la);
+            if (la.Cancel)
+                return false;
+
+            LengthyOperationCallbackArgs args = new LengthyOperationCallbackArgs((LengthyOperationCallbackArgs.LengthyOperationItem[])items.ToArray(typeof(LengthyOperationCallbackArgs.LengthyOperationItem)));
+
+            if (callback != null)
+                callback(this, args);
+
+            if (args.Cancel)
+                return false;
+
+            if (args.Index > args.Items.Length)
+                return true;
+
+            if (args.Items.Length == 0)
+                return true;
+
+            do
+            {
+                LengthyOperationCallbackArgs.LengthyOperationItem item = args.Items[args.Index];
+                item.Status = LengthyOperationCallbackArgs.LengthyOperationItem.OperationStatus.Pending;
+
+                if (callback != null)
+                {
+                    callback(this, args);
+                    if (args.Cancel) return false;
+                }
+
+                try
+                {
+                    System.Xml.XmlDocument d = new System.Xml.XmlDocument();
+                    using (var ms = GetResourceXmlData(item.Itempath))
+                        d.Load(ms);
+
+                    UpdateResourceReferences(d, oldpath, newpath, true);
+                    using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
+                    {
+                        d.Save(ms);
+                        ms.Position = 0;
+
+                        SetResourceXmlData(item.Itempath, ms);
+                    }
+                    item.Status = LengthyOperationCallbackArgs.LengthyOperationItem.OperationStatus.Success;
+                }
+                catch (Exception ex)
+                {
+                    string s = ex.Message;
+                    item.Status = LengthyOperationCallbackArgs.LengthyOperationItem.OperationStatus.Failure;
+                }
+
+                if (callback != null)
+                {
+                    callback(this, args);
+                    if (args.Cancel) return false;
+                }
+
+                args.Index++;
+            } while (!args.Cancel && args.Index < args.Items.Length);
+
+            return !args.Cancel;
+        }
+
+        /// <summary>
+        /// Validates the origin of the folder, and ensures the folder path has a trailing slash.
+        /// </summary>
+        /// <param name="folderpath">The path to validate and fix</param>
+        /// <returns>The fixed path</returns>
+        virtual protected string FixAndValidateFolderPath(string folderpath)
+        {
+            if (!folderpath.StartsWith("Library://") && !folderpath.StartsWith("Session:" + this.SessionID + "//"))
+                throw new Exception("Invalid folder path, must be either library or session");
+
+            if (!folderpath.EndsWith("/"))
+                folderpath += "/";
+
+            return folderpath;
+        }
+
+        /// <summary>
+        /// Creates a folder on the server
+        /// </summary>
+        /// <param name="resourceID">The path of the folder to create</param>
+        virtual public void CreateFolder(string resourceID)
+        {
+            resourceID = FixAndValidateFolderPath(resourceID);
+            SetResourceXmlData(resourceID, new System.IO.MemoryStream());
+        }
+
+        /// <summary>
+        /// Returns a value indicating if a given folder exists
+        /// </summary>
+        /// <param name="folderpath">The path of the folder</param>
+        /// <returns>True if the folder exists, false otherwise. Also returns false on error.</returns>
+        virtual public bool HasFolder(string folderpath)
+        {
+            folderpath = FixAndValidateFolderPath(folderpath);
+
+            try
+            {
+                ObjCommon.ResourceList l = this.GetRepositoryResources(folderpath, 1);
+                return true;
+            }
+            catch
+            {
+                return false;
+            }
+        }
+
+        /// <summary>
+        /// Enumereates all references to a given resource
+        /// </summary>
+        /// <param name="resourceid">The resource to enumerate references for</param>
+        /// <returns>A list of resources that reference the given resourceID</returns>
+        abstract public ObjCommon.ResourceReferenceList EnumerateResourceReferences(string resourceid);
+
+        /// <summary>
+        /// Copies a resource from one location to another. This does not update any references.
+        /// </summary>
+        /// <param name="oldpath">The current resource path, the one copying from</param>
+        /// <param name="newpath">The new resource path, the one copying to</param>
+        /// <param name="overwrite">True if the copy can overwrite an existing resource, false otherwise</param>
+        abstract public void CopyResource(string oldpath, string newpath, bool overwrite);
+
+        /// <summary>
+        /// Copies a folder and all its content. This does not update any references.
+        /// </summary>
+        /// <param name="oldpath">The current folder path, the one copying from</param>
+        /// <param name="newpath">The new folder path, the one copying to</param>
+        /// <param name="overwrite">True if the copy can overwrite an existing folder, false otherwise</param>
+        abstract public void CopyFolder(string oldpath, string newpath, bool overwrite);
+
+        /// <summary>
+        /// Moves a resource from one location to another. This does not update any references.
+        /// </summary>
+        /// <param name="oldpath">The current resource path, the one moving from</param>
+        /// <param name="newpath">The new resource path, the one moving to</param>
+        /// <param name="overwrite">True if the move can overwrite an existing resource, false otherwise</param>
+        abstract public void MoveResource(string oldpath, string newpath, bool overwrite);
+
+        /// <summary>
+        /// Moves a folder and its content from one location to another. This does not update any references.
+        /// </summary>
+        /// <param name="oldpath">The current folder path, the one moving from</param>
+        /// <param name="newpath">The new folder path, the one moving to</param>
+        /// <param name="overwrite">True if the move can overwrite an existing folder, false otherwise</param>
+        abstract public void MoveFolder(string oldpath, string newpath, bool overwrite);
+
+
+        /// <summary>
+        /// Returns data from a resource as a memorystream
+        /// </summary>
+        /// <param name="resourceID">The id of the resource to fetch data from</param>
+        /// <param name="dataname">The name of the associated data item</param>
+        /// <returns>A stream containing the references resource data</returns>
+        abstract public System.IO.MemoryStream GetResourceData(string resourceID, string dataname);
+
+        /// <summary>
+        /// Uploads data to a resource
+        /// </summary>
+        /// <param name="resourceid">The id of the resource to update</param>
+        /// <param name="dataname">The name of the data to update or create</param>
+        /// <param name="datatype">The type of data</param>
+        /// <param name="stream">A stream containing the new content of the resource data</param>
+        virtual public void SetResourceData(string resourceid, string dataname, ObjCommon.ResourceDataType datatype, System.IO.Stream stream)
+        {
+            SetResourceData(resourceid, dataname, datatype, stream, null);
+        }
+
+        /// <summary>
+        /// Uploads data to a resource
+        /// </summary>
+        /// <param name="resourceid">The id of the resource to update</param>
+        /// <param name="dataname">The name of the data to update or create</param>
+        /// <param name="datatype">The type of data</param>
+        /// <param name="stream">A stream containing the new content of the resource data</param>
+        /// <param name="callback">The callback.</param>
+        abstract public void SetResourceData(string resourceid, string dataname, ObjCommon.ResourceDataType datatype, System.IO.Stream stream, Utility.StreamCopyProgressDelegate callback);
+
+        /// <summary>
+        /// Saves the resource.
+        /// </summary>
+        /// <param name="resource">The resource.</param>
+        public void SaveResource(OSGeo.MapGuide.MaestroAPI.Resource.IResource resource)
+        {
+            SaveResourceAs(resource, resource.ResourceID);
+        }
+
+        /// <summary>
+        /// Saves the resource with the specified resource ID
+        /// </summary>
+        /// <param name="resource">The resource.</param>
+        /// <param name="resourceid">The resourceid.</param>
+        public void SaveResourceAs(OSGeo.MapGuide.MaestroAPI.Resource.IResource resource, string resourceid)
+        {
+            var stream = resource.SerializeToStream();
+            SetResourceXmlData(resourceid, stream);
+        }
+
+        /// <summary>
+        /// Upload a MapGuide Package file to the server
+        /// </summary>
+        /// <param name="filename">Name of the file to upload</param>
+        /// <param name="callback">A callback argument used to display progress. May be null.</param>
+        abstract public void UploadPackage(string filename, Utility.StreamCopyProgressDelegate callback);
+
+        /// <summary>
+        /// Updates the repository.
+        /// </summary>
+        /// <param name="resourceId">The resource id.</param>
+        /// <param name="header">The header.</param>
+        abstract public void UpdateRepository(string resourceId, ObjCommon.ResourceFolderHeaderType header);
+
+        /// <summary>
+        /// Gets the folder or resource header.
+        /// </summary>
+        /// <param name="resourceId">The resource id.</param>
+        /// <returns></returns>
+        abstract public object GetFolderOrResourceHeader(string resourceId);
+
+        /// <summary>
+        /// Sets the resource XML data.
+        /// </summary>
+        /// <param name="resourceId">The resource id.</param>
+        /// <param name="content">The content.</param>
+        /// <param name="header">The header.</param>
+        abstract public void SetResourceXmlData(string resourceId, System.IO.Stream content, System.IO.Stream header);
+
+        /// <summary>
+        /// Gets the resource header.
+        /// </summary>
+        /// <param name="resourceID">The resource ID.</param>
+        /// <returns></returns>
+        public virtual ObjCommon.ResourceDocumentHeaderType GetResourceHeader(string resourceID)
+        {
+            return (ObjCommon.ResourceDocumentHeaderType)this.GetFolderOrResourceHeader(resourceID);
+        }
+
+        /// <summary>
+        /// Gets the folder header.
+        /// </summary>
+        /// <param name="resourceID">The resource ID.</param>
+        /// <returns></returns>
+        public virtual ObjCommon.ResourceFolderHeaderType GetFolderHeader(string resourceID)
+        {
+            if (resourceID.EndsWith("//"))
+            {
+                ObjCommon.ResourceList lst = this.GetRepositoryResources(resourceID, 0);
+                ObjCommon.ResourceListResourceFolder fld = lst.Items[0] as ObjCommon.ResourceListResourceFolder;
+                return fld.ResourceFolderHeader;
+            }
+            else
+                return (ObjCommon.ResourceFolderHeaderType)this.GetFolderOrResourceHeader(resourceID);
+        }
+
+        /// <summary>
+        /// Sets the folder header.
+        /// </summary>
+        /// <param name="resourceID">The resource ID.</param>
+        /// <param name="header">The header.</param>
+        public virtual void SetFolderHeader(string resourceID, ObjCommon.ResourceFolderHeaderType header)
+        {
+            SetFolderOrResourceHeader(resourceID, header);
+        }
+
+        /// <summary>
+        /// Sets the resource header.
+        /// </summary>
+        /// <param name="resourceID">The resource ID.</param>
+        /// <param name="header">The header.</param>
+        public virtual void SetResourceHeader(string resourceID, ObjCommon.ResourceDocumentHeaderType header)
+        {
+            SetFolderOrResourceHeader(resourceID, header);
+        }
+
+        /// <summary>
+        /// Sets the folder or resource header.
+        /// </summary>
+        /// <param name="resourceID">The resource ID.</param>
+        /// <param name="header">The header.</param>
+        public virtual void SetFolderOrResourceHeader(string resourceID, object header)
+        {
+            if (header == null)
+                throw new ArgumentNullException("header");
+
+            ObjCommon.ResourceSecurityType sec;
+            if (header as ObjCommon.ResourceFolderHeaderType != null)
+                sec = (header as ObjCommon.ResourceFolderHeaderType).Security;
+            else if (header as ObjCommon.ResourceDocumentHeaderType != null)
+                sec = (header as ObjCommon.ResourceDocumentHeaderType).Security;
+            else
+                throw new ArgumentException("Header must be either ResourceFolderHeaderType or ResourceDocumentHeaderType", "header");
+
+            if (sec.Users != null && sec.Users.User != null && sec.Users.User.Count == 0)
+                sec.Users = null;
+
+            if (sec.Groups != null && sec.Groups.Group != null && sec.Groups.Group.Count == 0)
+                sec.Groups = null;
+
+            if (resourceID.EndsWith("//"))
+            {
+                if (header as ObjCommon.ResourceFolderHeaderType == null)
+                    throw new Exception("The resourceId: " + resourceID + " must be updated with a folder header");
+                UpdateRepository(resourceID, header as ObjCommon.ResourceFolderHeaderType);
+            }
+            else
+                this.SetResourceXmlData(resourceID, null, this.SerializeObject(header));
+        }
+
+
+        /// <summary>
+        /// Enumerates all unmanaged folders, meaning alias'ed folders
+        /// </summary>
+        /// <param name="type">The type of data to return</param>
+        /// <param name="filter">A filter applied to the items</param>
+        /// <param name="recursive">True if the list should contains recursive results</param>
+        /// <param name="startpath">The path to retrieve the data from</param>
+        /// <returns>A list of unmanaged data</returns>
+        abstract public ObjCommon.UnmanagedDataList EnumerateUnmanagedData(string startpath, string filter, bool recursive, UnmanagedDataTypes type);
+
+        #endregion
+
+        #region Feature Service
+
+        /// <summary>
+        /// Returns an installed provider, given the name of the provider
+        /// </summary>
+        /// <param name="providername">The name of the provider</param>
+        /// <returns>The first matching provider or null</returns>
+        virtual public ObjCommon.FeatureProviderRegistryFeatureProvider GetFeatureProvider(string providername)
+        {
+            string pname = RemoveVersionFromProviderName(providername).ToLower();
+            foreach (ObjCommon.FeatureProviderRegistryFeatureProvider p in this.FeatureProviders)
+                if (RemoveVersionFromProviderName(p.Name).ToLower().Equals(pname.ToLower()))
+                    return p;
+
+            return null;
+        }
+
+        /// <summary>
+        /// Tests the connection.
+        /// </summary>
+        /// <param name="featuresource">The featuresource.</param>
+        /// <returns></returns>
+        public abstract string TestConnection(string featuresource);
+
+        /// <summary>
+        /// Gets a list of installed feature providers
+        /// </summary>
+        abstract public ObjCommon.FeatureProviderRegistryFeatureProvider[] FeatureProviders { get; }
+
+
+        /// <summary>
+        /// Returns the spatial info for a given featuresource
+        /// </summary>
+        /// <param name="resourceID">The ID of the resource to query</param>
+        /// <param name="activeOnly">Query only active items</param>
+        /// <returns>A list of spatial contexts</returns>
+        abstract public ObjCommon.FdoSpatialContextList GetSpatialContextInfo(string resourceID, bool activeOnly);
+
+        /// <summary>
+        /// Gets the names of the identity properties from a feature
+        /// </summary>
+        /// <param name="resourceID">The resourceID for the FeatureSource</param>
+        /// <param name="classname">The classname of the feature, including schema</param>
+        /// <returns>A string array with the found identities</returns>
+        abstract public string[] GetIdentityProperties(string resourceID, string classname);
+
+        /// <summary>
+        /// Describes the feature source.
+        /// </summary>
+        /// <param name="resourceID">The resource ID.</param>
+        /// <returns></returns>
+        abstract public FeatureSourceDescription DescribeFeatureSource(string resourceID);
+
+        /// <summary>
+        /// Describes the feature source.
+        /// </summary>
+        /// <param name="resourceID">The resource ID.</param>
+        /// <param name="schema">The schema.</param>
+        /// <returns></returns>
+        abstract public FeatureSourceDescription DescribeFeatureSource(string resourceID, string schema);
+
+        /// <summary>
+        /// feature source description cache
+        /// </summary>
+        protected Dictionary<string, FeatureSourceDescription> m_featureSchemaCache = new Dictionary<string, FeatureSourceDescription>();
+        /// <summary>
+        /// a class definition cache
+        /// </summary>
+        protected Dictionary<string, ClassDefinition> m_featureSchemaNameCache = new Dictionary<string, ClassDefinition>();
+
+        /// <summary>
+        /// Gets the feature source description.
+        /// </summary>
+        /// <param name="resourceID">The resource ID.</param>
+        /// <returns></returns>
+        public virtual FeatureSourceDescription GetFeatureSourceDescription(string resourceID)
+        {
+            if (!m_featureSchemaCache.ContainsKey(resourceID))
+            {
+                try
+                {
+                    m_featureSchemaCache[resourceID] = this.DescribeFeatureSource(resourceID);
+                    foreach (ClassDefinition scm in m_featureSchemaCache[resourceID].Classes)
+                        m_featureSchemaNameCache[resourceID + "!" + scm.QualifiedNameDecoded] = scm;
+                }
+                catch
+                {
+                    m_featureSchemaCache[resourceID] = null;
+                }
+            }
+
+            return m_featureSchemaCache[resourceID];
+
+        }
+
+
+        /// <summary>
+        /// Gets the class definition.
+        /// </summary>
+        /// <param name="resourceID">The resource ID.</param>
+        /// <param name="schema">The schema.</param>
+        /// <returns></returns>
+        public virtual ClassDefinition GetClassDefinition(string resourceID, string schema)
+        {
+            /*if (schema != null && schema.IndexOf(":") > 0)
+                schema = schema.Substring(0, schema.IndexOf(":"));*/
+
+            //If it is missing, just get the entire schema, and hope that we will need the others
+            //Some providers actually return the entire list even when asked for a particular schema
+            if (!m_featureSchemaCache.ContainsKey(resourceID + "!" + schema))
+                GetFeatureSourceDescription(resourceID);
+            if (!m_featureSchemaNameCache.ContainsKey(resourceID + "!" + schema))
+                m_featureSchemaNameCache[resourceID + "!" + schema] = null;
+
+            return m_featureSchemaNameCache[resourceID + "!" + schema];
+        }
+
+        /// <summary>
+        /// Resets the feature source schema cache.
+        /// </summary>
+        public virtual void ResetFeatureSourceSchemaCache()
+        {
+            m_featureSchemaCache = new Dictionary<string, FeatureSourceDescription>();
+            m_featureSchemaNameCache = new Dictionary<string, ClassDefinition>();
+        }
+
+        /// <summary>
+        /// Performs an aggregate query on all columns in the datasource
+        /// </summary>
+        /// <param name="resourceID">The resourceID of the FeatureSource to query</param>
+        /// <param name="schema">The schema name</param>
+        /// <param name="filter">The filter to apply to the </param>
+        /// <returns>A FeatureSetReader with the aggregated values</returns>
+        public virtual FeatureSetReader AggregateQueryFeatureSource(string resourceID, string schema, string filter)
+        {
+            return AggregateQueryFeatureSource(resourceID, schema, filter, (string[])null);
+        }
+
+        /// <summary>
+        /// Performs an aggregate query on columns in the datasource
+        /// </summary>
+        /// <param name="resourceID">The resourceID of the FeatureSource to query</param>
+        /// <param name="schema">The schema name</param>
+        /// <param name="filter">The filter to apply to the </param>
+        /// <param name="columns">The columns to aggregate</param>
+        /// <returns>A FeatureSetReader with the aggregated values</returns>
+        public abstract FeatureSetReader AggregateQueryFeatureSource(string resourceID, string schema, string filter, string[] columns);
+
+        /// <summary>
+        /// Performs an aggregate query on computed resources
+        /// </summary>
+        /// <param name="resourceID">The resourceID of the FeatureSource to query</param>
+        /// <param name="schema">The schema name</param>
+        /// <param name="filter">The filter to apply to the </param>
+        /// <param name="aggregateFunctions">A collection of column name and aggregate functions</param>
+        /// <returns>A FeatureSetReader with the aggregated values</returns>
+        public abstract FeatureSetReader AggregateQueryFeatureSource(string resourceID, string schema, string filter, System.Collections.Specialized.NameValueCollection aggregateFunctions);
+
+        /// <summary>
+        /// Gets the spatial extent.
+        /// </summary>
+        /// <param name="resourceID">The resource ID.</param>
+        /// <param name="schema">The schema.</param>
+        /// <param name="geometry">The geometry.</param>
+        /// <returns></returns>
+        public virtual OSGeo.MapGuide.ObjectModels.Common.IEnvelope GetSpatialExtent(string resourceID, string schema, string geometry)
+        {
+            return GetSpatialExtent(resourceID, schema, geometry, null, false);
+        }
+
+        /// <summary>
+        /// Gets the spatial extent.
+        /// </summary>
+        /// <param name="resourceID">The resource ID.</param>
+        /// <param name="schema">The schema.</param>
+        /// <param name="geometry">The geometry.</param>
+        /// <param name="filter">The filter.</param>
+        /// <returns></returns>
+        public virtual OSGeo.MapGuide.ObjectModels.Common.IEnvelope GetSpatialExtent(string resourceID, string schema, string geometry, string filter)
+        {
+            return GetSpatialExtent(resourceID, schema, geometry, filter, false);
+        }
+
+        /// <summary>
+        /// Gets the spatial extent.
+        /// </summary>
+        /// <param name="resourceID">The resource ID.</param>
+        /// <param name="schema">The schema.</param>
+        /// <param name="geometry">The geometry.</param>
+        /// <param name="allowFallbackToContextInformation">if set to <c>true</c> [allow fallback to context information].</param>
+        /// <returns></returns>
+        public virtual OSGeo.MapGuide.ObjectModels.Common.IEnvelope GetSpatialExtent(string resourceID, string schema, string geometry, bool allowFallbackToContextInformation)
+        {
+            return GetSpatialExtent(resourceID, schema, geometry, null, allowFallbackToContextInformation);
+        }
+
+        /// <summary>
+        /// Gets the spatial extent.
+        /// </summary>
+        /// <param name="resourceID">The resource ID.</param>
+        /// <param name="schema">The schema.</param>
+        /// <param name="geometry">The geometry.</param>
+        /// <param name="filter">The filter.</param>
+        /// <param name="allowFallbackToContextInformation">if set to <c>true</c> [allow fallback to context information].</param>
+        /// <returns></returns>
+        protected virtual OSGeo.MapGuide.ObjectModels.Common.IEnvelope GetSpatialExtent(string resourceID, string schema, string geometry, string filter, bool allowFallbackToContextInformation)
+        {
+            Check.NotEmpty(schema, "schema");
+            Check.NotEmpty(geometry, "geometry");
+            try
+            {
+                System.Collections.Specialized.NameValueCollection fun = new System.Collections.Specialized.NameValueCollection();
+                fun.Add("extent", "SpatialExtents(\"" + geometry + "\")");
+                using (FeatureSetReader fsr = AggregateQueryFeatureSource(resourceID, schema, filter, fun))
+                {
+                    if (fsr.Read())
+                    {
+                        Topology.Geometries.IGeometry geom = fsr.Row["extent"] as Topology.Geometries.IGeometry;
+                        if (geom == null)
+                        {
+                            throw new Exception("No data found in resource: " + resourceID);
+                        }
+                        else
+                        {
+                            var env = geom.EnvelopeInternal;
+                            return OSGeo.MapGuide.ObjectModels.ObjectFactory.CreateEnvelope(
+                                env.MinX,
+                                env.MinY,
+                                env.MaxX,
+                                env.MaxY);
+                        }
+                    }
+                    else
+                        throw new Exception("No data found in resource: " + resourceID);
+                }
+            }
+            catch
+            {
+                if (allowFallbackToContextInformation)
+                    try
+                    {
+                        ObjCommon.FdoSpatialContextList lst = this.GetSpatialContextInfo(resourceID, false);
+                        if (lst.SpatialContext != null && lst.SpatialContext.Count >= 1)
+                        {
+                            return OSGeo.MapGuide.ObjectModels.ObjectFactory.CreateEnvelope(
+                                double.Parse(lst.SpatialContext[0].Extent.LowerLeftCoordinate.X, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture),
+                                double.Parse(lst.SpatialContext[0].Extent.UpperRightCoordinate.X, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture),
+                                double.Parse(lst.SpatialContext[0].Extent.LowerLeftCoordinate.Y, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture),
+                                double.Parse(lst.SpatialContext[0].Extent.UpperRightCoordinate.Y, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture)
+                            );
+                        }
+                    }
+                    catch
+                    {
+                    }
+
+                throw;
+            }
+        }
+
+        /// <summary>
+        /// Enumerates the data stores.
+        /// </summary>
+        /// <param name="providerName">Name of the provider.</param>
+        /// <param name="partialConnString">The partial conn string.</param>
+        /// <returns></returns>
+        public abstract OSGeo.MapGuide.ObjectModels.Common.DataStoreList EnumerateDataStores(string providerName, string partialConnString);
+
+        /// <summary>
+        /// Gets the schemas.
+        /// </summary>
+        /// <param name="resourceId">The resource id.</param>
+        /// <returns></returns>
+        public abstract string[] GetSchemas(string resourceId);
+
+        /// <summary>
+        /// Gets the class names.
+        /// </summary>
+        /// <param name="resourceId">The resource id.</param>
+        /// <param name="schemaName">Name of the schema.</param>
+        /// <returns></returns>
+        public abstract string[] GetClassNames(string resourceId, string schemaName);
+
+        #endregion
+
+        #region Feature/Capability Discovery
+
+        /// <summary>
+        /// Gets the highest version the API is currently tested againts
+        /// </summary>
+        virtual public Version MaxTestedVersion
+        {
+            get { return SiteVersions.GetVersion(KnownSiteVersions.MapGuideOS2_1); }
+        }
+
+        /// <summary>
+        /// Gets the site version.
+        /// </summary>
+        /// <value>The site version.</value>
+        abstract public Version SiteVersion { get; }
+
+        /// <summary>
+        /// Gets the custom property names.
+        /// </summary>
+        /// <returns></returns>
+        public abstract string[] GetCustomPropertyNames();
+
+        /// <summary>
+        /// Gets the type of the custom property.
+        /// </summary>
+        /// <param name="name">The name.</param>
+        /// <returns></returns>
+        public abstract Type GetCustomPropertyType(string name);
+
+        /// <summary>
+        /// Sets the custom property.
+        /// </summary>
+        /// <param name="name">The name.</param>
+        /// <param name="value">The value.</param>
+        public abstract void SetCustomProperty(string name, object value);
+
+        /// <summary>
+        /// Gets the custom property.
+        /// </summary>
+        /// <param name="name">The name.</param>
+        /// <returns></returns>
+        public abstract object GetCustomProperty(string name);
+
+        /// <summary>
+        /// Creates the command.
+        /// </summary>
+        /// <param name="cmdType">Type of the CMD.</param>
+        /// <returns></returns>
+        public virtual ICommand CreateCommand(int cmdType)
+        {
+            CommandType ct = (CommandType)cmdType;
+            switch (ct)
+            {
+                default:
+                    return null;
+            }
+        }
+
+        #endregion
+    }
+}

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Properties/Resources.Designer.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Properties/Resources.Designer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Properties/Resources.Designer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -97,6 +97,15 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to Could not create load procedure of type: .
+        /// </summary>
+        internal static string CannotCreateLoadProcedureSubType {
+            get {
+                return ResourceManager.GetString("CannotCreateLoadProcedureSubType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Copied resource: {0}.
         /// </summary>
         internal static string CopiedResource {
@@ -232,6 +241,15 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to Factory method already registered for version: .
+        /// </summary>
+        internal static string FactoryMethodAlreadyRegistered {
+            get {
+                return ResourceManager.GetString("FactoryMethodAlreadyRegistered", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Connection test failed.
         /// </summary>
         internal static string FS_ConnectionTestFailed {
@@ -457,6 +475,15 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to Factory method already registered for load procedure type: .
+        /// </summary>
+        internal static string LoadProcFactoryMethodAlreadyRegistered {
+            get {
+                return ResourceManager.GetString("LoadProcFactoryMethodAlreadyRegistered", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Convert to SDF option is not supported by Maestro.
         /// </summary>
         internal static string LPROC_ConvertToSdf3NotSupported {
@@ -664,6 +691,15 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to Moving resource ....
+        /// </summary>
+        internal static string MovingResource {
+            get {
+                return ResourceManager.GetString("MovingResource", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Not a folder resource id: {0}.
         /// </summary>
         internal static string NotAFolder {
@@ -673,6 +709,78 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to Precondition failure: .
+        /// </summary>
+        internal static string PrecondFailure {
+            get {
+                return ResourceManager.GetString("PrecondFailure", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to String is empty: .
+        /// </summary>
+        internal static string PrecondStringEmpty {
+            get {
+                return ResourceManager.GetString("PrecondStringEmpty", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Value is null: .
+        /// </summary>
+        internal static string PrecondValueNull {
+            get {
+                return ResourceManager.GetString("PrecondValueNull", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to This connection does not support required service: .
+        /// </summary>
+        internal static string RequiredServiceNotSupported {
+            get {
+                return ResourceManager.GetString("RequiredServiceNotSupported", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Could not find template url for template: .
+        /// </summary>
+        internal static string TemplateUrlNotFound {
+            get {
+                return ResourceManager.GetString("TemplateUrlNotFound", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Unknown layer version: .
+        /// </summary>
+        internal static string UnknownLayerVersion {
+            get {
+                return ResourceManager.GetString("UnknownLayerVersion", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Unknown web layout version: .
+        /// </summary>
+        internal static string UnknownWebLayoutVersion {
+            get {
+                return ResourceManager.GetString("UnknownWebLayoutVersion", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Unsupported Load Procedure Type.
+        /// </summary>
+        internal static string UnsupportedLoadProcedureType {
+            get {
+                return ResourceManager.GetString("UnsupportedLoadProcedureType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to There web layout has more than one command named: {0}.
         /// </summary>
         internal static string WL_DuplicateCommandName {

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Properties/Resources.resx
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Properties/Resources.resx	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Properties/Resources.resx	2010-10-27 09:00:54 UTC (rev 5340)
@@ -133,6 +133,9 @@
     <value>Fusion application specifies a start view that is outside the map's initial extents</value>
     <comment>An error message that is displayed if the start view is outside the defined map</comment>
   </data>
+  <data name="CannotCreateLoadProcedureSubType" xml:space="preserve">
+    <value>Could not create load procedure of type: </value>
+  </data>
   <data name="CopiedResource" xml:space="preserve">
     <value>Copied resource: {0}</value>
   </data>
@@ -179,6 +182,9 @@
   <data name="ERR_SERIALIZER_ALREADY_REGISTERED" xml:space="preserve">
     <value>A resource serializer has already been registered for {0} v{1}</value>
   </data>
+  <data name="FactoryMethodAlreadyRegistered" xml:space="preserve">
+    <value>Factory method already registered for version: </value>
+  </data>
   <data name="FS_ConnectionTestFailed" xml:space="preserve">
     <value>Connection test failed</value>
     <comment>An error message that is displayed if a connection test on the feature source failed</comment>
@@ -276,6 +282,9 @@
     <value>The layer has no type, or the type is unsupported by Maestro</value>
     <comment>A  warning message that is displayed if the layer type is unknown</comment>
   </data>
+  <data name="LoadProcFactoryMethodAlreadyRegistered" xml:space="preserve">
+    <value>Factory method already registered for load procedure type: </value>
+  </data>
   <data name="LPROC_ConvertToSdf3NotSupported" xml:space="preserve">
     <value>Convert to SDF option is not supported by Maestro</value>
     <comment>A warning message about the lack of SDF conversion support</comment>
@@ -367,9 +376,36 @@
   <data name="MovedResource" xml:space="preserve">
     <value>Moved resource: {0}</value>
   </data>
+  <data name="MovingResource" xml:space="preserve">
+    <value>Moving resource ...</value>
+  </data>
   <data name="NotAFolder" xml:space="preserve">
     <value>Not a folder resource id: {0}</value>
   </data>
+  <data name="PrecondFailure" xml:space="preserve">
+    <value>Precondition failure: </value>
+  </data>
+  <data name="PrecondStringEmpty" xml:space="preserve">
+    <value>String is empty: </value>
+  </data>
+  <data name="PrecondValueNull" xml:space="preserve">
+    <value>Value is null: </value>
+  </data>
+  <data name="RequiredServiceNotSupported" xml:space="preserve">
+    <value>This connection does not support required service: </value>
+  </data>
+  <data name="TemplateUrlNotFound" xml:space="preserve">
+    <value>Could not find template url for template: </value>
+  </data>
+  <data name="UnknownLayerVersion" xml:space="preserve">
+    <value>Unknown layer version: </value>
+  </data>
+  <data name="UnknownWebLayoutVersion" xml:space="preserve">
+    <value>Unknown web layout version: </value>
+  </data>
+  <data name="UnsupportedLoadProcedureType" xml:space="preserve">
+    <value>Unsupported Load Procedure Type</value>
+  </data>
   <data name="WL_DuplicateCommandName" xml:space="preserve">
     <value>There web layout has more than one command named: {0}</value>
   </data>

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Conversion/IResourceConverter.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Conversion/IResourceConverter.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Conversion/IResourceConverter.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,16 +23,23 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Resource.Conversion
 {
+    /// <summary>
+    /// Performs schematic upgrades of resources
+    /// </summary>
     public interface IResourceConversionService
     {
         /// <summary>
         /// Upgrades the resource
         /// </summary>
-        /// <param name="resource"></param>
+        /// <param name="resource">The resource.</param>
+        /// <param name="targetVersion">The target version.</param>
         /// <returns></returns>
         IResource Upgrade(IResource resource, Version targetVersion);
     }
 
+    /// <summary>
+    /// Converts a specified resource to a specified version
+    /// </summary>
     public interface IResourceConverter
     {
         /// <summary>

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Conversion/ResourceConverter.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Conversion/ResourceConverter.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Conversion/ResourceConverter.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,6 +24,9 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Resource.Conversion
 {
+    /// <summary>
+    /// Resource conversion services
+    /// </summary>
     public class ResourceConverter : IResourceConversionService
     {
         private IList<IResourceConverter> _upgraders;

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Conversion/ResourceUpgrader.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Conversion/ResourceUpgrader.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Conversion/ResourceUpgrader.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,13 +23,26 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Resource.Conversion
 {
+    /// <summary>
+    /// Base class of all resource converter classes
+    /// </summary>
+    /// <typeparam name="T"></typeparam>
     public abstract class ResourceUpgrader<T> : IResourceConverter where T : IResource
     {
+        /// <summary>
+        /// Gets the version this converter will convert to
+        /// </summary>
+        /// <value></value>
         public abstract Version TargetVersion
         {
             get;
         }
 
+        /// <summary>
+        /// Converts the specified resource.
+        /// </summary>
+        /// <param name="resource">The resource.</param>
+        /// <returns></returns>
         public T Convert(T resource)
         {
             if (resource.ResourceVersion > this.TargetVersion)
@@ -48,16 +61,29 @@
         /// <returns></returns>
         protected abstract T Upgrade(T resource);
 
+        /// <summary>
+        /// Converts the resource
+        /// </summary>
+        /// <param name="resource"></param>
+        /// <returns></returns>
         public IResource Convert(IResource resource)
         {
             return Convert((T)resource);
         }
 
+        /// <summary>
+        /// Gets the version this converter can convert from
+        /// </summary>
+        /// <value></value>
         public abstract Version SourceVersion
         {
             get;
         }
 
+        /// <summary>
+        /// Gets the type of resource this can convert
+        /// </summary>
+        /// <value></value>
         public abstract ResourceTypes ResourceType
         {
             get;

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/IResource.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/IResource.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/IResource.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,20 +24,43 @@
 using System.IO;
 using System.ComponentModel;
 using OSGeo.MapGuide.ObjectModels.Common;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace OSGeo.MapGuide.MaestroAPI.Resource
 {
+    /// <summary>
+    /// Represents an editable MapGuide Resource
+    /// </summary>
     public interface IResource : IVersionedEntity, ICloneable, INotifyPropertyChanged, IDynamicInvokable
     {
+        /// <summary>
+        /// Gets or sets the current connection.
+        /// </summary>
+        /// <value>The current connection.</value>
         IServerConnection CurrentConnection { get; set; }
 
+        /// <summary>
+        /// Gets the validating schema.
+        /// </summary>
+        /// <value>The validating schema.</value>
         string ValidatingSchema { get; }
 
+        /// <summary>
+        /// Gets or sets the resource ID.
+        /// </summary>
+        /// <value>The resource ID.</value>
         string ResourceID { get; set; }
 
+        /// <summary>
+        /// Gets the type of the resource.
+        /// </summary>
+        /// <value>The type of the resource.</value>
         ResourceTypes ResourceType { get; }
 
+        /// <summary>
+        /// Serializes this instance.
+        /// </summary>
+        /// <returns></returns>
         string Serialize();
 
         /// <summary>
@@ -48,19 +71,37 @@
         bool IsStronglyTyped { get; }
     }
 
+    /// <summary>
+    /// Extension method class
+    /// </summary>
     public static class ResourceExtensions
     {
+        /// <summary>
+        /// Serializes to stream.
+        /// </summary>
+        /// <param name="res">The res.</param>
+        /// <returns></returns>
         public static Stream SerializeToStream(this IResource res)
         {
             string str = res.Serialize();
             return new MemoryStream(Encoding.UTF8.GetBytes(str));
         }
 
+        /// <summary>
+        /// Gets the resource type descriptor.
+        /// </summary>
+        /// <param name="res">The res.</param>
+        /// <returns></returns>
         public static ResourceTypeDescriptor GetResourceTypeDescriptor(this IResource res)
         {
             return new ResourceTypeDescriptor(res.ResourceType, res.ResourceVersion.ToString());
         }
 
+        /// <summary>
+        /// Copies the resource data to the specified resource
+        /// </summary>
+        /// <param name="source">The source.</param>
+        /// <param name="target">The target.</param>
         public static void CopyResourceDataTo(this IResource source, IResource target)
         {
             Check.NotNull(source, "source");
@@ -74,6 +115,11 @@
             }
         }
 
+        /// <summary>
+        /// Copies the resource data to the specified resource
+        /// </summary>
+        /// <param name="source">The source.</param>
+        /// <param name="targetID">The target ID.</param>
         public static void CopyResourceDataTo(this IResource source, string targetID)
         {
             Check.NotNull(source, "source");

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/IResourceValidator.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/IResourceValidator.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/IResourceValidator.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,10 +23,23 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Resource
 {
+    /// <summary>
+    /// Interface for validating specific resource types
+    /// </summary>
     public interface IResourceValidator
     {
+        /// <summary>
+        /// Gets the resource type and version this validator supports
+        /// </summary>
         ResourceTypeDescriptor SupportedResourceAndVersion { get; }
 
+        /// <summary>
+        /// Validats the specified resources for common issues associated with this
+        /// resource type
+        /// </summary>
+        /// <param name="resource"></param>
+        /// <param name="recurse"></param>
+        /// <returns></returns>
         ValidationIssue[] Validate(IResource resource, bool recurse);
     }
 
@@ -35,6 +48,12 @@
     /// </summary>
     public class ValidationIssue
     {
+        /// <summary>
+        /// Initializes a new instance of the <see cref="ValidationIssue"/> class.
+        /// </summary>
+        /// <param name="res">The res.</param>
+        /// <param name="stat">The stat.</param>
+        /// <param name="msg">The MSG.</param>
         public ValidationIssue(IResource res, ValidationStatus stat, string msg)
         {
             Check.NotNull(res, "res");
@@ -60,6 +79,16 @@
         /// </summary>
         public IResource Resource { get; private set; }
 
+        /// <summary>
+        /// Determines whether the specified <see cref="System.Object"/> is equal to this instance.
+        /// </summary>
+        /// <param name="obj">The <see cref="System.Object"/> to compare with this instance.</param>
+        /// <returns>
+        /// 	<c>true</c> if the specified <see cref="System.Object"/> is equal to this instance; otherwise, <c>false</c>.
+        /// </returns>
+        /// <exception cref="T:System.NullReferenceException">
+        /// The <paramref name="obj"/> parameter is null.
+        /// </exception>
         public override bool Equals(object obj)
         {
             if (obj == null)
@@ -74,6 +103,12 @@
                    this.Status == vi.Status;
         }
 
+        /// <summary>
+        /// Returns a hash code for this instance.
+        /// </summary>
+        /// <returns>
+        /// A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. 
+        /// </returns>
         public override int GetHashCode()
         {
             //http://stackoverflow.com/questions/263400/what-is-the-best-algorithm-for-an-overridden-systemobjectgethashcode

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/IVersionedEntity.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/IVersionedEntity.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/IVersionedEntity.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,8 +24,15 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Resource
 {
+    /// <summary>
+    /// An entity with an attached version
+    /// </summary>
     public interface IVersionedEntity
     {
+        /// <summary>
+        /// Gets the resource version.
+        /// </summary>
+        /// <value>The resource version.</value>
         Version ResourceVersion { get; }
     }
 }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/ResourceContentVersionChecker.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/ResourceContentVersionChecker.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/ResourceContentVersionChecker.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -73,6 +73,11 @@
             return _rtd;
         }
 
+        /// <summary>
+        /// Gets the version from XML stream.
+        /// </summary>
+        /// <param name="ms">The ms.</param>
+        /// <returns></returns>
         public static ResourceTypeDescriptor GetVersionFromXmlStream(Stream ms)
         {
             string version = "1.0.0";

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/ResourceIdentifier.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/ResourceIdentifier.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/ResourceIdentifier.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -380,6 +380,11 @@
             return identifier.Substring(GetRepository(identifier).Length, identifier.Length - GetExtension(identifier).Length - GetRepository(identifier).Length - 1);
         }
 
+        /// <summary>
+        /// Gets the type of the resource.
+        /// </summary>
+        /// <param name="identifier">The identifier.</param>
+        /// <returns></returns>
         public static ResourceTypes GetResourceType(string identifier)
         {
             return (ResourceTypes)Enum.Parse(typeof(ResourceTypes), GetExtension(identifier));
@@ -545,6 +550,11 @@
             }
         }
 
+        /// <summary>
+        /// Gets the parent folder.
+        /// </summary>
+        /// <param name="identifier">The identifier.</param>
+        /// <returns></returns>
         public static string GetParentFolder(string identifier)
         {
             if (!Validate(identifier))
@@ -565,6 +575,13 @@
 
         #endregion
 
+        /// <summary>
+        /// Determines whether this resource id is session-based
+        /// </summary>
+        /// <param name="resourceID">The resource ID.</param>
+        /// <returns>
+        /// 	<c>true</c> if this resource id is session-based; otherwise, <c>false</c>.
+        /// </returns>
         public static bool IsSessionBased(string resourceID)
         {
             return resourceID.StartsWith("Session:");

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/ResourceSchemaChain.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/ResourceSchemaChain.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/ResourceSchemaChain.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -28,6 +28,11 @@
     /// </summary>
     public static class ResourceSchemaChain
     {
+        /// <summary>
+        /// Gets the validating schemas.
+        /// </summary>
+        /// <param name="schema">The schema.</param>
+        /// <returns></returns>
         public static string[] GetValidatingSchemas(string schema)
         {
             switch (schema)

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/ResourceTypeDescriptor.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/ResourceTypeDescriptor.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/ResourceTypeDescriptor.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,8 +23,16 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Resource
 {
+    /// <summary>
+    /// Represents a unique resource type / version pair
+    /// </summary>
     public class ResourceTypeDescriptor
     {
+        /// <summary>
+        /// Initializes a new instance of the <see cref="ResourceTypeDescriptor"/> class.
+        /// </summary>
+        /// <param name="resType">Type of the res.</param>
+        /// <param name="ver">The ver.</param>
         public ResourceTypeDescriptor(ResourceTypes resType, string ver)
             : this(resType.ToString(), ver) 
         { }
@@ -38,6 +46,9 @@
             this.Version = ver;
         }
 
+        /// <summary>
+        /// Gets the name of the validating XML schema
+        /// </summary>
         public string XsdName
         {
             get
@@ -46,10 +57,28 @@
             }
         }
 
+        /// <summary>
+        /// Gets or sets the type of the resource.
+        /// </summary>
+        /// <value>The type of the resource.</value>
         public string ResourceType { get; set; }
 
+        /// <summary>
+        /// Gets or sets the version.
+        /// </summary>
+        /// <value>The version.</value>
         public string Version { get; set; }
 
+        /// <summary>
+        /// Determines whether the specified <see cref="System.Object"/> is equal to this instance.
+        /// </summary>
+        /// <param name="obj">The <see cref="System.Object"/> to compare with this instance.</param>
+        /// <returns>
+        /// 	<c>true</c> if the specified <see cref="System.Object"/> is equal to this instance; otherwise, <c>false</c>.
+        /// </returns>
+        /// <exception cref="T:System.NullReferenceException">
+        /// The <paramref name="obj"/> parameter is null.
+        /// </exception>
         public override bool Equals(object obj)
         {
             var desc = obj as ResourceTypeDescriptor;
@@ -59,61 +88,103 @@
             return this.ToString() == desc.ToString();
         }
 
+        /// <summary>
+        /// Returns a <see cref="System.String"/> that represents this instance.
+        /// </summary>
+        /// <returns>
+        /// A <see cref="System.String"/> that represents this instance.
+        /// </returns>
         public override string ToString()
         {
             return this.ResourceType + this.Version;
         }
 
+        /// <summary>
+        /// Returns a hash code for this instance.
+        /// </summary>
+        /// <returns>
+        /// A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. 
+        /// </returns>
         public override int GetHashCode()
         {
             return this.ToString().GetHashCode();
         }
 
+        /// <summary>
+        /// Application Definition v1.0.0
+        /// </summary>
         public static ResourceTypeDescriptor ApplicationDefinition
         {
             get { return new ResourceTypeDescriptor("ApplicationDefinition", "1.0.0"); }
         }
 
+        /// <summary>
+        /// Feature Source v1.0.0
+        /// </summary>
         public static ResourceTypeDescriptor FeatureSource
         {
             get { return new ResourceTypeDescriptor("FeatureSource", "1.0.0"); }
         }
 
+        /// <summary>
+        /// Drawing Source v1.0.0
+        /// </summary>
         public static ResourceTypeDescriptor DrawingSource
         {
             get { return new ResourceTypeDescriptor("DrawingSource", "1.0.0"); }
         }
 
+        /// <summary>
+        /// Layer Definition v1.0.0
+        /// </summary>
         public static ResourceTypeDescriptor LayerDefinition
         {
             get { return new ResourceTypeDescriptor("LayerDefinition", "1.0.0"); }
         }
 
+        /// <summary>
+        /// Load Procedure v1.0.0
+        /// </summary>
         public static ResourceTypeDescriptor LoadProcedure
         {
             get { return new ResourceTypeDescriptor("LoadProcedure", "1.0.0"); }
         }
 
+        /// <summary>
+        /// Map Definition v1.0.0
+        /// </summary>
         public static ResourceTypeDescriptor MapDefinition
         {
             get { return new ResourceTypeDescriptor("MapDefinition", "1.0.0"); }
         }
 
+        /// <summary>
+        /// Print Layout v1.0.0
+        /// </summary>
         public static ResourceTypeDescriptor PrintLayout
         {
             get { return new ResourceTypeDescriptor("PrintLayout", "1.0.0"); }
         }
 
+        /// <summary>
+        /// Symbol Library v1.0.0
+        /// </summary>
         public static ResourceTypeDescriptor SymbolLibrary
         {
             get { return new ResourceTypeDescriptor("SymbolLibrary", "1.0.0"); }
         }
 
+        /// <summary>
+        /// Symbol Definition v1.0.0
+        /// </summary>
         public static ResourceTypeDescriptor SymbolDefinition
         {
             get { return new ResourceTypeDescriptor("SymbolDefinition", "1.0.0"); }
         }
 
+        /// <summary>
+        /// Web Layout v1.0.0
+        /// </summary>
         public static ResourceTypeDescriptor WebLayout
         {
             get { return new ResourceTypeDescriptor("WebLayout", "1.0.0"); }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ApplicationDefinitionValidator.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ApplicationDefinitionValidator.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ApplicationDefinitionValidator.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -25,12 +25,22 @@
 using OSGeo.MapGuide.ObjectModels.MapDefinition;
 using OSGeo.MapGuide.ObjectModels.Common;
 using OSGeo.MapGuide.MaestroAPI.Exceptions;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace OSGeo.MapGuide.MaestroAPI.Resource.Validation
 {
+    /// <summary>
+    /// Resource validator for Fusion Flexible Layouts
+    /// </summary>
     public class ApplicationDefinitionValidator : IResourceValidator
     {
+        /// <summary>
+        /// Validats the specified resources for common issues associated with this
+        /// resource type
+        /// </summary>
+        /// <param name="resource"></param>
+        /// <param name="recurse"></param>
+        /// <returns></returns>
         public ValidationIssue[] Validate(IResource resource, bool recurse)
         {
             if (resource.ResourceType != OSGeo.MapGuide.MaestroAPI.ResourceTypes.ApplicationDefinition)
@@ -57,7 +67,7 @@
                                 }
                                 else
                                 {
-                                    MapDefinition mdef = (MapDefinition)fusionApp.CurrentConnection.ResourceService.GetResource(map.Extension.GetElement("ResourceId").InnerText);
+                                    IMapDefinition mdef = (IMapDefinition)fusionApp.CurrentConnection.ResourceService.GetResource(map.Extension.GetElement("ResourceId").InnerText);
 
                                     issues.AddRange(ResourceValidatorSet.Validate(mdef, true));
 
@@ -84,6 +94,10 @@
             return issues.ToArray();
         }
 
+        /// <summary>
+        /// Gets the resource type and version this validator supports
+        /// </summary>
+        /// <value></value>
         public ResourceTypeDescriptor SupportedResourceAndVersion
         {
             get { return new ResourceTypeDescriptor(OSGeo.MapGuide.MaestroAPI.ResourceTypes.ApplicationDefinition, "1.0.0"); }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseLayerDefinitionValidator.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseLayerDefinitionValidator.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseLayerDefinitionValidator.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -22,9 +22,9 @@
 using System.Text;
 using OSGeo.MapGuide.ObjectModels.LayerDefinition;
 using OSGeo.MapGuide.ObjectModels.FeatureSource;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
 using OSGeo.MapGuide.MaestroAPI.Services;
 using OSGeo.MapGuide.ObjectModels.Common;
+using OSGeo.MapGuide.ObjectModels.DrawingSource;
 
 namespace OSGeo.MapGuide.MaestroAPI.Resource.Validation
 {
@@ -35,6 +35,13 @@
     /// </summary>
     public abstract class BaseLayerDefinitionValidator : IResourceValidator
     {
+        /// <summary>
+        /// Validats the specified resources for common issues associated with this
+        /// resource type
+        /// </summary>
+        /// <param name="resource"></param>
+        /// <param name="recurse"></param>
+        /// <returns></returns>
         public virtual ValidationIssue[] Validate(IResource resource, bool recurse)
         {
             if (!resource.GetResourceTypeDescriptor().Equals(this.SupportedResourceAndVersion))
@@ -43,6 +50,12 @@
             return ValidateBase(resource, recurse);
         }
 
+        /// <summary>
+        /// Perform base validation logic
+        /// </summary>
+        /// <param name="resource"></param>
+        /// <param name="recurse"></param>
+        /// <returns></returns>
         protected static ValidationIssue[] ValidateBase(IResource resource, bool recurse)
         {
             var ldef = resource as ILayerDefinition;
@@ -246,6 +259,10 @@
             return issues.ToArray();
         }
 
+        /// <summary>
+        /// Gets the resource type and version this validator supports
+        /// </summary>
+        /// <value></value>
         public abstract ResourceTypeDescriptor SupportedResourceAndVersion
         {
             get;

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseLoadProcedureValidator.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseLoadProcedureValidator.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseLoadProcedureValidator.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -5,10 +5,25 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Resource.Validation
 {
+    /// <summary>
+    /// Base class of all load procedure validations. Provides common load procedure validation
+    /// logic.
+    /// </summary>
     public abstract class BaseLoadProcedureValidator : IResourceValidator
     {
+        /// <summary>
+        /// Gets the resource type and version this validator supports
+        /// </summary>
+        /// <value></value>
         public abstract ResourceTypeDescriptor SupportedResourceAndVersion { get; }
 
+        /// <summary>
+        /// Validats the specified resources for common issues associated with this
+        /// resource type
+        /// </summary>
+        /// <param name="resource"></param>
+        /// <param name="recurse"></param>
+        /// <returns></returns>
         public virtual ValidationIssue[] Validate(IResource resource, bool recurse)
         {
             if (!resource.GetResourceTypeDescriptor().Equals(this.SupportedResourceAndVersion))
@@ -17,6 +32,12 @@
             return ValidateBase(resource, recurse);
         }
 
+        /// <summary>
+        /// Performs base validation logic
+        /// </summary>
+        /// <param name="resource"></param>
+        /// <param name="recurse"></param>
+        /// <returns></returns>
         protected static ValidationIssue[] ValidateBase(IResource resource, bool recurse)
         {
             if (resource.ResourceType != OSGeo.MapGuide.MaestroAPI.ResourceTypes.LoadProcedure)

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseWebLayoutValidator.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseWebLayoutValidator.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseWebLayoutValidator.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -5,17 +5,32 @@
 using OSGeo.MapGuide.ObjectModels.MapDefinition;
 using OSGeo.MapGuide.ObjectModels.WebLayout;
 using OSGeo.MapGuide.MaestroAPI.Exceptions;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace OSGeo.MapGuide.MaestroAPI.Resource.Validation
 {
+    /// <summary>
+    /// Base class of all web layout validators. Provides common validation
+    /// logic for web layouts
+    /// </summary>
     public abstract class BaseWebLayoutValidator : IResourceValidator
     {
+        /// <summary>
+        /// Gets the resource type and version this validator supports
+        /// </summary>
+        /// <value></value>
         public abstract ResourceTypeDescriptor SupportedResourceAndVersion
         {
             get;
         }
 
+        /// <summary>
+        /// Validats the specified resources for common issues associated with this
+        /// resource type
+        /// </summary>
+        /// <param name="resource"></param>
+        /// <param name="recurse"></param>
+        /// <returns></returns>
         public virtual ValidationIssue[] Validate(IResource resource, bool recurse)
         {
             if (!resource.GetResourceTypeDescriptor().Equals(this.SupportedResourceAndVersion))
@@ -24,6 +39,12 @@
             return ValidateBase(resource, recurse);
         }
 
+        /// <summary>
+        /// Performs base validation logic
+        /// </summary>
+        /// <param name="resource"></param>
+        /// <param name="recurse"></param>
+        /// <returns></returns>
         protected static ValidationIssue[] ValidateBase(IResource resource, bool recurse)
         {
             if (resource.ResourceType != OSGeo.MapGuide.MaestroAPI.ResourceTypes.WebLayout)

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/DrawingSourceValidator.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/DrawingSourceValidator.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/DrawingSourceValidator.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -22,12 +22,22 @@
 using System.Text;
 using OSGeo.MapGuide.MaestroAPI.Resource;
 using OSGeo.MapGuide.MaestroAPI;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
+using OSGeo.MapGuide.ObjectModels.DrawingSource;
 
 namespace OSGeo.MapGuide.MaestroAPI.Resource.Validation
 {
+    /// <summary>
+    /// Resource validator for Drawing Sources
+    /// </summary>
     public class DrawingSourceValidator : IResourceValidator
     {
+        /// <summary>
+        /// Validats the specified resources for common issues associated with this
+        /// resource type
+        /// </summary>
+        /// <param name="resource"></param>
+        /// <param name="recurse"></param>
+        /// <returns></returns>
         public ValidationIssue[] Validate(IResource resource, bool recurse)
         {
             if (resource.ResourceType != ResourceTypes.DrawingSource)
@@ -45,6 +55,10 @@
             return issues.ToArray();
         }
 
+        /// <summary>
+        /// Gets the resource type and version this validator supports
+        /// </summary>
+        /// <value></value>
         public ResourceTypeDescriptor SupportedResourceAndVersion
         {
             get { return new ResourceTypeDescriptor(OSGeo.MapGuide.MaestroAPI.ResourceTypes.DrawingSource, "1.0.0"); }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/FeatureSourceValidator.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/FeatureSourceValidator.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/FeatureSourceValidator.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -28,8 +28,18 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Resource.Validation
 {
+    /// <summary>
+    /// Resource validator for Feature Sources
+    /// </summary>
     public class FeatureSourceValidator : IResourceValidator
     {
+        /// <summary>
+        /// Validats the specified resources for common issues associated with this
+        /// resource type
+        /// </summary>
+        /// <param name="resource"></param>
+        /// <param name="recurse"></param>
+        /// <returns></returns>
         public ValidationIssue[] Validate(IResource resource, bool recurse)
         {
             if (resource.ResourceType != ResourceTypes.FeatureSource)
@@ -87,6 +97,10 @@
             return issues.ToArray();
         }
 
+        /// <summary>
+        /// Gets the resource type and version this validator supports
+        /// </summary>
+        /// <value></value>
         public ResourceTypeDescriptor SupportedResourceAndVersion
         {
             get { return new ResourceTypeDescriptor(ResourceTypes.FeatureSource, "1.0.0"); }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/LayerDefinitionValidator.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/LayerDefinitionValidator.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/LayerDefinitionValidator.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -27,8 +27,15 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Resource.Validation
 {
+    /// <summary>
+    /// Resource validator for Layer Definitions
+    /// </summary>
     public class LayerDefinitionValidator : BaseLayerDefinitionValidator
     {
+        /// <summary>
+        /// Gets the supported resource and version.
+        /// </summary>
+        /// <value>The supported resource and version.</value>
         public override ResourceTypeDescriptor SupportedResourceAndVersion
         {
             get { return new ResourceTypeDescriptor(ResourceTypes.LayerDefinition, "1.0.0"); }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/LoadProcedureValidator.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/LoadProcedureValidator.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/LoadProcedureValidator.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -25,8 +25,15 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Resource.Validation
 {
+    /// <summary>
+    /// Resource validator for Load Procedures
+    /// </summary>
     public class LoadProcedureValidator : BaseLoadProcedureValidator
     {
+        /// <summary>
+        /// Gets the resource type and version this validator supports
+        /// </summary>
+        /// <value></value>
         public override ResourceTypeDescriptor SupportedResourceAndVersion
         {
             get { return new ResourceTypeDescriptor(OSGeo.MapGuide.MaestroAPI.ResourceTypes.LoadProcedure, "1.0.0"); }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/MapDefinitionValidator.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/MapDefinitionValidator.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/MapDefinitionValidator.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -25,14 +25,24 @@
 using OSGeo.MapGuide.ObjectModels.LayerDefinition;
 using OSGeo.MapGuide.ObjectModels.FeatureSource;
 using OSGeo.MapGuide.ObjectModels.Common;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
 using OSGeo.MapGuide.MaestroAPI;
 using OSGeo.MapGuide.MaestroAPI.Exceptions;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace OSGeo.MapGuide.MaestroAPI.Resource.Validation
 {
+    /// <summary>
+    /// Resource validator for Map Definitions
+    /// </summary>
     public class MapDefinitionValidator : IResourceValidator
     {
+        /// <summary>
+        /// Validats the specified resources for common issues associated with this
+        /// resource type
+        /// </summary>
+        /// <param name="resource"></param>
+        /// <param name="recurse"></param>
+        /// <returns></returns>
         public ValidationIssue[] Validate(IResource resource, bool recurse)
         {
             if (resource.ResourceType != ResourceTypes.MapDefinition)
@@ -156,6 +166,10 @@
             return issues.ToArray();
         }
 
+        /// <summary>
+        /// Gets the resource type and version this validator supports
+        /// </summary>
+        /// <value></value>
         public ResourceTypeDescriptor SupportedResourceAndVersion
         {
             get { return new ResourceTypeDescriptor(ResourceTypes.MapDefinition, "1.0.0"); }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/PrintLayoutValidator.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/PrintLayoutValidator.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/PrintLayoutValidator.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -26,13 +26,27 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Resource.Validation
 {
+    /// <summary>
+    /// Resource validator for Print Layouts
+    /// </summary>
     public class PrintLayoutValidator : IResourceValidator
     {
+        /// <summary>
+        /// Gets the resource type and version this validator supports
+        /// </summary>
+        /// <value></value>
         public ResourceTypeDescriptor SupportedResourceAndVersion
         {
             get { return ResourceTypeDescriptor.PrintLayout; }
         }
 
+        /// <summary>
+        /// Validats the specified resources for common issues associated with this
+        /// resource type
+        /// </summary>
+        /// <param name="resource"></param>
+        /// <param name="recurse"></param>
+        /// <returns></returns>
         public ValidationIssue[] Validate(IResource resource, bool recurse)
         {
             if (resource.ResourceType != ResourceTypes.PrintLayout)

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidatorLoader.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidatorLoader.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidatorLoader.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -31,6 +31,9 @@
     {
         private static bool m_initialized = false;
 
+        /// <summary>
+        /// Loads the default set of validators in this assembly
+        /// </summary>
         public static void LoadStockValidators()
         {
             if (m_initialized)

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidatorSet.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidatorSet.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidatorSet.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -31,6 +31,10 @@
     {
         private static List<IResourceValidator> m_validators = new List<IResourceValidator>();
 
+        /// <summary>
+        /// Registers the validator.
+        /// </summary>
+        /// <param name="validator">The validator.</param>
         public static void RegisterValidator(IResourceValidator validator)
         {
             Check.NotNull(validator, "validator");
@@ -39,6 +43,12 @@
                 m_validators.Add(validator);
         }
 
+        /// <summary>
+        /// Validates the specified items.
+        /// </summary>
+        /// <param name="items">The items.</param>
+        /// <param name="recurse">if set to <c>true</c> [recurse].</param>
+        /// <returns></returns>
         public static ValidationIssue[] Validate(IEnumerable<IResource> items, bool recurse)
         {
             Check.NotNull(items, "items");
@@ -51,6 +61,12 @@
             return issues.ToArray();
         }
 
+        /// <summary>
+        /// Validates the specified item.
+        /// </summary>
+        /// <param name="item">The item.</param>
+        /// <param name="recurse">if set to <c>true</c> [recurse].</param>
+        /// <returns></returns>
         public static ValidationIssue[] Validate(IResource item, bool recurse)
         {
             Check.NotNull(item, "item");
@@ -80,6 +96,14 @@
             return issueSet.GetAllIssues();
         }
 
+        /// <summary>
+        /// Determines whether the specified resource types has validator.
+        /// </summary>
+        /// <param name="resourceTypes">The resource types.</param>
+        /// <param name="version">The version.</param>
+        /// <returns>
+        /// 	<c>true</c> if the specified resource types has validator; otherwise, <c>false</c>.
+        /// </returns>
         public static bool HasValidator(ResourceTypes resourceTypes, Version version)
         {
             bool found = false;

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/SymbolDefinitionValidator.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/SymbolDefinitionValidator.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/SymbolDefinitionValidator.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -25,13 +25,27 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Resource.Validation
 {
+    /// <summary>
+    /// Resource validator for Symbol Definitions
+    /// </summary>
     public class SymbolDefinitionValidator : IResourceValidator
     {
+        /// <summary>
+        /// Gets the resource type and version this validator supports
+        /// </summary>
+        /// <value></value>
         public ResourceTypeDescriptor SupportedResourceAndVersion
         {
             get { return ResourceTypeDescriptor.SymbolDefinition; }
         }
 
+        /// <summary>
+        /// Validats the specified resources for common issues associated with this
+        /// resource type
+        /// </summary>
+        /// <param name="resource"></param>
+        /// <param name="recurse"></param>
+        /// <returns></returns>
         public ValidationIssue[] Validate(IResource resource, bool recurse)
         {
             if (resource.ResourceType != ResourceTypes.SymbolDefinition)

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/SymbolLibraryValidator.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/SymbolLibraryValidator.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/SymbolLibraryValidator.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -25,13 +25,27 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Resource.Validation
 {
+    /// <summary>
+    /// Resource validator for DWF symbol libraries
+    /// </summary>
     public class SymbolLibraryValidator : IResourceValidator
     {
+        /// <summary>
+        /// Gets the resource type and version this validator supports
+        /// </summary>
+        /// <value></value>
         public ResourceTypeDescriptor SupportedResourceAndVersion
         {
             get { return ResourceTypeDescriptor.SymbolLibrary; }
         }
 
+        /// <summary>
+        /// Validats the specified resources for common issues associated with this
+        /// resource type
+        /// </summary>
+        /// <param name="resource"></param>
+        /// <param name="recurse"></param>
+        /// <returns></returns>
         public ValidationIssue[] Validate(IResource resource, bool recurse)
         {
             if (resource.ResourceType != ResourceTypes.SymbolLibrary)

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ValidationResultSet.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ValidationResultSet.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ValidationResultSet.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -34,11 +34,18 @@
         //Set<T> collection in .net fx 2.0!
         private Dictionary<string, Dictionary<ValidationIssue, ValidationIssue>> _issues;
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="ValidationResultSet"/> class.
+        /// </summary>
         public ValidationResultSet()
         {
             _issues = new Dictionary<string, Dictionary<ValidationIssue, ValidationIssue>>();
         }
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="ValidationResultSet"/> class.
+        /// </summary>
+        /// <param name="issues">The issues.</param>
         public ValidationResultSet(IEnumerable<ValidationIssue> issues) : this()
         {
             Check.NotNull(issues, "issues");
@@ -46,11 +53,20 @@
             AddIssues(issues);
         }
 
+        /// <summary>
+        /// Gets the resource IDs
+        /// </summary>
+        /// <value>The resource IDs.</value>
         public string[] ResourceIDs
         {
             get { return new List<string>(_issues.Keys).ToArray(); }
         }
 
+        /// <summary>
+        /// Gets the issues for resource.
+        /// </summary>
+        /// <param name="resourceId">The resource id.</param>
+        /// <returns></returns>
         public ICollection<ValidationIssue> GetIssuesForResource(string resourceId)
         {
             Check.NotEmpty(resourceId, "resourceId");
@@ -60,6 +76,12 @@
             return new List<ValidationIssue>();
         }
 
+        /// <summary>
+        /// Gets the issues for resource.
+        /// </summary>
+        /// <param name="resourceId">The resource id.</param>
+        /// <param name="statType">Type of the stat.</param>
+        /// <returns></returns>
         public ICollection<ValidationIssue> GetIssuesForResource(string resourceId, ValidationStatus statType)
         {
             var issues = new List<ValidationIssue>();
@@ -71,6 +93,10 @@
             return issues;
         }
 
+        /// <summary>
+        /// Gets all issues.
+        /// </summary>
+        /// <returns></returns>
         public ValidationIssue[] GetAllIssues()
         {
             var issues = new List<ValidationIssue>();
@@ -81,6 +107,10 @@
             return issues.ToArray();
         }
 
+        /// <summary>
+        /// Adds the issue.
+        /// </summary>
+        /// <param name="issue">The issue.</param>
         public void AddIssue(ValidationIssue issue)
         {
             Check.NotNull(issue, "issue");
@@ -93,6 +123,10 @@
             _issues[issue.Resource.ResourceID][issue] = issue;
         }
 
+        /// <summary>
+        /// Adds the issues.
+        /// </summary>
+        /// <param name="issues">The issues.</param>
         public void AddIssues(IEnumerable<ValidationIssue> issues)
         {
             if (issues == null)

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/WebLayoutValidator.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/WebLayoutValidator.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Resource/Validation/WebLayoutValidator.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,13 +24,19 @@
 using OSGeo.MapGuide.ObjectModels.WebLayout;
 using OSGeo.MapGuide.ObjectModels.Common;
 using OSGeo.MapGuide.ObjectModels.MapDefinition;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
 using OSGeo.MapGuide.MaestroAPI.Exceptions;
 
 namespace OSGeo.MapGuide.MaestroAPI.Resource.Validation
 {
+    /// <summary>
+    /// Resource validator for Web Layouts
+    /// </summary>
     public class WebLayoutValidator : BaseWebLayoutValidator
     {
+        /// <summary>
+        /// Gets the resource type and version this validator supports
+        /// </summary>
+        /// <value></value>
         public override ResourceTypeDescriptor SupportedResourceAndVersion
         {
             get { return new ResourceTypeDescriptor(OSGeo.MapGuide.MaestroAPI.ResourceTypes.WebLayout, "1.0.0"); }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ResourceTypeRegistry.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ResourceTypeRegistry.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ResourceTypeRegistry.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -19,38 +19,59 @@
 #endregion
 using System;
 using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
 using System.Text;
+using System.Xml;
+using System.Xml.Serialization;
+using OSGeo.MapGuide.MaestroAPI.Exceptions;
 using OSGeo.MapGuide.MaestroAPI.Resource;
-using System.Xml.Serialization;
 using OSGeo.MapGuide.ObjectModels.ApplicationDefinition;
-using System.IO;
 using OSGeo.MapGuide.ObjectModels.Common;
+using OSGeo.MapGuide.ObjectModels.DrawingSource;
+using OSGeo.MapGuide.ObjectModels.FeatureSource;
 using OSGeo.MapGuide.ObjectModels.LayerDefinition;
 using OSGeo.MapGuide.ObjectModels.LoadProcedure;
+using OSGeo.MapGuide.ObjectModels.MapDefinition;
 using OSGeo.MapGuide.ObjectModels.PrintLayout;
 using OSGeo.MapGuide.ObjectModels.SymbolDefinition;
 using OSGeo.MapGuide.ObjectModels.SymbolLibrary;
 using OSGeo.MapGuide.ObjectModels.WebLayout;
-using OSGeo.MapGuide.MaestroAPI.Exceptions;
-using System.Xml;
-using OSGeo.MapGuide.MaestroAPI.ObjectModels;
-using OSGeo.MapGuide.ObjectModels.FeatureSource;
-using OSGeo.MapGuide.ObjectModels.MapDefinition;
-using OSGeo.MapGuide.ObjectModels.DrawingSource;
-using System.Diagnostics;
+using OSGeo.MapGuide.ObjectModels;
 
 namespace OSGeo.MapGuide.MaestroAPI
 {
+    /// <summary>
+    /// 
+    /// </summary>
     public delegate IResource ResourceDeserializationCallback(string xml);
+    /// <summary>
+    /// 
+    /// </summary>
     public delegate Stream ResourceSerializationCallback(IResource res);
 
+    /// <summary>
+    /// A resource serializer
+    /// </summary>
     public class ResourceSerializer
     {
+        /// <summary>
+        /// Gets or sets the serialize method.
+        /// </summary>
+        /// <value>The serialize method.</value>
         public ResourceSerializationCallback Serialize { get; set; }
 
+        /// <summary>
+        /// Gets or sets the deserialize method.
+        /// </summary>
+        /// <value>The deserialize method.</value>
         public ResourceDeserializationCallback Deserialize { get; set; }
     }
 
+    /// <summary>
+    /// A registry of serializers allowing automatic serialization/deserialization of any XML
+    /// content based on its version and resource type.
+    /// </summary>
     public static class ResourceTypeRegistry
     {
         private static Dictionary<ResourceTypeDescriptor, ResourceSerializer> _serializers;
@@ -74,7 +95,7 @@
                 new ResourceSerializer()
                 {
                     Serialize = (res) => { return res.SerializeToStream(); },
-                    Deserialize = (xml) => { return DrawingSource.Deserialize(xml); }
+                    Deserialize = (xml) => { return OSGeo.MapGuide.ObjectModels.DrawingSource_1_0_0.DrawingSource.Deserialize(xml); }
                 });
 
             //FeatureSource 1.0.0
@@ -83,7 +104,7 @@
                 new ResourceSerializer()
                 {
                     Serialize = (res) => { return res.SerializeToStream(); },
-                    Deserialize = (xml) => { return FeatureSourceType.Deserialize(xml); }
+                    Deserialize = (xml) => { return OSGeo.MapGuide.ObjectModels.FeatureSource_1_0_0.FeatureSourceType.Deserialize(xml); }
                 });
 
             //LayerDefinition 1.0.0
@@ -110,7 +131,7 @@
                 new ResourceSerializer()
                 {
                     Serialize = (res) => { return res.SerializeToStream(); },
-                    Deserialize = (xml) => { return MapDefinition.Deserialize(xml); }
+                    Deserialize = (xml) => { return OSGeo.MapGuide.ObjectModels.MapDefinition_1_0_0.MapDefinition.Deserialize(xml); }
                 });
 
             //PrintLayout 1.0.0
@@ -119,7 +140,7 @@
                 new ResourceSerializer()
                 {
                     Serialize = (res) => { return res.SerializeToStream(); },
-                    Deserialize = (xml) => { return PrintLayout.Deserialize(xml); }
+                    Deserialize = (xml) => { return OSGeo.MapGuide.ObjectModels.PrintLayout_1_0_0.PrintLayout.Deserialize(xml); }
                 });
 
             //SymbolDefinition 1.0.0
@@ -155,7 +176,7 @@
                 new ResourceSerializer()
                 {
                     Serialize = (res) => { return res.SerializeToStream(); },
-                    Deserialize = (xml) => { return SymbolLibraryType.Deserialize(xml); }
+                    Deserialize = (xml) => { return OSGeo.MapGuide.ObjectModels.SymbolLibrary_1_0_0.SymbolLibraryType.Deserialize(xml); }
                 });
 
             //WebLayout 1.0.0
@@ -168,6 +189,11 @@
                 });
         }
 
+        /// <summary>
+        /// Registers a resource serializer
+        /// </summary>
+        /// <param name="desc">The desc.</param>
+        /// <param name="serializer">The serializer.</param>
         public static void RegisterResource(ResourceTypeDescriptor desc, ResourceSerializer serializer)
         {
             if (_serializers.ContainsKey(desc))
@@ -176,6 +202,12 @@
             _serializers.Add(desc, serializer);
         }
 
+        /// <summary>
+        /// Registers a resource serializer
+        /// </summary>
+        /// <param name="desc">The desc.</param>
+        /// <param name="serializeMethod">The serialize method.</param>
+        /// <param name="deserializeMethod">The deserialize method.</param>
         public static void RegisterResource(ResourceTypeDescriptor desc, ResourceSerializationCallback serializeMethod, ResourceDeserializationCallback deserializeMethod)
         {
             RegisterResource(desc, new ResourceSerializer() { Deserialize = deserializeMethod, Serialize = serializeMethod });
@@ -186,6 +218,12 @@
             //does nothing, it's just for kicking the static constructor into gear 
         }
 
+        /// <summary>
+        /// Deserializes the specified stream for the specified resource type.
+        /// </summary>
+        /// <param name="resourceType">Type of the resource.</param>
+        /// <param name="stream">The stream.</param>
+        /// <returns></returns>
         public static IResource Deserialize(ResourceTypes resourceType, Stream stream)
         {
             //UGLY: We have to peek inside the stream to determine the version number
@@ -212,8 +250,11 @@
             }
         }
 
-        
-
+        /// <summary>
+        /// Serializes the specified resource.
+        /// </summary>
+        /// <param name="res">The resource.</param>
+        /// <returns></returns>
         public static Stream Serialize(IResource res)
         {
             var rd = res.GetResourceTypeDescriptor();
@@ -223,6 +264,11 @@
             return _serializers[rd].Serialize(res);
         }
 
+        /// <summary>
+        /// Deserializes the specified XML.
+        /// </summary>
+        /// <param name="xml">The XML.</param>
+        /// <returns></returns>
         public static IResource Deserialize(string xml)
         {
             var checker = new ResourceContentVersionChecker(xml);

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Serialization/IBinarySerializeable.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Serialization/IBinarySerializeable.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Serialization/IBinarySerializeable.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -26,7 +26,15 @@
 	/// </summary>
 	public interface IBinarySerializeable
 	{
+        /// <summary>
+        /// Serializes using the specified serializer.
+        /// </summary>
+        /// <param name="serializer">The serializer.</param>
 		void Serialize(MgBinarySerializer serializer);
+        /// <summary>
+        /// Deserializes using the specified deserializer.
+        /// </summary>
+        /// <param name="deserializer">The deserializer.</param>
 		void Deserialize(MgBinaryDeserializer deserializer);
 	}
 }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Serialization/MgBinaryDeserializer.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Serialization/MgBinaryDeserializer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Serialization/MgBinaryDeserializer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -31,8 +31,17 @@
 		private byte[] m_buf = new byte[Math.Max(MgBinarySerializer.DoubleLen, MgBinarySerializer.UInt64Len)];
 		private Version m_siteVersion;
 
+        /// <summary>
+        /// Gets the site version.
+        /// </summary>
+        /// <value>The site version.</value>
 		public Version SiteVersion { get { return m_siteVersion; } }
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="MgBinaryDeserializer"/> class.
+        /// </summary>
+        /// <param name="stream">The stream.</param>
+        /// <param name="siteversion">The siteversion.</param>
 		public MgBinaryDeserializer(Stream stream, Version siteversion)
 		{
 			m_stream = stream;
@@ -79,6 +88,10 @@
 			return p;
 		}
 
+        /// <summary>
+        /// Reads the string.
+        /// </summary>
+        /// <returns></returns>
 		public string ReadString()
 		{
 			MgArgumentPacket p = ReadArgumentPacket();
@@ -100,6 +113,10 @@
 			
 		}
 
+        /// <summary>
+        /// Reads the internal string.
+        /// </summary>
+        /// <returns></returns>
 		public string ReadInternalString()
 		{
 			int charwidth = m_stream.ReadByte();
@@ -123,6 +140,10 @@
 			return b.Substring(0, b.Length - 1);
 		}
 
+        /// <summary>
+        /// Reads the resource identifier.
+        /// </summary>
+        /// <returns></returns>
 		public string ReadResourceIdentifier()
 		{
 			int classId = ReadClassId();
@@ -140,6 +161,10 @@
 				return ReadString();
 		}
 
+        /// <summary>
+        /// Reads the int64.
+        /// </summary>
+        /// <returns></returns>
 		public long ReadInt64()
 		{
 			MgArgumentPacket p = ReadArgumentPacket();
@@ -149,6 +174,10 @@
 			return BitConverter.ToInt64(ReadStream(MgBinarySerializer.UInt64Len), 0);
 		}
 
+        /// <summary>
+        /// Reads the int32.
+        /// </summary>
+        /// <returns></returns>
 		public int ReadInt32()
 		{
 			MgArgumentPacket p = ReadArgumentPacket();
@@ -158,6 +187,10 @@
 			return BitConverter.ToInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
 		}
 
+        /// <summary>
+        /// Reads the int16.
+        /// </summary>
+        /// <returns></returns>
 		public short ReadInt16()
 		{
 			MgArgumentPacket p = ReadArgumentPacket();
@@ -167,11 +200,19 @@
 			return BitConverter.ToInt16(ReadStream(MgBinarySerializer.UInt16Len), 0);
 		}
 
+        /// <summary>
+        /// Reads the bool.
+        /// </summary>
+        /// <returns></returns>
 		public bool ReadBool()
 		{
 			return ReadByte() != 0;
 		}
 
+        /// <summary>
+        /// Reads the byte.
+        /// </summary>
+        /// <returns></returns>
 		public byte ReadByte()
 		{
 			MgArgumentPacket p = ReadArgumentPacket();
@@ -181,6 +222,10 @@
 			return (byte)m_stream.ReadByte();
 		}
 
+        /// <summary>
+        /// Reads the single.
+        /// </summary>
+        /// <returns></returns>
 		public float ReadSingle()
 		{
 			MgArgumentPacket p = ReadArgumentPacket();
@@ -189,7 +234,11 @@
 
 			return BitConverter.ToSingle(ReadStream(MgBinarySerializer.FloatLen), 0);
 		}
-		
+
+        /// <summary>
+        /// Reads the double.
+        /// </summary>
+        /// <returns></returns>
 		public double ReadDouble()
 		{
 			MgArgumentPacket p = ReadArgumentPacket();
@@ -199,6 +248,10 @@
 			return BitConverter.ToDouble(ReadStream(MgBinarySerializer.DoubleLen), 0);
 		}
 
+        /// <summary>
+        /// Reads the coordinates.
+        /// </summary>
+        /// <returns></returns>
 		public double[] ReadCoordinates()
 		{
 			int classid = ReadClassId();
@@ -221,6 +274,10 @@
 			return args;
 		}
 
+        /// <summary>
+        /// Reads the stream.
+        /// </summary>
+        /// <returns></returns>
 		public Stream ReadStream()
 		{
 			MgBinaryStreamArgumentPacket p = ReadBinaryStreamArgumentPacket();
@@ -260,6 +317,10 @@
 			return ms;
 		}
 
+        /// <summary>
+        /// Reads the class id.
+        /// </summary>
+        /// <returns></returns>
 		public int ReadClassId()
 		{
 			MgArgumentPacket p = ReadArgumentPacket();
@@ -269,6 +330,9 @@
 			return BitConverter.ToInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
 		}
 
+        /// <summary>
+        /// Reads the stream end.
+        /// </summary>
 		public void ReadStreamEnd()
 		{
 			int v = BitConverter.ToInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
@@ -276,6 +340,10 @@
 				throw new Exception("The read value was: " + v.ToString() + " while " + ((int)MgStreamHeaderValues.StreamEnd).ToString() + " was expected");
 		}
 
+        /// <summary>
+        /// Reads the object.
+        /// </summary>
+        /// <returns></returns>
 		public IBinarySerializeable ReadObject()
 		{
 			int classId = ReadClassId();
@@ -295,6 +363,11 @@
 			return obj;
 		}
 
+        /// <summary>
+        /// Reads the stream repeat.
+        /// </summary>
+        /// <param name="len">The len.</param>
+        /// <returns></returns>
 		public byte[] ReadStreamRepeat(int len)
 		{
 			byte[] buf = new byte[len];
@@ -302,11 +375,12 @@
 			return buf;
 		}
 
-		/// <summary>
-		/// Internal helper that will read from a potentially fragmented stream
-		/// </summary>
-		/// <param name="len">The number of bytes to read</param>
-		/// <returns></returns>
+        /// <summary>
+        /// Internal helper that will read from a potentially fragmented stream
+        /// </summary>
+        /// <param name="buf">The buf.</param>
+        /// <param name="offset">The offset.</param>
+        /// <param name="len">The number of bytes to read</param>
 		public void ReadStreamRepeat(byte[] buf, int offset, int len)
 		{
 			int r;

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Serialization/MgBinarySerializer.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Serialization/MgBinarySerializer.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Serialization/MgBinarySerializer.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -31,21 +31,53 @@
 		private Version m_siteVersion;
 
 
+        /// <summary>
+        /// 
+        /// </summary>
 		public static int UInt16Len = BitConverter.GetBytes((UInt16)0).Length;
+        /// <summary>
+        /// 
+        /// </summary>
 		public static int UInt32Len = BitConverter.GetBytes((UInt32)0).Length;
+        /// <summary>
+        /// 
+        /// </summary>
 		public static int UInt64Len = BitConverter.GetBytes((UInt64)0).Length;
+        /// <summary>
+        /// 
+        /// </summary>
 		public static int FloatLen =  BitConverter.GetBytes((float)0).Length;
+        /// <summary>
+        /// 
+        /// </summary>
 		public static int DoubleLen =  BitConverter.GetBytes((double)0).Length;
+        /// <summary>
+        /// 
+        /// </summary>
 		public static int UInt8Len =  1; //a byte...
 
+        /// <summary>
+        /// Gets the site version.
+        /// </summary>
+        /// <value>The site version.</value>
 		public Version SiteVersion { get { return m_siteVersion; } }
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="MgBinarySerializer"/> class.
+        /// </summary>
+        /// <param name="stream">The stream.</param>
+        /// <param name="siteversion">The siteversion.</param>
 		public MgBinarySerializer(Stream stream, Version siteversion)
 		{
 			m_stream = stream;
 			m_siteVersion = siteversion;
 		}
 
+        /// <summary>
+        /// Writes the coordinates.
+        /// </summary>
+        /// <param name="coordinates">The coordinates.</param>
+        /// <param name="dimensions">The dimensions.</param>
 		public void WriteCoordinates(double[] coordinates, int dimensions)
 		{
 			int ndim = dimensions;
@@ -68,6 +100,10 @@
 				Write(coordinates[i]);
 		}
 
+        /// <summary>
+        /// Writes the resource identifier.
+        /// </summary>
+        /// <param name="resourceID">The resource ID.</param>
 		public void WriteResourceIdentifier(string resourceID)
 		{
 			if (m_siteVersion <= SiteVersions.GetVersion(KnownSiteVersions.MapGuideEP1_1))
@@ -81,6 +117,10 @@
 		}
 
 
+        /// <summary>
+        /// Writes the specified value.
+        /// </summary>
+        /// <param name="value">The value.</param>
 		public void Write(string value)
 		{
 			if (m_siteVersion >= SiteVersions.GetVersion(KnownSiteVersions.MapGuideOS1_2))
@@ -96,6 +136,10 @@
 			}
 		}
 
+        /// <summary>
+        /// Writes the string internal.
+        /// </summary>
+        /// <param name="value">The value.</param>
 		public void WriteStringInternal(string value)
 		{
             if (value == null)
@@ -109,18 +153,30 @@
 			m_stream.Write(buf, 0, buf.Length);
 		}
 
+        /// <summary>
+        /// Writes the specified value.
+        /// </summary>
+        /// <param name="value">The value.</param>
 		public void Write(short value)
 		{
 			Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.INT16, null, (ulong)UInt16Len));
 			m_stream.Write(BitConverter.GetBytes(value), 0, UInt16Len);
 		}
 
+        /// <summary>
+        /// Writes the specified value.
+        /// </summary>
+        /// <param name="value">The value.</param>
 		public void Write(int value)
 		{
 			Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.INT32, null, (ulong)UInt32Len));
 			m_stream.Write(BitConverter.GetBytes(value), 0, UInt32Len);
 		}
 
+        /// <summary>
+        /// Writes the specified value.
+        /// </summary>
+        /// <param name="value">The value.</param>
 		public void Write(long value)
 		{
 			Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.INT64, null, (ulong)UInt64Len));
@@ -133,36 +189,59 @@
 			m_stream.Write(BitConverter.GetBytes(value), 0, FloatLen);
 		}
 
+        /// <summary>
+        /// Writes the specified value.
+        /// </summary>
+        /// <param name="value">The value.</param>
 		public void Write(double value)
 		{
 			Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.Double, null, (ulong)DoubleLen));
 			m_stream.Write(BitConverter.GetBytes(value), 0, DoubleLen);
 		}
 
+        /// <summary>
+        /// Writes the specified value.
+        /// </summary>
+        /// <param name="value">if set to <c>true</c> [value].</param>
 		public void Write(bool value)
 		{
 			Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.INT8, null, (ulong)UInt8Len));
 			m_stream.WriteByte((byte)(value ? 1 : 0));
 		}
 
+        /// <summary>
+        /// Writes the specified value.
+        /// </summary>
+        /// <param name="value">The value.</param>
 		public void Write(byte value)
 		{
 			Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.INT8, null, (ulong)UInt8Len));
 			m_stream.WriteByte(value);
 		}
 
+        /// <summary>
+        /// Writes the class id.
+        /// </summary>
+        /// <param name="value">The value.</param>
 		public void WriteClassId(int value)
 		{
 			Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.ClassId, null, (ulong)UInt32Len));
 			m_stream.Write(BitConverter.GetBytes(value), 0, UInt32Len);
 		}
 
+        /// <summary>
+        /// Writes the stream end.
+        /// </summary>
 		public void WriteStreamEnd()
 		{
 			m_stream.Write(BitConverter.GetBytes((UInt32)MgStreamHeaderValues.StreamEnd), 0, UInt32Len);
 			m_stream.Flush();
 		}
 
+        /// <summary>
+        /// Writes the specified value.
+        /// </summary>
+        /// <param name="value">The value.</param>
 		public void Write(IBinarySerializeable value)
 		{
 			if (value == null)
@@ -171,7 +250,11 @@
 				value.Serialize(this);
 		}
 
-		
+
+        /// <summary>
+        /// Writes the specified value.
+        /// </summary>
+        /// <param name="value">The value.</param>
 		private void Write(MgBinaryStreamArgumentPacket value)
 		{
 			m_stream.Write(BitConverter.GetBytes((UInt32)value.PacketHeader), 0, UInt32Len);
@@ -180,6 +263,10 @@
 			m_stream.Write(BitConverter.GetBytes((UInt64)value.Length), 0, UInt64Len);
 		}
 
+        /// <summary>
+        /// Writes the specified stream.
+        /// </summary>
+        /// <param name="stream">The stream.</param>
 		public void Write(Stream stream)
 		{
 			Write(new MgBinaryStreamArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.INT8, null, (ulong)(stream == null ? 0 : stream.Length), MgBinaryStreamArgumentPacket.MG_STREAM_VERSION ));
@@ -197,6 +284,10 @@
 			}
 		}
 
+        /// <summary>
+        /// Writes the specified value.
+        /// </summary>
+        /// <param name="value">The value.</param>
 		private void Write(MgArgumentPacket value)
 		{
 			m_stream.Write(BitConverter.GetBytes((UInt32)value.PacketHeader), 0, UInt32Len);
@@ -205,6 +296,10 @@
 				m_stream.Write(BitConverter.GetBytes((UInt32)value.Length), 0, UInt32Len);
 		}
 
+        /// <summary>
+        /// Writes the specified value.
+        /// </summary>
+        /// <param name="value">The value.</param>
 		private void Write(MgStreamHeader value)
 		{
 			m_stream.Write(BitConverter.GetBytes((UInt32)value.StreamStart), 0, UInt32Len);
@@ -212,11 +307,19 @@
 			m_stream.Write(BitConverter.GetBytes((UInt32)value.StreamDataHdr), 0, UInt32Len);
 		}
 
+        /// <summary>
+        /// Writes the specified value.
+        /// </summary>
+        /// <param name="value">The value.</param>
 		private void Write(MgOperationPacket value)
 		{
 			throw new NotImplementedException();
 		}
 
+        /// <summary>
+        /// Writes the specified value.
+        /// </summary>
+        /// <param name="value">The value.</param>
 		private void Write(MgOperationResponsePacket value)
 		{
 			m_stream.Write(BitConverter.GetBytes((UInt32)value.PacketHeader), 0, UInt32Len);
@@ -225,12 +328,21 @@
 			m_stream.Write(BitConverter.GetBytes((UInt32)value.NumReturnValues), 0, UInt32Len);
 		}
 
+        /// <summary>
+        /// Writes the specified e code.
+        /// </summary>
+        /// <param name="eCode">The e code.</param>
+        /// <param name="noOfRetValues">The no of ret values.</param>
 		private void Write(MgECode eCode, UInt32 noOfRetValues)
 		{
 			Write(new MgStreamHeader(MgStreamHeaderValues.StreamStart, MgStreamHeader.CurrentStreamVersion, MgStreamHeaderValues.StreamData));
 			Write(new MgOperationResponsePacket(MgPacketHeader.OperationResponse, 1, eCode, noOfRetValues));
 		}
 
+        /// <summary>
+        /// Writes the specified value.
+        /// </summary>
+        /// <param name="value">The value.</param>
 		private void Write(MgControlPacket value)
 		{
 			Write(new MgStreamHeader(MgStreamHeaderValues.StreamStart, MgStreamHeader.CurrentStreamVersion, MgStreamHeaderValues.StreamData));
@@ -240,6 +352,10 @@
 			WriteStreamEnd();
 		}
 
+        /// <summary>
+        /// Writes the raw.
+        /// </summary>
+        /// <param name="buf">The buf.</param>
 		public void WriteRaw(byte[] buf)
 		{
 			m_stream.Write(buf, 0, buf.Length);

Deleted: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ServerConnectionBase.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ServerConnectionBase.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/ServerConnectionBase.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,1657 +0,0 @@
-#region Disclaimer / License
-// Copyright (C) 2009, Kenneth Skovhede
-// http://www.hexad.dk, opensource at hexad.dk
-// 
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License, or (at your option) any later version.
-// 
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-// Lesser General Public License for more details.
-// 
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-// 
-#endregion
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Xml;
-using System.Text;
-using System.IO;
-
-using ObjCommon = OSGeo.MapGuide.ObjectModels.Common;
-using AppDef = OSGeo.MapGuide.ObjectModels.ApplicationDefinition;
-using OSGeo.MapGuide.ObjectModels.Capabilities;
-using OSGeo.MapGuide.MaestroAPI.Resource;
-using OSGeo.MapGuide.MaestroAPI.Commands;
-using OSGeo.MapGuide.ObjectModels.LoadProcedure;
-
-namespace OSGeo.MapGuide.MaestroAPI
-{
-	/// <summary>
-	/// Summary description for ServerConnectionBase.
-	/// </summary>
-	public abstract class ServerConnectionBase
-	{
-		/// <summary>
-		/// A list of cached serializers
-		/// </summary>
-		protected Hashtable m_serializers;
-
-		/// <summary>
-		/// The current XML validator
-		/// </summary>
-		protected XMLValidator m_validator;
-
-		/// <summary>
-		/// The path of Xsd schemas 
-		/// </summary>
-		protected string m_schemasPath;
-
-		/// <summary>
-		/// A lookup table for Xsd Schemas
-		/// </summary>
-		protected Hashtable m_cachedSchemas;
-
-		/// <summary>
-		/// A flag indicating if Xsd validation is perfomed
-		/// </summary>
-		protected bool m_disableValidation = false;
-
-		/// <summary>
-		/// A flag that indicates if a session will be automatically restarted
-		/// </summary>
-		protected bool m_autoRestartSession = false;
-
-		/// <summary>
-		/// The username used to open this connection, if any
-		/// </summary>
-		protected string m_username;
-
-		/// <summary>
-		/// The password used to open this connection, if any
-		/// </summary>
-		protected string m_password;
-
-        protected ObjCommon.UserList m_cachedUserList = null;
-        protected ObjCommon.GroupList m_cachedGroupList = null;
-
-		protected ServerConnectionBase()
-		{
-            ResourceTypeRegistry.Init();
-
-			m_serializers = new Hashtable();
-			m_validator = new XMLValidator();
-			m_cachedSchemas = new Hashtable();
-
-			m_schemasPath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), "Schemas");
-			m_username = null;
-			m_password = null;
-		}
-
-		/// <summary>
-		/// Gets a full list of resources in the permanent server repository (Library).
-		/// This method returns the full catalog and should be used sparringly.
-		/// </summary>
-		/// <returns>A list of contained resources</returns>
-        virtual public ObjCommon.ResourceList GetRepositoryResources()
-		{
-			return GetRepositoryResources("Library://", null, -1, true);
-		}
-
-		/// <summary>
-		/// Gets a list of resources in the permanent server repository (Library).
-		/// This method limits folder recursion to the specified depth.
-		/// </summary>
-		/// <param name="depth">The max depth to recurse. Use -1 for no limit.</param>
-		/// <returns>A list of contained resources</returns>
-        virtual public ObjCommon.ResourceList GetRepositoryResources(int depth)
-		{
-			return GetRepositoryResources("Library://", null, depth, true);
-		}
-
-		/// <summary>
-		/// Gets a list of resources in the permanent server repository (Library).
-		/// This method limits folder recursion to the specified depth.
-		/// </summary>
-		/// <param name="startingpoint">The folder from which to return items. Use null for &quot;Library://&quot;</param>
-		/// <param name="depth">The max depth to recurse. Use -1 for no limit.</param>
-		/// <returns>A list of contained resources</returns>
-        virtual public ObjCommon.ResourceList GetRepositoryResources(string startingpoint, int depth)
-		{
-			return GetRepositoryResources(startingpoint, null, depth, true);
-		}
-
-		/// <summary>
-		/// Gets a list of resources in the permanent server repository (Library).
-		/// This method limits folder recursion to the specified depth.
-		/// </summary>
-		/// <param name="startingpoint">The folder from which to return items. Use null for &quot;Library://&quot;</param>
-		/// <returns>A list of contained resources</returns>
-        virtual public ObjCommon.ResourceList GetRepositoryResources(string startingpoint)
-		{
-			return GetRepositoryResources(startingpoint, null, -1, true);
-		}
-
-		/// <summary>
-		/// Gets a list of resources in the permanent server repository (Library).
-		/// This method limits folder recursion to the specified depth.
-		/// </summary>
-		/// <param name="startingpoint">The folder from which to return items. Use null for &quot;Library://&quot;</param>
-		/// <param name="type">The type of resource to look for. Basically this is the resource extension, like &quot;.MapDefinition&quot;. Use null for all resources.</param>
-		/// <returns>A list of contained resources</returns>
-        virtual public ObjCommon.ResourceList GetRepositoryResources(string startingpoint, string type)
-		{
-			return GetRepositoryResources(startingpoint, type, -1, true);
-		}
-
-		/// <summary>
-		/// Gets a list of resources in the permanent server repository (Library).
-		/// This method limits folder recursion to the specified depth.
-		/// </summary>
-		/// <param name="startingpoint">The folder from which to return items. Use null for &quot;Library://&quot;</param>
-		/// <param name="type">The type of resource to look for. Basically this is the resource extension, like &quot;.MapDefinition&quot;. Use null for all resources.</param>
-		/// <param name="depth">The max depth to recurse. Use -1 for no limit.</param>
-		/// <returns>A list of contained resources</returns>
-        public ObjCommon.ResourceList GetRepositoryResources(string startingpoint, string type, int depth)
-        {
-            return GetRepositoryResources(startingpoint, type, depth, true);
-        }
-
-
-        /// <summary>
-        /// Gets a list of resources in the permanent server repository (Library).
-        /// </summary>
-        /// <param name="startingpoint">The folder from which to return items. Use null for &quot;Library://&quot;</param>
-        /// <param name="type">The type of resource to look for. Basically this is the resource extension, like &quot;.MapDefinition&quot;. Use null for all resources.</param>
-        /// <param name="depth">The max depth to recurse. Use -1 for no limit.</param>
-        /// <param name="computeChildren">A flag indicating if the count of subfolders and resources should be calculated for leaf nodes</param>
-        /// <returns>A list of contained resources</returns>
-        abstract public ObjCommon.ResourceList GetRepositoryResources(string startingpoint, string type, int depth, bool computeChildren);
-
-
-		/// <summary>
-		/// Gets the current SessionID.
-		/// </summary>
-		abstract public string SessionID { get; }
-
-		/*/// <summary>
-		/// Builds a resource Identifier, using path info
-		/// </summary>
-		/// <param name="path">The initial absolute path, not including type or repository info, ea. Test/MyResource</param>
-		/// <param name="type">The type of the resource</param>
-		/// <param name="fromSession">True if the item is found in the session</param>
-		/// <returns>A string representing the resource identifier</returns>
-		virtual public string GetResourceIdentifier(string path, ResourceTypes type,  bool fromSession)
-		{
-			if (fromSession)
-				return "Session:" + SessionID + "//" + path + EnumHelper.ResourceName(type, true);
-			else
-				return "Library://" + path + EnumHelper.ResourceName(type, true);
-		}*/
-
-        /// <summary>
-        /// Deserializes an object from a stream.
-        /// </summary>
-        /// <typeparam name="T">The expected object type</typeparam>
-        /// <param name="data">The stream containing the object</param>
-        /// <returns>The deserialized object</returns>
-        virtual public T DeserializeObject<T>(System.IO.Stream data)
-        {
-            return (T)DeserializeObject(typeof(T), data);
-        }
-
-		/// <summary>
-		/// Deserializes an object from a stream.
-		/// </summary>
-		/// <param name="type">The expected object type</param>
-		/// <param name="data">The stream containing the object</param>
-		/// <returns>The deserialized object</returns>
-		virtual public object DeserializeObject(Type type, System.IO.Stream data)
-		{
-            //HACK: MGOS 2.2 outputs different capabilities xml (because it's actually the correct one!), so 
-            //without breaking support against 2.1 and older servers, we transform the xml to its pre-2.2 form
-            if (type == typeof(FdoProviderCapabilities) && this.SiteVersion < new Version(2, 2))
-            {
-                StringBuilder sb = null;
-                using (StreamReader reader = new StreamReader(data))
-                {
-                    sb = new StringBuilder(reader.ReadToEnd());
-                }
-
-                //Pre-2.2 the elements were suffixed with Collection, change the suffix to List
-
-                sb.Replace("<FunctionDefinitionCollection>", "<FunctionDefinitionList>");
-                sb.Replace("</FunctionDefinitionCollection>", "</FunctionDefinitionList>");
-                sb.Replace("<FunctionDefinitionCollection/>", "<FunctionDefinitionList/>");
-                sb.Replace("<ArgumentDefinitionCollection>", "<ArgumentDefinitionList>");
-                sb.Replace("</ArgumentDefinitionCollection>", "</ArgumentDefinitionList>");
-                sb.Replace("<ArgumentDefinitionCollection/>", "<ArgumentDefinitionList/>");
-
-                byte[] bytes = Encoding.UTF8.GetBytes(sb.ToString());
-
-                //Replace the original input stream
-                data = new MemoryStream(bytes);
-            }
-
-			//Must copy stream, because we will be reading it twice :(
-			//Once for validation, and once for deserialization
-			System.IO.MemoryStream ms = new System.IO.MemoryStream();
-			Utility.CopyStream(data, ms);
-			ms.Position = 0;
-
-#if DEBUG_LASTMESSAGE
-			//Save us a copy for later investigation
-			using (System.IO.FileStream fs = System.IO.File.Open("lastResponse.xml", System.IO.FileMode.Create, System.IO.FileAccess.ReadWrite, System.IO.FileShare.None))
-				Utility.CopyStream(ms, fs);
-
-			ms.Position = 0;
-#endif
-			//TODO: Find out why the "xs:include" doesn't work with validator
-			//Validation is quite important, as we otherwise may end up injecting malicious code
-			//			if (!m_disableValidation)
-			//			{
-			//				m_validator.Validate(ms, GetSchema(type));
-			//				ms.Position = 0;
-			//			}
-
-			try
-			{
-				return GetSerializer(type).Deserialize(ms);
-			}
-			catch (Exception ex)
-			{
-				string s = ex.Message;
-				throw;
-			}
-		}
-
-		/// <summary>
-		/// Serialize an object into a new memory stream.
-		/// </summary>
-		/// <param name="o">The object to serialize</param>
-		/// <returns>A memorystream with the serialized object</returns>
-		virtual public System.IO.MemoryStream SerializeObject(object o)
-		{
-			System.IO.MemoryStream ms = new System.IO.MemoryStream();
-            GetSerializer(o.GetType()).Serialize(new Utf8XmlWriter(ms), o);
-            return Utility.RemoveUTF8BOM(ms);
-		}
-
-		/// <summary>
-		/// Serializes an object into a stream
-		/// </summary>
-		/// <param name="o">The object to serialize</param>
-		/// <param name="stream">The stream to serialize into</param>
-		virtual public void SerializeObject(object o, System.IO.Stream stream)
-		{
-			//The Utf8 writer makes sure the Utf8 tag is in place + sets encoding to Utf8
-			//This is needed because the server fails when rendering maps using non utf8 xml documents
-			//And the XmlSerializer sytem in .Net does not have a method to set the encoding attribute
-
-            //This does not remove the utf8 BOM marker :(
-            //GetSerializer(o.GetType()).Serialize(new Utf8XmlWriter(stream), o);
-
-            SerializeObject(o).WriteTo(stream);
-		}
-
-		/// <summary>
-		/// Returns an XmlSerializer for the given type
-		/// </summary>
-		/// <param name="type">The object type to serialize</param>
-		/// <returns>An XmlSerializer for the given type</returns>
-		virtual protected System.Xml.Serialization.XmlSerializer GetSerializer(Type type)
-		{
-			if (m_serializers[type] == null)
-				m_serializers[type] = new System.Xml.Serialization.XmlSerializer(type);
-			return (System.Xml.Serialization.XmlSerializer)m_serializers[type];
-		}
-
-		/// <summary>
-		/// Gets the highest version the API is currently tested againts
-		/// </summary>
-		virtual public Version MaxTestedVersion
-		{
-			get { return SiteVersions.GetVersion(KnownSiteVersions.MapGuideOS2_1); }
-		}
-
-		/// <summary>
-		/// Validates the current server version against the highest tested version.
-		/// </summary>
-		/// <param name="version">The version to validate</param>
-        virtual protected void ValidateVersion(ObjCommon.SiteVersion version)
-		{
-			ValidateVersion(new Version(version.Version));
-		}
-
-		/// <summary>
-		/// Validates the current server version against the highest tested version.
-		/// </summary>
-		/// <param name="version">The version to validate</param>
-		virtual protected void ValidateVersion(Version version)
-		{
-			if (version > this.MaxTestedVersion)
-				throw new Exception("Untested with MapGuide Build > " + this.MaxTestedVersion.ToString());
-		}
-
-
-		/// <summary>
-		/// Returns raw data from the server a byte array
-		/// </summary>
-		/// <param name="resourceID">The full resourceID to get data from</param>
-		/// <returns>Raw data from the given resource</returns>
-		public abstract Stream GetResourceXmlData(string resourceID);
-
-		/// <summary>
-		/// Returns an object deserialized from server data.
-		/// Uses the ResourceID to infer the object type.
-		/// </summary>
-		/// <param name="resourceID">The full resourceID of the item to retrieve.</param>
-		/// <returns>A deserialized object.</returns>
-		virtual public IResource GetResource(string resourceID)
-		{
-            var stream = GetResourceXmlData(resourceID);
-            var rt = ResourceIdentifier.GetResourceType(resourceID);
-
-            IResource o = ResourceTypeRegistry.Deserialize(rt, stream);
-            o.CurrentConnection = GetInterface();
-            o.ResourceID = resourceID;
-
-			return o;
-		}
-
-        protected abstract IServerConnection GetInterface();
-
-		/// <summary>
-		/// Removes the version numbers from a providername
-		/// </summary>
-		/// <param name="providername">The name of the provider, with or without version numbers</param>
-		/// <returns>The provider name without version numbers</returns>
-		virtual public string RemoveVersionFromProviderName(string providername)
-		{
-            return Utility.StripVersionFromProviderName(providername);
-		}
-
-		/// <summary>
-		/// Returns an installed provider, given the name of the provider
-		/// </summary>
-		/// <param name="providername">The name of the provider</param>
-		/// <returns>The first matching provider or null</returns>
-        virtual public ObjCommon.FeatureProviderRegistryFeatureProvider GetFeatureProvider(string providername)
-		{
-			string pname = RemoveVersionFromProviderName(providername).ToLower();
-            foreach (ObjCommon.FeatureProviderRegistryFeatureProvider p in this.FeatureProviders)
-				if (RemoveVersionFromProviderName(p.Name).ToLower().Equals(pname.ToLower()))
-					return p;
-
-			return null;
-		}
-
-		public abstract string TestConnection(string featuresource);
-		public abstract void DeleteResource(string resourceid);
-
-		/// <summary>
-		/// Writes an object into a resourceID
-		/// </summary>
-		/// <param name="resourceid">The resource to write into</param>
-		/// <param name="resource">The resourcec to write</param>
-		virtual public void WriteResource(string resourceid, object resource)
-		{
-			System.IO.MemoryStream ms = SerializeObject(resource);
-			ms.Position = 0;
-
-			//Validate that our data is correctly formated
-			/*if (!m_disableValidation)
-			{
-				m_validator.Validate(ms, GetSchema(resource.GetType()));
-				ms.Position = 0;
-			}*/
-
-#if DEBUG_LASTMESSAGE
-			using (System.IO.Stream s = System.IO.File.Open("lastSave.xml", System.IO.FileMode.Create, System.IO.FileAccess.Write, System.IO.FileShare.None))
-				Utility.CopyStream(ms, s);
-			ms.Position = 0;
-#endif
-		
-			SetResourceXmlData(resourceid, ms);
-		}
-
-        /// <summary>
-        /// Writes raw data into a resource.
-        /// </summary>
-        /// <param name="resourceid">The resourceID to write into</param>
-        /// <param name="stream">The stream containing the data to write.</param>
-        public virtual void SetResourceXmlData(string resourceid, System.IO.Stream stream)
-        {
-            SetResourceXmlData(resourceid, stream, null);
-        }
-
-		/// <summary>
-		/// Gets the Xsd schema for a given type.
-		/// </summary>
-		/// <param name="type">The type to get the schema for</param>
-		/// <returns>The schema for the given type</returns>
-		virtual protected System.Xml.Schema.XmlSchema GetSchema(Type type)
-		{
-			if (m_cachedSchemas[type] == null)
-			{
-				System.Reflection.FieldInfo fi = type.GetField("SchemaName", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public );
-				if (fi == null)
-					throw new Exception("Type " + type + ", does not contain Schema Info");
-
-				string xsd = (string)fi.GetValue(null);
-
-				using (System.IO.FileStream fs = System.IO.File.Open(System.IO.Path.Combine(m_schemasPath, xsd), System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read))
-					m_cachedSchemas.Add(type, System.Xml.Schema.XmlSchema.Read(fs, null));
-			}
-
-			return (System.Xml.Schema.XmlSchema)m_cachedSchemas[type];
-		
-		}
-
-		/// <summary>
-		/// Gets or sets the collection of cached schemas. Use the object type for key, and an XmlSchema instance for value.
-		/// </summary>
-		virtual public Hashtable CachedSchemas
-		{
-			get { return m_cachedSchemas; }
-			set { m_cachedSchemas = value; }
-		}
-
-
-		/// <summary>
-		/// Returns a boolean indicating if a given resource exists
-		/// </summary>
-		/// <param name="resourceid">The resource to look for</param>
-		/// <returns>True if the resource exists false otherwise. Also returns false on error.</returns>
-		public virtual bool ResourceExists(string resourceid)
-		{
-			try
-			{
-				string sourcefolder;
-				if (resourceid.EndsWith("/"))
-					sourcefolder = resourceid.Substring(0, resourceid.Substring(0, resourceid.Length-1).LastIndexOf("/") + 1);
-				else
-					sourcefolder = resourceid.Substring(0, resourceid.LastIndexOf("/") + 1);
-
-				ObjCommon.ResourceList lst = GetRepositoryResources(sourcefolder, 1);
-				foreach(object o in lst.Items)
-                    if (o.GetType() == typeof(ObjCommon.ResourceListResourceFolder) && ((ObjCommon.ResourceListResourceFolder)o).ResourceId == resourceid)
-						return true;
-                    else if (o.GetType() == typeof(ObjCommon.ResourceListResourceDocument) && ((ObjCommon.ResourceListResourceDocument)o).ResourceId == resourceid)
-						return true;
-
-				return false;
-			}
-			catch
-			{
-				return false;
-			}
-		}
-
-		/// <summary>
-		/// Updates all resource references inside an object.
-		/// </summary>
-		/// <param name="o">The object in which the resource references are to be updated</param>
-		/// <param name="oldresourcepath">The current resource path, the one updating from</param>
-		/// <param name="newresourcepath">The new resource path, the one updating to</param>
-		/// <param name="folderupdates">True if the old and new resource path identifiers are folders, false otherwise</param>
-		public virtual void UpdateResourceReferences(object o, string oldresourcepath, string newresourcepath, bool folderupdates)
-		{
-			UpdateResourceReferences(o, oldresourcepath, newresourcepath, folderupdates, new Hashtable());
-		}
-
-
-
-		/// <summary>
-		/// Updates all resource references inside an object.
-		/// </summary>
-		/// <param name="o">The object in which the resource references are to be updated</param>
-		/// <param name="oldresourcepath">The current resource path, the one updating from</param>
-		/// <param name="newresourcepath">The new resource path, the one updating to</param>
-		/// <param name="folderupdates">True if the old and new resource path identifiers are folders, false otherwise</param>
-		/// <param name="visited">A hashtable with objects previously visited. Used for recursion, leave as null when calling from outside the API.</param>
-		protected void UpdateResourceReferences(object o, string oldresourcepath, string newresourcepath, bool folderupdates, Hashtable visited)
-		{
-			if (o == null)
-				return;
-
-			if (visited == null)
-				visited = new Hashtable();
-
-			//Prevent infinite recursion
-			if (o as string == null && !o.GetType().IsPrimitive)
-			{
-				if (visited.ContainsKey(o))
-					return;
-				else
-					visited.Add(o, null);
-			}
-
-			if (folderupdates)
-			{
-				if (!oldresourcepath.EndsWith("/"))
-					oldresourcepath += "/";
-				if (!newresourcepath.EndsWith("/"))
-					newresourcepath += "/";
-			}
-
-            //If the value is a document or fragment of a document, we still wan't to repoint it
-            if (o as System.Xml.XmlDocument != null || o as System.Xml.XmlNode != null)
-            {
-                Queue<System.Xml.XmlNode> lst = new Queue<System.Xml.XmlNode>();
-                if (o as System.Xml.XmlDocument != null)
-                {
-                    foreach (System.Xml.XmlNode n in (o as System.Xml.XmlDocument).ChildNodes)
-                        if (n.NodeType == System.Xml.XmlNodeType.Element)
-                            lst.Enqueue(n);
-                }
-                else
-                    lst.Enqueue(o as System.Xml.XmlNode);
-
-                while (lst.Count > 0)
-                {
-                    System.Xml.XmlNode n = lst.Dequeue();
-
-                    foreach (System.Xml.XmlNode nx in n.ChildNodes)
-                        if (nx.NodeType == System.Xml.XmlNodeType.Element)
-                            lst.Enqueue(nx);
-
-                    if (n.Name == "ResourceId")
-                    {
-                        string current = n.InnerXml;
-                        if (folderupdates && current.StartsWith(oldresourcepath))
-                            n.InnerXml = newresourcepath + current.Substring(oldresourcepath.Length);
-                        else if (current == oldresourcepath)
-                            n.InnerXml = newresourcepath;
-                    }
-
-                    foreach(System.Xml.XmlAttribute a in n.Attributes)
-                        if (a.Name == "ResourceId")
-                        {
-                            string current = a.Value;
-                            if (folderupdates && current.StartsWith(oldresourcepath))
-                                n.Value = newresourcepath + current.Substring(oldresourcepath.Length);
-                            else if (current == oldresourcepath)
-                                n.Value = newresourcepath;
-                        }
-                }
-
-                //There can be no objects in an xml document or node, so just return immediately
-                return;
-            }
-
-            //Try to find the object properties
-			foreach(System.Reflection.PropertyInfo pi in o.GetType().GetProperties())
-			{
-                //Only index free read-write properties are taken into account
-				if (!pi.CanRead || !pi.CanWrite || pi.GetIndexParameters().Length != 0 || pi.GetValue(o, null) == null)
-					continue;
-
-                object v = pi.GetValue(o, null);
-                if (v == null)
-                    continue;
-
-                if (v is string)
-
-                //If we are at a ResourceId property, update it as needed
-                    if (v is string)
-                    {
-                        bool isResId = pi.Name == "ResourceId";
-                        if (!isResId)
-                        {
-                            //Search for attributes
-                            object[] xmlAttrs = pi.GetCustomAttributes(typeof(System.Xml.Serialization.XmlElementAttribute), false);
-                            if (xmlAttrs != null)
-                                foreach (System.Xml.Serialization.XmlElementAttribute attr in xmlAttrs)
-                                    if (attr.Type == typeof(string) && attr.ElementName == "ResourceId")
-                                        if (pi.Name == "ResourceId")
-                                        {
-                                            isResId = true;
-                                            break;
-                                        }
-                        }
-
-                        if (isResId)
-                        {
-                            string current = v as string;
-
-                            if (current != null)
-                            {
-                                if (folderupdates && current.StartsWith(oldresourcepath))
-                                    pi.SetValue(o, newresourcepath + current.Substring(oldresourcepath.Length), null);
-                                else if (current == oldresourcepath)
-                                    pi.SetValue(o, newresourcepath, null);
-                            }
-                        }
-                    }
-                    else if (v is IEnumerable)
-                    {
-                        //Handle collections
-                        System.Collections.IEnumerable srcList = (System.Collections.IEnumerable)v;
-                        foreach (object ox in srcList)
-                            UpdateResourceReferences(ox, oldresourcepath, newresourcepath, folderupdates, visited);
-                    }
-                    else if (v.GetType().IsArray)
-                    {
-                        //Handle arrays
-                        System.Array sourceArr = (System.Array)v;
-                        for (int i = 0; i < sourceArr.Length; i++)
-                            UpdateResourceReferences(sourceArr.GetValue(i), oldresourcepath, newresourcepath, folderupdates, visited);
-                    }
-                    else if (v.GetType().IsClass)
-                    {
-                        //Handle subobjects
-                        UpdateResourceReferences(v, oldresourcepath, newresourcepath, folderupdates, visited);
-                    }
-			}
-
-		}
-
-
-		/// <summary>
-		/// Moves a resource, and subsequently updates all resources pointing to the old resource path
-		/// </summary>
-		/// <param name="oldpath">The current resource path, the one moving from</param>
-		/// <param name="newpath">The new resource path, the one moving to</param>
-		/// <param name="callback">A callback delegate, being called for non progress reporting events.</param>
-		/// <param name="progress">A callback delegate, being called for progress reporting events.</param>
-		/// <returns></returns>
-		public virtual bool MoveResourceWithReferences(string oldpath, string newpath, LengthyOperationCallBack callback, LengthyOperationProgressCallBack progress)
-		{
-			LengthyOperationProgressArgs la = new LengthyOperationProgressArgs("Moving resource...", -1); //LOCALIZEME
-
-			if (progress != null)
-				progress(this, la);
-			if (la.Cancel)
-				return false;
-			MoveResource(oldpath, newpath, true);
-			la.Progress = 100;
-			if (progress != null)
-				progress(this, la);
-			if (la.Cancel)
-				return false;
-
-			la.Progress = -1;
-			if (progress != null)
-				progress(this, la);
-			if (la.Cancel)
-				return false;
-
-			ArrayList items = new ArrayList();
-			Hashtable paths = new Hashtable();
-
-			//The old path does not exist, but luckily the call works anyway
-            ObjCommon.ResourceReferenceList rlf = EnumerateResourceReferences(oldpath);
-
-			foreach(string s in rlf.ResourceId)
-				if (!paths.ContainsKey(s))
-				{
-					items.Add(new LengthyOperationCallbackArgs.LengthyOperationItem(s));
-					paths.Add(s, null);
-				}
-
-			la.Progress = 100;
-			if (progress != null)
-				progress(this, la);
-			if (la.Cancel)
-				return false;
-
-			LengthyOperationCallbackArgs args = new LengthyOperationCallbackArgs((LengthyOperationCallbackArgs.LengthyOperationItem[])items.ToArray(typeof(LengthyOperationCallbackArgs.LengthyOperationItem)));
-
-			if (callback != null)
-				callback(this, args);
-
-			if (args.Cancel)
-				return false;
-
-			if (args.Index > args.Items.Length)
-				return true;
-
-			if (args.Items.Length == 0)
-				return true;
-
-			do
-			{
-				LengthyOperationCallbackArgs.LengthyOperationItem item = args.Items[args.Index];
-				item.Status = LengthyOperationCallbackArgs.LengthyOperationItem.OperationStatus.Pending;
-
-				if (callback != null)
-				{
-					callback(this, args);
-					if (args.Cancel) return false;
-				}
-
-				try
-				{
-                    System.Xml.XmlDocument d = new System.Xml.XmlDocument();
-                    using (var ms = GetResourceXmlData(item.Itempath))
-                        d.Load(ms);
-
-                    UpdateResourceReferences(d, oldpath, newpath, false);
-                    using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
-                    {
-                        d.Save(ms);
-                        ms.Position = 0;
-
-                        SetResourceXmlData(item.Itempath, ms);
-                    }
-					item.Status = LengthyOperationCallbackArgs.LengthyOperationItem.OperationStatus.Success;
-				}
-				catch (Exception ex)
-				{
-					string s = ex.Message;
-					item.Status = LengthyOperationCallbackArgs.LengthyOperationItem.OperationStatus.Failure;
-				}
-
-				if (callback != null)
-				{
-					callback(this, args);
-					if (args.Cancel) return false;
-				}
-				
-				args.Index++;
-			} while(!args.Cancel && args.Index < args.Items.Length);
-
-			return !args.Cancel;
-		}
-
-		/// <summary>
-		/// Moves a folder, and subsequently updates all resources pointing to the old resource path
-		/// </summary>
-		/// <param name="oldpath">The current folder path, the one moving from</param>
-		/// <param name="newpath">The new folder path, the one moving to</param>
-		/// <param name="callback">A callback delegate, being called for non progress reporting events.</param>
-		/// <param name="progress">A callback delegate, being called for progress reporting events.</param>
-		/// <returns></returns>
-		public virtual bool MoveFolderWithReferences(string oldpath, string newpath, LengthyOperationCallBack callback, LengthyOperationProgressCallBack progress)
-		{
-			oldpath = FixAndValidateFolderPath(oldpath);
-			newpath = FixAndValidateFolderPath(newpath);
-
-			LengthyOperationProgressArgs la = new LengthyOperationProgressArgs("Moving folder...", -1);
-
-			if (progress != null)
-				progress(this, la);
-			if (la.Cancel)
-				return false;
-
-			MoveFolder(oldpath, newpath, true);
-			la.Progress = 100;
-			if (progress != null)
-				progress(this, la);
-			if (la.Cancel)
-				return false;
-
-			int pg = 0;
-			la.Progress = 0;
-			la.StatusMessage = "Finding folder references...";
-			if (progress != null)
-				progress(this, la);
-			if (la.Cancel)
-				return false;
-
-            ObjCommon.ResourceList lst = GetRepositoryResources(newpath);
-
-			Hashtable items = new Hashtable();
-			foreach(object o in lst.Items) 
-			{
-                if (o.GetType() == typeof(ObjCommon.ResourceListResourceDocument))
-				{
-					//The old path does not exist, but we need to enumerate references at the old location
-                    string resource_oldpath = ((ObjCommon.ResourceListResourceDocument)o).ResourceId;
-					resource_oldpath = oldpath + resource_oldpath.Substring(newpath.Length);
-
-                    ObjCommon.ResourceReferenceList rlf = EnumerateResourceReferences(resource_oldpath);
-					foreach(string s in rlf.ResourceId)
-						if (!items.Contains(s))
-							items.Add(s, new LengthyOperationCallbackArgs.LengthyOperationItem(s));
-				}
-
-				pg++;
-				la.Progress = Math.Max(Math.Min(99,  (int)(((double)pg / (double)lst.Items.Count) * (double)100)), 0);
-
-				if (progress != null)
-					progress(this, la);
-				if (la.Cancel)
-					return false;
-			}
-
-			la.Progress = 100;
-			if (progress != null)
-				progress(this, la);
-			if (la.Cancel)
-				return false;
-
-			LengthyOperationCallbackArgs.LengthyOperationItem[] vi = new LengthyOperationCallbackArgs.LengthyOperationItem[items.Values.Count];
-			items.Values.CopyTo(vi, 0);
-			LengthyOperationCallbackArgs args = new LengthyOperationCallbackArgs(vi);
-
-			if (callback != null)
-				callback(this, args);
-
-			if (args.Cancel)
-				return false;
-
-			if (args.Index > args.Items.Length)
-				return true;
-
-			if (args.Items.Length == 0)
-				return true;
-
-			do
-			{
-				LengthyOperationCallbackArgs.LengthyOperationItem item = args.Items[args.Index];
-				item.Status = LengthyOperationCallbackArgs.LengthyOperationItem.OperationStatus.Pending;
-
-				if (callback != null)
-				{
-					callback(this, args);
-					if (args.Cancel) 
-						return false;
-				}
-
-				try
-				{
-                    System.Xml.XmlDocument d = new System.Xml.XmlDocument();
-                    using (var ms = GetResourceXmlData(item.Itempath))
-                        d.Load(ms);
-
-                    UpdateResourceReferences(d, oldpath, newpath, true);
-                    using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
-                    {
-                        d.Save(ms);
-                        ms.Position = 0;
-
-                        SetResourceXmlData(item.Itempath, ms);
-                    }
-                    item.Status = LengthyOperationCallbackArgs.LengthyOperationItem.OperationStatus.Success;
-                }
-				catch (Exception ex)
-				{
-					string s = ex.Message;
-					item.Status = LengthyOperationCallbackArgs.LengthyOperationItem.OperationStatus.Failure;
-				}
-
-				if (callback != null)
-				{
-					callback(this, args);
-					if (args.Cancel) 
-						return false;
-				}
-				
-				args.Index++;
-			} while(!args.Cancel && args.Index < args.Items.Length);
-
-			return !args.Cancel;
-		}
-
-		/// <summary>
-		/// Copies folder, and subsequently updates all resources within the folder to use the new folder path instead of the originating one.
-		/// </summary>
-		/// <param name="oldpath">The current folder path, the one copying from</param>
-		/// <param name="newpath">The new folder path, the one copying to</param>
-		/// <param name="callback">A callback delegate, being called for non progress reporting events.</param>
-		/// <param name="progress">A callback delegate, being called for progress reporting events.</param>
-		/// <returns></returns>
-		public bool CopyFolderWithReferences(string oldpath, string newpath, LengthyOperationCallBack callback, LengthyOperationProgressCallBack progress)
-		{
-			oldpath = FixAndValidateFolderPath(oldpath);
-			newpath = FixAndValidateFolderPath(newpath);
-            ObjCommon.ResourceList lst = GetRepositoryResources(oldpath);
-
-			LengthyOperationProgressArgs la = new LengthyOperationProgressArgs("Copying folder...", -1);
-			if (progress != null)
-				progress(this, la);
-			if (la.Cancel)
-				return false;
-			CopyFolder(oldpath, newpath, true);
-			la.Progress = 100;
-			if (progress != null)
-				progress(this, la);
-			if (la.Cancel)
-				return false;
-
-
-			la.Progress = 0;
-			la.StatusMessage = "Finding folder references...";
-			int pg = 0;
-			if (progress != null)
-				progress(this, la);
-			if (la.Cancel)
-				return false;
-			ArrayList items = new ArrayList();
-			Hashtable paths = new Hashtable();
-			foreach(object o in lst.Items)
-			{
-                if (o.GetType() == typeof(ObjCommon.ResourceListResourceDocument))
-				{
-                    ObjCommon.ResourceReferenceList rlf = EnumerateResourceReferences(((ObjCommon.ResourceListResourceDocument)o).ResourceId);
-					foreach(string s in rlf.ResourceId)
-						if (s.StartsWith(oldpath))
-						{
-							string dest = newpath + s.Substring(oldpath.Length);
-							if (!paths.ContainsKey(dest))
-							{
-								items.Add(new LengthyOperationCallbackArgs.LengthyOperationItem(dest));
-								paths.Add(dest, null);
-							}
-						}
-				}
-				pg++;
-				la.Progress = Math.Max(Math.Min(99,  (int)(((double)pg / (double)lst.Items.Count) * (double)100)), 0);
-
-				if (progress != null)
-					progress(this, la);
-				if (la.Cancel)
-					return false;
-			}
-			
-			la.Progress = 100;
-			if (progress != null)
-				progress(this, la);
-			if (la.Cancel)
-				return false;
-
-			LengthyOperationCallbackArgs args = new LengthyOperationCallbackArgs((LengthyOperationCallbackArgs.LengthyOperationItem[])items.ToArray(typeof(LengthyOperationCallbackArgs.LengthyOperationItem)));
-
-			if (callback != null)
-				callback(this, args);
-
-			if (args.Cancel)
-				return false;
-
-			if (args.Index > args.Items.Length)
-				return true;
-
-			if (args.Items.Length == 0)
-				return true;
-
-			do
-			{
-				LengthyOperationCallbackArgs.LengthyOperationItem item = args.Items[args.Index];
-				item.Status = LengthyOperationCallbackArgs.LengthyOperationItem.OperationStatus.Pending;
-
-				if (callback != null)
-				{
-					callback(this, args);
-					if (args.Cancel) return false;
-				}
-
-				try
-				{
-                    System.Xml.XmlDocument d = new System.Xml.XmlDocument();
-                    using (var ms = GetResourceXmlData(item.Itempath))
-                        d.Load(ms);
-
-                    UpdateResourceReferences(d, oldpath, newpath, true);
-                    using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
-                    {
-                        d.Save(ms);
-                        ms.Position = 0;
-
-                        SetResourceXmlData(item.Itempath, ms);
-                    }
-                    item.Status = LengthyOperationCallbackArgs.LengthyOperationItem.OperationStatus.Success;
-                }
-				catch (Exception ex)
-				{
-					string s = ex.Message;
-					item.Status = LengthyOperationCallbackArgs.LengthyOperationItem.OperationStatus.Failure;
-				}
-
-				if (callback != null)
-				{
-					callback(this, args);
-					if (args.Cancel) return false;
-				}
-				
-				args.Index++;
-			} while(!args.Cancel && args.Index < args.Items.Length);
-
-			return !args.Cancel;
-		}
-
-
-		/// <summary>
-		/// Validates the origin of the folder, and ensures the folder path has a trailing slash.
-		/// </summary>
-		/// <param name="folderpath">The path to validate and fix</param>
-		/// <returns>The fixed path</returns>
-		virtual protected string FixAndValidateFolderPath(string folderpath)
-		{
-			if (! folderpath.StartsWith("Library://") && ! folderpath.StartsWith("Session:" + this.SessionID + "//"))
-				throw new Exception("Invalid folder path, must be either library or session");
-
-			if (!folderpath.EndsWith("/"))
-				folderpath += "/";
-
-			return folderpath;
-		}
-
-		/// <summary>
-		/// Creates a folder on the server
-		/// </summary>
-		/// <param name="resourceID">The path of the folder to create</param>
-		virtual public void CreateFolder(string resourceID)
-		{
-			resourceID = FixAndValidateFolderPath(resourceID);
-			SetResourceXmlData(resourceID, new System.IO.MemoryStream());
-		}
-
-		/// <summary>
-		/// Returns a value indicating if a given folder exists
-		/// </summary>
-		/// <param name="folderpath">The path of the folder</param>
-		/// <returns>True if the folder exists, false otherwise. Also returns false on error.</returns>
-		virtual public bool HasFolder(string folderpath)
-		{
-			folderpath = FixAndValidateFolderPath(folderpath);
-
-			try
-			{
-                ObjCommon.ResourceList l = this.GetRepositoryResources(folderpath, 1);
-				return true;
-			}
-			catch
-			{
-				return false;
-			}
-		}
-
-		/// <summary>
-		/// Enumereates all references to a given resource
-		/// </summary>
-		/// <param name="resourceid">The resource to enumerate references for</param>
-		/// <returns>A list of resources that reference the given resourceID</returns>
-        abstract public ObjCommon.ResourceReferenceList EnumerateResourceReferences(string resourceid);
-
-		/// <summary>
-		/// Copies a resource from one location to another. This does not update any references.
-		/// </summary>
-		/// <param name="oldpath">The current resource path, the one copying from</param>
-		/// <param name="newpath">The new resource path, the one copying to</param>
-		/// <param name="overwrite">True if the copy can overwrite an existing resource, false otherwise</param>
-		abstract public void CopyResource(string oldpath, string newpath, bool overwrite);
-
-		/// <summary>
-		/// Copies a folder and all its content. This does not update any references.
-		/// </summary>
-		/// <param name="oldpath">The current folder path, the one copying from</param>
-		/// <param name="newpath">The new folder path, the one copying to</param>
-		/// <param name="overwrite">True if the copy can overwrite an existing folder, false otherwise</param>
-		abstract public void CopyFolder(string oldpath, string newpath, bool overwrite);
-
-		/// <summary>
-		/// Moves a resource from one location to another. This does not update any references.
-		/// </summary>
-		/// <param name="oldpath">The current resource path, the one moving from</param>
-		/// <param name="newpath">The new resource path, the one moving to</param>
-		/// <param name="overwrite">True if the move can overwrite an existing resource, false otherwise</param>
-		abstract public void MoveResource(string oldpath, string newpath, bool overwrite);
-
-		/// <summary>
-		/// Moves a folder and its content from one location to another. This does not update any references.
-		/// </summary>
-		/// <param name="oldpath">The current folder path, the one moving from</param>
-		/// <param name="newpath">The new folder path, the one moving to</param>
-		/// <param name="overwrite">True if the move can overwrite an existing folder, false otherwise</param>
-		abstract public void MoveFolder(string oldpath, string newpath, bool overwrite);
-
-
-		/// <summary>
-		/// Returns data from a resource as a memorystream
-		/// </summary>
-		/// <param name="resourceID">The id of the resource to fetch data from</param>
-		/// <param name="dataname">The name of the associated data item</param>
-		/// <returns>A stream containing the references resource data</returns>
-		abstract public System.IO.MemoryStream GetResourceData(string resourceID, string dataname);
-
-        /// <summary>
-        /// Uploads data to a resource
-        /// </summary>
-        /// <param name="resourceid">The id of the resource to update</param>
-        /// <param name="dataname">The name of the data to update or create</param>
-        /// <param name="datatype">The type of data</param>
-        /// <param name="stream">A stream containing the new content of the resource data</param>
-        virtual public void SetResourceData(string resourceid, string dataname, ObjCommon.ResourceDataType datatype, System.IO.Stream stream)
-        {
-            SetResourceData(resourceid, dataname, datatype, stream, null);
-        }
-        
-        /// <summary>
-		/// Uploads data to a resource
-		/// </summary>
-		/// <param name="resourceid">The id of the resource to update</param>
-		/// <param name="dataname">The name of the data to update or create</param>
-		/// <param name="datatype">The type of data</param>
-		/// <param name="stream">A stream containing the new content of the resource data</param>
-        abstract public void SetResourceData(string resourceid, string dataname, ObjCommon.ResourceDataType datatype, System.IO.Stream stream, Utility.StreamCopyProgressDelegate callback);
-
-        public void SaveResource(OSGeo.MapGuide.MaestroAPI.Resource.IResource resource)
-        {
-            SaveResourceAs(resource, resource.ResourceID);   
-        }
-
-        public void SaveResourceAs(OSGeo.MapGuide.MaestroAPI.Resource.IResource resource, string resourceid)
-        {
-            var stream = resource.SerializeToStream();
-            SetResourceXmlData(resourceid, stream);
-        }
-		
-        /*
-		/// <summary>
-		/// Saves an object into the repository
-		/// </summary>
-		/// <param name="resource">The object to save</param>
-		/// <param name="resourceid">The resourceId to save the object as</param>
-		public void SaveResourceAs(object resource, string resourceid)
-		{
-			//TODO: Extract ResourceType from resource.GetType(), and validate
-			//ValidateResourceID(resourceid, ResourceTypes.MapDefinition);
-			System.IO.MemoryStream ms = SerializeObject(resource);
-			SetResourceXmlData(resourceid, ms);
-		}
-         */
-
-		/// <summary>
-		/// Gets a list of installed feature providers
-		/// </summary>
-        abstract public ObjCommon.FeatureProviderRegistryFeatureProvider[] FeatureProviders { get; }
-
-		/// <summary>
-		/// Gets or sets a flag that indicates if the Xml resources are validated before leaving and entering the server.
-		/// </summary>
-		public bool DisableValidation 
-		{ 
-			get {return m_disableValidation; } 
-			set { m_disableValidation = value; }
-		}
-
-		/*/// <summary>
-		/// Gets the name of a resource, given its identifier
-		/// </summary>
-		/// <param name="identifier">The identifier to look for</param>
-		/// <param name="includePath">True if path information should be include, false otherwise</param>
-		/// <returns>The name of the resource</returns>
-		public string GetResourceName(string identifier, bool includePath)
-		{
-			int begin;
-			if (includePath)
-			{
-				if (identifier.IndexOf("//") < 0)
-					throw new Exception("Not valid identifier");
-
-				begin = identifier.IndexOf("//") + 2;
-			}
-			else
-			{
-				if (identifier.IndexOf("/") < 0)
-					throw new Exception("Not valid identifier");
-
-				begin = identifier.LastIndexOf("/") + 1;
-			}
-
-			int end = identifier.LastIndexOf(".");
-			if (end < begin)
-				throw new Exception("Not valid identifier");
-			return identifier.Substring(begin, end - begin);
-		}*/
-
-		/// <summary>
-		/// Gets or sets a value indicating if the session should automatically be restarted if it expires
-		/// </summary>
-		virtual public bool AutoRestartSession 
-		{ 
-			get { return m_autoRestartSession; }
-			set { m_autoRestartSession = value; }
-		}
-
-
-        abstract public Version SiteVersion { get; }
-
-		/// <summary>
-		/// Determines if an exception is a "Session Expired" exception.
-		/// </summary>
-		/// <param name="ex">The exception to evaluate</param>
-		/// <returns>True if the exception is a session expired exception</returns>
-		abstract public bool IsSessionExpiredException(Exception ex);
-
-		/// <summary>
-		/// Returns the spatial info for a given featuresource
-		/// </summary>
-		/// <param name="resourceID">The ID of the resource to query</param>
-		/// <param name="activeOnly">Query only active items</param>
-		/// <returns>A list of spatial contexts</returns>
-		abstract public ObjCommon.FdoSpatialContextList GetSpatialContextInfo(string resourceID, bool activeOnly);
-
-		/// <summary>
-		/// Gets the names of the identity properties from a feature
-		/// </summary>
-		/// <param name="resourceID">The resourceID for the FeatureSource</param>
-		/// <param name="classname">The classname of the feature, including schema</param>
-		/// <returns>A string array with the found identities</returns>
-		abstract public string[] GetIdentityProperties(string resourceID, string classname);
-
-		/// <summary>
-		/// Restarts the server session, and creates a new session ID
-		/// </summary>
-		public void RestartSession()
-		{
-			RestartSession(true);
-		}
-
-		/// <summary>
-		/// Restarts the server session, and creates a new session ID
-		/// </summary>
-		/// <param name="throwException">If set to true, the call throws an exception if the call failed</param>
-		/// <returns>True if the creation succeed, false otherwise</returns>
-		abstract public bool RestartSession(bool throwException);
-
-		/// <summary>
-		/// Sets the selection of a map
-		/// </summary>
-		/// <param name="runtimeMap">The resourceID of the runtime map</param>
-		/// <param name="selectionXml">The selection xml</param>
-		abstract public void SetSelectionXml(string runtimeMap, string selectionXml);
-
-		/// <summary>
-		/// Gets the selection from a map
-		/// </summary>
-		/// <param name="runtimeMap">The resourceID of the runtime map</param>
-		/// <returns>The selection xml</returns>
-		abstract public string GetSelectionXml(string runtimeMap);
-
-		/// <summary>
-		/// Enumerates all unmanaged folders, meaning alias'ed folders
-		/// </summary>
-		/// <param name="type">The type of data to return</param>
-		/// <param name="filter">A filter applied to the items</param>
-		/// <param name="recursive">True if the list should contains recursive results</param>
-		/// <param name="startpath">The path to retrieve the data from</param>
-		/// <returns>A list of unmanaged data</returns>
-		abstract public ObjCommon.UnmanagedDataList EnumerateUnmanagedData(string startpath, string filter, bool recursive, UnmanagedDataTypes type);
-
-        abstract public void Dispose();
-
-		/// <summary>
-		/// Selects features from a runtime map, returning a selection Xml.
-		/// </summary>
-		/// <param name="runtimemap">The map to query. NOT a resourceID, only the map name!</param>
-		/// <param name="wkt">The WKT of the geometry to query with (always uses intersection)</param>
-		/// <param name="persist">True if the selection should be saved in the runtime map, false otherwise.</param>
-		/// <returns>The selection Xml, or an empty string if there were no data.</returns>
-		public string QueryMapFeatures(string runtimemap, string wkt, bool persist)
-		{
-			return QueryMapFeatures(runtimemap, wkt, persist, QueryMapFeaturesLayerAttributes.Default, false);
-		}
-
-		/// <summary>
-		/// Selects features from a runtime map, returning a selection Xml.
-		/// </summary>
-		/// <param name="runtimemap">The map to query. NOT a resourceID, only the map name!</param>
-		/// <param name="wkt">The WKT of the geometry to query with (always uses intersection)</param>
-		/// <param name="persist">True if the selection should be saved in the runtime map, false otherwise.</param>
-		/// <param name="attributes">The type of layer to include in the query</param>
-		/// <param name="raw">True if the result should contain the tooltip and link info</param>
-		/// <returns>The selection Xml, or an empty string if there were no data.</returns>
-        abstract public string QueryMapFeatures(string runtimemap, string wkt, bool persist, QueryMapFeaturesLayerAttributes attributes, bool raw);
-
-        /// <summary>
-        /// Renders a minature bitmap of the layers style
-        /// </summary>
-        /// <param name="scale">The scale for the bitmap to match</param>
-        /// <param name="layerdefinition">The layer the image should represent</param>
-        /// <param name="themeIndex">If the layer is themed, this gives the theme index, otherwise set to 0</param>
-        /// <param name="type">The geometry type, 1 for point, 2 for line, 3 for area, 4 for composite</param>
-        /// <returns>The minature bitmap</returns>
-        abstract public System.Drawing.Image GetLegendImage(double scale, string layerdefinition, int themeIndex, int type);
-
-        /// <summary>
-        /// Upload a MapGuide Package file to the server
-        /// </summary>
-        /// <param name="filename">Name of the file to upload</param>
-        /// <param name="callback">A callback argument used to display progress. May be null.</param>
-        abstract public void UploadPackage(string filename, Utility.StreamCopyProgressDelegate callback);
-
-        abstract public void UpdateRepository(string resourceId, ObjCommon.ResourceFolderHeaderType header);
-        abstract public object GetFolderOrResourceHeader(string resourceId);
-        abstract public void SetResourceXmlData(string resourceId, System.IO.Stream content, System.IO.Stream header);
-
-        public virtual ObjCommon.ResourceDocumentHeaderType GetResourceHeader(string resourceID)
-        {
-            return (ObjCommon.ResourceDocumentHeaderType)this.GetFolderOrResourceHeader(resourceID);
-        }
-
-        public virtual ObjCommon.ResourceFolderHeaderType GetFolderHeader(string resourceID)
-        {
-            if (resourceID.EndsWith("//"))
-            {
-                ObjCommon.ResourceList lst = this.GetRepositoryResources(resourceID, 0);
-                ObjCommon.ResourceListResourceFolder fld = lst.Items[0] as ObjCommon.ResourceListResourceFolder;
-                return fld.ResourceFolderHeader;
-            }
-            else
-                return (ObjCommon.ResourceFolderHeaderType)this.GetFolderOrResourceHeader(resourceID);
-        }
-
-        public virtual void SetFolderHeader(string resourceID, ObjCommon.ResourceFolderHeaderType header)
-        {
-            SetFolderOrResourceHeader(resourceID, header);
-        }
-
-        public virtual void SetResourceHeader(string resourceID, ObjCommon.ResourceDocumentHeaderType header)
-        {
-            SetFolderOrResourceHeader(resourceID, header);
-        }
-
-        public virtual void SetFolderOrResourceHeader(string resourceID, object header)
-        {
-            if (header == null)
-                throw new ArgumentNullException("header");
-
-            ObjCommon.ResourceSecurityType sec;
-            if (header as ObjCommon.ResourceFolderHeaderType != null)
-                sec = (header as ObjCommon.ResourceFolderHeaderType).Security;
-            else if (header as ObjCommon.ResourceDocumentHeaderType != null)
-                sec = (header as ObjCommon.ResourceDocumentHeaderType).Security;
-            else
-                throw new ArgumentException("Header must be either ResourceFolderHeaderType or ResourceDocumentHeaderType", "header");
-
-            if (sec.Users != null && sec.Users.User != null && sec.Users.User.Count == 0)
-                sec.Users = null;
-
-            if (sec.Groups != null && sec.Groups.Group != null && sec.Groups.Group.Count == 0)
-                sec.Groups = null;
-
-            if (resourceID.EndsWith("//"))
-            {
-                if (header as ObjCommon.ResourceFolderHeaderType == null)
-                    throw new Exception("The resourceId: " + resourceID + " must be updated with a folder header");
-                UpdateRepository(resourceID, header as ObjCommon.ResourceFolderHeaderType);
-            }
-            else
-                this.SetResourceXmlData(resourceID, null, this.SerializeObject(header));
-        }
-         
-        /// <summary>
-        /// Gets a list of all users on the server
-        /// </summary>
-        /// <returns>The list of users</returns>
-        public virtual ObjCommon.UserList EnumerateUsers()
-        {
-            return this.EnumerateUsers(null);
-        }
-
-        /// <summary>
-        /// Gets a list of users in a group
-        /// </summary>
-        /// <param name="group">The group to retrieve the users from</param>
-        /// <returns>The list of users</returns>
-        abstract public ObjCommon.UserList EnumerateUsers(string group);
-
-        /// <summary>
-        /// Gets a list of all groups on the server
-        /// </summary>
-        /// <returns>The list of groups</returns>
-        abstract public ObjCommon.GroupList EnumerateGroups();
-
-        /// <summary>
-        /// Creates a runtime map on the server. 
-        /// The map name will be the name of the resource, without path information.
-        /// This is equivalent to the way the AJAX viewer creates the runtime map.
-        /// </summary>
-        /// <param name="resourceID">The mapDefinition resource id</param>
-        public virtual void CreateRuntimeMap(string resourceID)
-        {
-            ResourceIdentifier.Validate(resourceID, ResourceTypes.MapDefinition);
-            ResourceIdentifier ri = new ResourceIdentifier(resourceID);
-            ri.Path = ri.Name;
-            ri.Extension = EnumHelper.ResourceName(ResourceTypes.RuntimeMap);
-            CreateRuntimeMap(ri, resourceID);
-        }
-
-        /// <summary>
-        /// Creates a runtime map on the server
-        /// </summary>
-        /// <param name="resourceID">The target resource id for the runtime map</param>
-        /// <param name="mapdefinition">The mapdefinition to base the map on</param>
-        abstract public void CreateRuntimeMap(string resourceID, string mapdefinition);
-
-        abstract public FeatureSourceDescription DescribeFeatureSource(string resourceID);
-        abstract public FeatureSourceDescription DescribeFeatureSource(string resourceID, string schema);
-
-
-        protected Dictionary<string, FeatureSourceDescription> m_featureSchemaCache = new Dictionary<string, FeatureSourceDescription>();
-        protected Dictionary<string, ClassDefinition> m_featureSchemaNameCache = new Dictionary<string, ClassDefinition>();
-
-        public virtual FeatureSourceDescription GetFeatureSourceDescription(string resourceID)
-        {
-            if (!m_featureSchemaCache.ContainsKey(resourceID))
-            {
-                try
-                {
-                    m_featureSchemaCache[resourceID] = this.DescribeFeatureSource(resourceID);
-                    foreach (ClassDefinition scm in m_featureSchemaCache[resourceID].Classes)
-                        m_featureSchemaNameCache[resourceID + "!" + scm.QualifiedNameDecoded] = scm;
-                }
-                catch
-                {
-                    m_featureSchemaCache[resourceID] = null;
-                }
-            }
-
-            return m_featureSchemaCache[resourceID];
-
-        }
-
-
-        public virtual ClassDefinition GetFeatureSourceSchema(string resourceID, string schema)
-        {
-            /*if (schema != null && schema.IndexOf(":") > 0)
-                schema = schema.Substring(0, schema.IndexOf(":"));*/
-
-            //If it is missing, just get the entire schema, and hope that we will need the others
-            //Some providers actually return the entire list even when asked for a particular schema
-            if (!m_featureSchemaCache.ContainsKey(resourceID + "!" + schema))
-                GetFeatureSourceDescription(resourceID);
-            if (!m_featureSchemaNameCache.ContainsKey(resourceID + "!" + schema))
-                m_featureSchemaNameCache[resourceID + "!" + schema] = null;
-
-            return m_featureSchemaNameCache[resourceID + "!" + schema];
-        }
-
-        public virtual void ResetFeatureSourceSchemaCache()
-        {
-            m_featureSchemaCache = new Dictionary<string, FeatureSourceDescription>();
-            m_featureSchemaNameCache = new Dictionary<string, ClassDefinition>();
-        }
-
-
-        public virtual System.IO.Stream RenderRuntimeMap(string resourceId, double x, double y, double scale, int width, int height, int dpi)
-        {
-            return this.RenderRuntimeMap(resourceId, x, y, scale, width, height, dpi, "PNG", false);
-        }
-
-        public virtual System.IO.Stream RenderRuntimeMap(string resourceId, double x1, double y1, double x2, double y2, int width, int height, int dpi)
-        {
-            return this.RenderRuntimeMap(resourceId, x1, y1, x2, y2, width, height, dpi, "PNG", false);
-        }
-
-        public virtual System.IO.Stream RenderRuntimeMap(string resourceId, double x, double y, double scale, int width, int height, int dpi, string format)
-        {
-            return this.RenderRuntimeMap(resourceId, x, y, scale, width, height, dpi, format, false);
-        }
-
-        public virtual System.IO.Stream RenderRuntimeMap(string resourceId, double x1, double y1, double x2, double y2, int width, int height, int dpi, string format)
-        {
-            return this.RenderRuntimeMap(resourceId, x1, y1, x2, y2, width, height, dpi, format, false);
-        }
-
-        public abstract System.IO.Stream RenderRuntimeMap(string resourceId, double x, double y, double scale, int width, int height, int dpi, string format, bool clip);
-        public abstract System.IO.Stream RenderRuntimeMap(string resourceId, double x1, double y1, double x2, double y2, int width, int height, int dpi, string format, bool clip);
-
-        public abstract System.IO.Stream GetTile(string mapdefinition, string baselayergroup, int col, int row, int scaleindex, string format);
-
-        /// <summary>
-        /// Performs an aggregate query on all columns in the datasource
-        /// </summary>
-        /// <param name="resourceID">The resourceID of the FeatureSource to query</param>
-        /// <param name="schema">The schema name</param>
-        /// <param name="filter">The filter to apply to the </param>
-        /// <returns>A FeatureSetReader with the aggregated values</returns>
-        public virtual FeatureSetReader AggregateQueryFeatureSource(string resourceID, string schema, string filter)
-        {
-            return AggregateQueryFeatureSource(resourceID, schema, filter, (string[])null);
-        }
-
-        /// <summary>
-        /// Performs an aggregate query on columns in the datasource
-        /// </summary>
-        /// <param name="resourceID">The resourceID of the FeatureSource to query</param>
-        /// <param name="schema">The schema name</param>
-        /// <param name="filter">The filter to apply to the </param>
-        /// <param name="columns">The columns to aggregate</param>
-        /// <returns>A FeatureSetReader with the aggregated values</returns>
-        public abstract FeatureSetReader AggregateQueryFeatureSource(string resourceID, string schema, string filter, string[] columns);
-
-        /// <summary>
-        /// Performs an aggregate query on computed resources
-        /// </summary>
-        /// <param name="resourceID">The resourceID of the FeatureSource to query</param>
-        /// <param name="schema">The schema name</param>
-        /// <param name="filter">The filter to apply to the </param>
-        /// <param name="aggregateFunctions">A collection of column name and aggregate functions</param>
-        /// <returns>A FeatureSetReader with the aggregated values</returns>
-        public abstract FeatureSetReader AggregateQueryFeatureSource(string resourceID, string schema, string filter, System.Collections.Specialized.NameValueCollection aggregateFunctions);
-
-        public virtual OSGeo.MapGuide.ObjectModels.Common.IEnvelope GetSpatialExtent(string resourceID, string schema, string geometry)
-        {
-            return GetSpatialExtent(resourceID, schema, geometry, null, false);
-        }
-
-        public virtual OSGeo.MapGuide.ObjectModels.Common.IEnvelope GetSpatialExtent(string resourceID, string schema, string geometry, string filter)
-        {
-            return GetSpatialExtent(resourceID, schema, geometry, filter, false);
-        }
-
-        public virtual OSGeo.MapGuide.ObjectModels.Common.IEnvelope GetSpatialExtent(string resourceID, string schema, string geometry, bool allowFallbackToContextInformation)
-        {
-            return GetSpatialExtent(resourceID, schema, geometry, null, allowFallbackToContextInformation);
-        }
-
-        protected virtual OSGeo.MapGuide.ObjectModels.Common.IEnvelope GetSpatialExtent(string resourceID, string schema, string geometry, string filter, bool allowFallbackToContextInformation)
-        {
-            Check.NotEmpty(schema, "schema");
-            Check.NotEmpty(geometry, "geometry");
-            try
-            {
-                System.Collections.Specialized.NameValueCollection fun = new System.Collections.Specialized.NameValueCollection();
-                fun.Add("extent", "SpatialExtents(\"" + geometry + "\")");
-                using (FeatureSetReader fsr = AggregateQueryFeatureSource(resourceID, schema, filter, fun))
-                {
-                    if (fsr.Read())
-                    {
-                        Topology.Geometries.IGeometry geom = fsr.Row["extent"] as Topology.Geometries.IGeometry;
-                        if (geom == null)
-                        {
-                            throw new Exception("No data found in resource: " + resourceID);
-                        }
-                        else
-                        {
-                            var env = geom.EnvelopeInternal;
-                            return OSGeo.MapGuide.MaestroAPI.ObjectModels.ObjectFactory.CreateEnvelope(
-                                env.MinX,
-                                env.MinY,
-                                env.MaxX,
-                                env.MaxY);
-                        }
-                    }
-                    else
-                        throw new Exception("No data found in resource: " + resourceID);
-                }
-            }
-            catch
-            {
-                if (allowFallbackToContextInformation)
-                    try
-                    {
-                        ObjCommon.FdoSpatialContextList lst = this.GetSpatialContextInfo(resourceID, false);
-                        if (lst.SpatialContext != null && lst.SpatialContext.Count >= 1)
-                        {
-                            return OSGeo.MapGuide.MaestroAPI.ObjectModels.ObjectFactory.CreateEnvelope(
-                                double.Parse(lst.SpatialContext[0].Extent.LowerLeftCoordinate.X, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture),
-                                double.Parse(lst.SpatialContext[0].Extent.UpperRightCoordinate.X, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture),
-                                double.Parse(lst.SpatialContext[0].Extent.LowerLeftCoordinate.Y, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture),
-                                double.Parse(lst.SpatialContext[0].Extent.UpperRightCoordinate.Y, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture)
-                            );
-                        }
-                    }
-                    catch
-                    {
-                    }
-
-                throw;
-            }
-        }
-
-        public abstract string[] GetCustomPropertyNames();
-
-        public abstract Type GetCustomPropertyType(string name);
-
-        public abstract void SetCustomProperty(string name, object value);
-
-        public abstract object GetCustomProperty(string name);
-
-        public virtual ICommand CreateCommand(int cmdType)
-        {
-            CommandType ct = (CommandType)cmdType;
-            switch (ct)
-            { 
-                default:
-                    return null;
-            }
-        }
-
-        public virtual string[] ExecuteLoadProcedure(ILoadProcedure loadProc, OSGeo.MapGuide.MaestroAPI.LengthyOperationProgressCallBack callback, bool ignoreUnsupported)
-        {
-            var cmd = new ExecuteLoadProcedure(GetInterface());
-            cmd.IgnoreUnsupportedFeatures = ignoreUnsupported;
-            return cmd.Execute(loadProc, callback);
-        }
-        
-        public virtual string[] ExecuteLoadProcedure(string resourceID, OSGeo.MapGuide.MaestroAPI.LengthyOperationProgressCallBack callback, bool ignoreUnsupported)
-        {
-            var cmd = new ExecuteLoadProcedure(GetInterface());
-            cmd.IgnoreUnsupportedFeatures = ignoreUnsupported;
-            return cmd.Execute(resourceID, callback);
-        }
-
-        /// <summary>
-        /// Raised when a outbound request has been dispatched
-        /// </summary>
-        public event RequestEventHandler RequestDispatched;
-
-        protected void OnRequestDispatched(string data)
-        {
-            var handler = this.RequestDispatched;
-            if (handler != null)
-                handler(this, new RequestEventArgs(data));
-        }
-
-        public abstract OSGeo.MapGuide.ObjectModels.Common.DataStoreList EnumerateDataStores(string providerName, string partialConnString);
-
-        public abstract string[] GetSchemas(string resourceId);
-
-        public abstract string[] GetClassNames(string resourceId, string schemaName);
-
-        public abstract ObjCommon.SiteInformation GetSiteInfo();
-
-        public abstract IServerConnection Clone();
-    }
-}

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IFeatureService.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IFeatureService.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IFeatureService.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -21,7 +21,6 @@
 using System.Collections.Generic;
 using System.Text;
 using System.Collections.Specialized;
-
 using ObjCommon = OSGeo.MapGuide.ObjectModels.Common;
 
 namespace OSGeo.MapGuide.MaestroAPI.Services
@@ -32,13 +31,30 @@
     public interface IFeatureService : IService
     {
         /// <summary>
-        /// Placeholder for actual method call
+        /// Gets the capabilities of the specified provider
         /// </summary>
-        void DescribeSchema();
+        /// <param name="provider"></param>
+        /// <returns></returns>
+        OSGeo.MapGuide.ObjectModels.Capabilities.FdoProviderCapabilities GetProviderCapabilities(string provider);
 
-        OSGeo.MapGuide.ObjectModels.Capabilities.FdoProviderCapabilities GetProviderCapabilities(string provider);
+        /// <summary>
+        /// Gets an array of all registered providers
+        /// </summary>
         ObjCommon.FeatureProviderRegistryFeatureProvider[] FeatureProviders { get; }
+
+        /// <summary>
+        /// Tests the specified connection settings
+        /// </summary>
+        /// <param name="providername"></param>
+        /// <param name="parameters"></param>
+        /// <returns></returns>
         string TestConnection(string providername, NameValueCollection parameters);
+
+        /// <summary>
+        /// Tests the connection settings of the specified feature source
+        /// </summary>
+        /// <param name="featureSourceId"></param>
+        /// <returns></returns>
         string TestConnection(string featureSourceId);
 
         /// <summary>
@@ -72,26 +88,131 @@
         /// <returns></returns>
         FeatureSetReader ExecuteSqlQuery(string featureSourceID, string sql);
 
+        /// <summary>
+        /// Executes a feature query on the specified feature source
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <param name="schema"></param>
+        /// <param name="query"></param>
+        /// <returns></returns>
         FeatureSetReader QueryFeatureSource(string resourceID, string schema, string query);
+
+        /// <summary>
+        /// Executes a feature query on the specified feature source
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <param name="schema"></param>
+        /// <returns></returns>
         FeatureSetReader QueryFeatureSource(string resourceID, string schema);
+
+        /// <summary>
+        /// Executes a feature query on the specified feature source
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <param name="schema"></param>
+        /// <param name="query"></param>
+        /// <param name="columns"></param>
+        /// <returns></returns>
         FeatureSetReader QueryFeatureSource(string resourceID, string schema, string query, string[] columns);
+
+        /// <summary>
+        /// Executes a feature query on the specified feature source
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <param name="schema"></param>
+        /// <param name="query"></param>
+        /// <param name="columns"></param>
+        /// <param name="computedProperties"></param>
+        /// <returns></returns>
         FeatureSetReader QueryFeatureSource(string resourceID, string schema, string query, string[] columns, NameValueCollection computedProperties);
 
+        /// <summary>
+        /// Executes an aggregate query on the specified feature source
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <param name="schema"></param>
+        /// <param name="filter"></param>
+        /// <returns></returns>
         FeatureSetReader AggregateQueryFeatureSource(string resourceID, string schema, string filter);
+
+        /// <summary>
+        /// Executes an aggregate query on the specified feature source
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <param name="schema"></param>
+        /// <param name="filter"></param>
+        /// <param name="columns"></param>
+        /// <returns></returns>
         FeatureSetReader AggregateQueryFeatureSource(string resourceID, string schema, string filter, string[] columns);
+
+        /// <summary>
+        /// Executes an aggregate query on the specified feature source
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <param name="schema"></param>
+        /// <param name="filter"></param>
+        /// <param name="aggregateFunctions"></param>
+        /// <returns></returns>
         FeatureSetReader AggregateQueryFeatureSource(string resourceID, string schema, string filter, NameValueCollection aggregateFunctions);
 
+        /// <summary>
+        /// Gets the geometric extent of the specified feature source
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <param name="schema"></param>
+        /// <param name="geometry"></param>
+        /// <returns></returns>
         ObjCommon.IEnvelope GetSpatialExtent(string resourceID, string schema, string geometry);
+
+        /// <summary>
+        /// Gets the geometric extent of the specified feature source
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <param name="schema"></param>
+        /// <param name="geometry"></param>
+        /// <param name="filter"></param>
+        /// <returns></returns>
         ObjCommon.IEnvelope GetSpatialExtent(string resourceID, string schema, string geometry, string filter);
+
+        /// <summary>
+        /// Gets the geometric extent of the specified feature source
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <param name="schema"></param>
+        /// <param name="geometry"></param>
+        /// <param name="allowFallbackToContextInformation"></param>
+        /// <returns></returns>
         ObjCommon.IEnvelope GetSpatialExtent(string resourceID, string schema, string geometry, bool allowFallbackToContextInformation);
 
+        /// <summary>
+        /// Describes the specified feature source
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <returns></returns>
         FeatureSourceDescription DescribeFeatureSource(string resourceID);
+
+        /// <summary>
+        /// Describes the specified feature source
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <param name="schema"></param>
+        /// <returns></returns>
         FeatureSourceDescription DescribeFeatureSource(string resourceID, string schema);
 
-        ClassDefinition GetFeatureSourceSchema(string resourceID, string schema);
-        FeatureSourceDescription GetFeatureSourceDescription(string resourceID);
-        void ResetFeatureSourceSchemaCache();
+        /// <summary>
+        /// Gets the specified class definition
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <param name="schema"></param>
+        /// <returns></returns>
+        ClassDefinition GetClassDefinition(string resourceID, string schema);
 
+        /// <summary>
+        /// Get the spatial context information for the specified feature source
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <param name="activeOnly"></param>
+        /// <returns></returns>
         ObjCommon.FdoSpatialContextList GetSpatialContextInfo(string resourceID, bool activeOnly);
 
         /// <summary>
@@ -110,8 +231,19 @@
         /// <returns></returns>
         OSGeo.MapGuide.ObjectModels.Common.DataStoreList EnumerateDataStores(string providerName, string partialConnString);
 
+        /// <summary>
+        /// Gets an array of schema names from the specified feature source
+        /// </summary>
+        /// <param name="resourceId"></param>
+        /// <returns></returns>
         string[] GetSchemas(string resourceId);
 
+        /// <summary>
+        /// Gets an array of feature class names from the specified feature source
+        /// </summary>
+        /// <param name="resourceId"></param>
+        /// <param name="schemaName"></param>
+        /// <returns></returns>
         string[] GetClassNames(string resourceId, string schemaName);
     }
 }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IFusionService.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IFusionService.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IFusionService.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -29,6 +29,10 @@
     /// </summary>
     public interface IFusionService : IService
     {
+        /// <summary>
+        /// Gets the application templates.
+        /// </summary>
+        /// <returns></returns>
         ApplicationDefinitionTemplateInfoSet GetApplicationTemplates();
 
         /// <summary>

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IMappingService.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IMappingService.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IMappingService.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -50,7 +50,7 @@
         /// </summary>
         /// <param name="resourceID">The target resource id for the runtime map</param>
         /// <param name="map">The mapdefinition to base the map on</param>
-        void CreateRuntimeMap(string resourceID, MapDefinition map);
+        void CreateRuntimeMap(string resourceID, IMapDefinition map);
 
         /// <summary>
         /// Creates a runtime map on the server
@@ -66,15 +66,95 @@
         /// <param name="map">The runtime map to update with</param>
         void SaveRuntimeMap(string resourceID, RuntimeMapBase map);
 
+        /// <summary>
+        /// Gets the runtime map.
+        /// </summary>
+        /// <param name="resourceID">The resource ID.</param>
+        /// <returns></returns>
         RuntimeMapBase GetRuntimeMap(string resourceID);
 
+        /// <summary>
+        /// Renders the runtime map.
+        /// </summary>
+        /// <param name="resourceId">The resource id.</param>
+        /// <param name="x">The x.</param>
+        /// <param name="y">The y.</param>
+        /// <param name="scale">The scale.</param>
+        /// <param name="width">The width.</param>
+        /// <param name="height">The height.</param>
+        /// <param name="dpi">The dpi.</param>
+        /// <returns></returns>
         System.IO.Stream RenderRuntimeMap(string resourceId, double x, double y, double scale, int width, int height, int dpi);
+        /// <summary>
+        /// Renders the runtime map.
+        /// </summary>
+        /// <param name="resourceId">The resource id.</param>
+        /// <param name="x1">The x1.</param>
+        /// <param name="y1">The y1.</param>
+        /// <param name="x2">The x2.</param>
+        /// <param name="y2">The y2.</param>
+        /// <param name="width">The width.</param>
+        /// <param name="height">The height.</param>
+        /// <param name="dpi">The dpi.</param>
+        /// <returns></returns>
         System.IO.Stream RenderRuntimeMap(string resourceId, double x1, double y1, double x2, double y2, int width, int height, int dpi);
 
+        /// <summary>
+        /// Renders the runtime map.
+        /// </summary>
+        /// <param name="resourceId">The resource id.</param>
+        /// <param name="x">The x.</param>
+        /// <param name="y">The y.</param>
+        /// <param name="scale">The scale.</param>
+        /// <param name="width">The width.</param>
+        /// <param name="height">The height.</param>
+        /// <param name="dpi">The dpi.</param>
+        /// <param name="format">The format.</param>
+        /// <returns></returns>
         System.IO.Stream RenderRuntimeMap(string resourceId, double x, double y, double scale, int width, int height, int dpi, string format);
+        /// <summary>
+        /// Renders the runtime map.
+        /// </summary>
+        /// <param name="resourceId">The resource id.</param>
+        /// <param name="x1">The x1.</param>
+        /// <param name="y1">The y1.</param>
+        /// <param name="x2">The x2.</param>
+        /// <param name="y2">The y2.</param>
+        /// <param name="width">The width.</param>
+        /// <param name="height">The height.</param>
+        /// <param name="dpi">The dpi.</param>
+        /// <param name="format">The format.</param>
+        /// <returns></returns>
         System.IO.Stream RenderRuntimeMap(string resourceId, double x1, double y1, double x2, double y2, int width, int height, int dpi, string format);
 
+        /// <summary>
+        /// Renders the runtime map.
+        /// </summary>
+        /// <param name="resourceId">The resource id.</param>
+        /// <param name="x">The x.</param>
+        /// <param name="y">The y.</param>
+        /// <param name="scale">The scale.</param>
+        /// <param name="width">The width.</param>
+        /// <param name="height">The height.</param>
+        /// <param name="dpi">The dpi.</param>
+        /// <param name="format">The format.</param>
+        /// <param name="clip">if set to <c>true</c> [clip].</param>
+        /// <returns></returns>
         System.IO.Stream RenderRuntimeMap(string resourceId, double x, double y, double scale, int width, int height, int dpi, string format, bool clip);
+        /// <summary>
+        /// Renders the runtime map.
+        /// </summary>
+        /// <param name="resourceId">The resource id.</param>
+        /// <param name="x1">The x1.</param>
+        /// <param name="y1">The y1.</param>
+        /// <param name="x2">The x2.</param>
+        /// <param name="y2">The y2.</param>
+        /// <param name="width">The width.</param>
+        /// <param name="height">The height.</param>
+        /// <param name="dpi">The dpi.</param>
+        /// <param name="format">The format.</param>
+        /// <param name="clip">if set to <c>true</c> [clip].</param>
+        /// <returns></returns>
         System.IO.Stream RenderRuntimeMap(string resourceId, double x1, double y1, double x2, double y2, int width, int height, int dpi, string format, bool clip);
 
         /// <summary>

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IResourceService.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IResourceService.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IResourceService.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -32,51 +32,229 @@
     /// </summary>
     public interface IResourceService : IService
     {
-        ObjCommon.ResourceList RepositoryResources { get; }
+        /// <summary>
+        /// Gets a listing of resources in this repository. This performs a full listing
+        /// </summary>
+        /// <returns></returns>
         ObjCommon.ResourceList GetRepositoryResources();
+
+        /// <summary>
+        /// Gets a listing of resources in this repository
+        /// </summary>
+        /// <param name="depth"></param>
+        /// <returns></returns>
         ObjCommon.ResourceList GetRepositoryResources(int depth);
+
+        /// <summary>
+        /// Gets a listing of resources in this repository
+        /// </summary>
+        /// <param name="startingpoint"></param>
+        /// <param name="depth"></param>
+        /// <returns></returns>
         ObjCommon.ResourceList GetRepositoryResources(string startingpoint, int depth);
+
+        /// <summary>
+        /// Gets a listing of resources in this repository
+        /// </summary>
+        /// <param name="startingpoint"></param>
+        /// <returns></returns>
         ObjCommon.ResourceList GetRepositoryResources(string startingpoint);
+
+        /// <summary>
+        /// Gets a listing of resources in this repository
+        /// </summary>
+        /// <param name="startingpoint"></param>
+        /// <param name="type"></param>
+        /// <returns></returns>
         ObjCommon.ResourceList GetRepositoryResources(string startingpoint, string type);
+
+        /// <summary>
+        /// Gets a listing of resources in this repository
+        /// </summary>
+        /// <param name="startingpoint"></param>
+        /// <param name="type"></param>
+        /// <param name="depth"></param>
+        /// <returns></returns>
         ObjCommon.ResourceList GetRepositoryResources(string startingpoint, string type, int depth);
+
+        /// <summary>
+        /// Gets a listing of resources in this repository
+        /// </summary>
+        /// <param name="startingpoint"></param>
+        /// <param name="type"></param>
+        /// <param name="depth"></param>
+        /// <param name="computeChildren"></param>
+        /// <returns></returns>
         ObjCommon.ResourceList GetRepositoryResources(string startingpoint, string type, int depth, bool computeChildren);
 
-        bool HasFolder(string folderpath);
-        void CreateFolder(string folderpath);
-
-        object DeserializeObject(Type type, System.IO.Stream data);
+        /// <summary>
+        /// Converts the specified XML stream to a strongly typed object
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="data"></param>
+        /// <returns></returns>
         T DeserializeObject<T>(System.IO.Stream data);
-        System.IO.MemoryStream SerializeObject(object o);
+        
+        /// <summary>
+        /// Serializes the specified object to the specified stream
+        /// </summary>
+        /// <param name="o"></param>
+        /// <param name="stream"></param>
         void SerializeObject(object o, System.IO.Stream stream);
 
+        /// <summary>
+        /// Gets the stream of the attached data of the specified resource
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <param name="dataname"></param>
+        /// <returns></returns>
         System.IO.MemoryStream GetResourceData(string resourceID, string dataname);
+
+        /// <summary>
+        /// Gets the document header of the specified resource
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <returns></returns>
         ObjCommon.ResourceDocumentHeaderType GetResourceHeader(string resourceID);
+
+        /// <summary>
+        /// Gets the folder header of the specified resource
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <returns></returns>
         ObjCommon.ResourceFolderHeaderType GetFolderHeader(string resourceID);
         
+        /// <summary>
+        /// Gets the raw XML stream of the specified resource id
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <returns></returns>
         Stream GetResourceXmlData(string resourceID);
+
+        /// <summary>
+        /// Gets a typed resource object from the specified resource id
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <returns></returns>
         IResource GetResource(string resourceID);
 
+        /// <summary>
+        /// Sets the resource data of a specified resource
+        /// </summary>
+        /// <param name="resourceid"></param>
+        /// <param name="dataname"></param>
+        /// <param name="datatype"></param>
+        /// <param name="stream"></param>
         void SetResourceData(string resourceid, string dataname, ObjCommon.ResourceDataType datatype, System.IO.Stream stream);
+        
+        /// <summary>
+        /// Sets the resource data of a specified resource
+        /// </summary>
+        /// <param name="resourceid"></param>
+        /// <param name="dataname"></param>
+        /// <param name="datatype"></param>
+        /// <param name="stream"></param>
+        /// <param name="callback"></param>
         void SetResourceData(string resourceid, string dataname, ObjCommon.ResourceDataType datatype, System.IO.Stream stream, Utility.StreamCopyProgressDelegate callback);
+
+        /// <summary>
+        /// Sets the raw XML data of the specified resource
+        /// </summary>
+        /// <param name="resourceid"></param>
+        /// <param name="stream"></param>
         void SetResourceXmlData(string resourceid, System.IO.Stream stream);
 
+        /// <summary>
+        /// Sets the header for the specified folder
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <param name="header"></param>
         void SetFolderHeader(string resourceID, ObjCommon.ResourceFolderHeaderType header);
+        
+        /// <summary>
+        /// Sets the header for the specified resource
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <param name="header"></param>
         void SetResourceHeader(string resourceID, ObjCommon.ResourceDocumentHeaderType header);
+
+        /// <summary>
+        /// Updates the repository
+        /// </summary>
+        /// <param name="resourceId"></param>
+        /// <param name="header"></param>
         void UpdateRepository(string resourceId, ObjCommon.ResourceFolderHeaderType header);
 
+        /// <summary>
+        /// Deletes the specified attached resource data
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <param name="dataname"></param>
         void DeleteResourceData(string resourceID, string dataname);
+
+        /// <summary>
+        /// Gets a listing of all resource data attached to the specified resource
+        /// </summary>
+        /// <param name="resourceID"></param>
+        /// <returns></returns>
         ObjCommon.ResourceDataList EnumerateResourceData(string resourceID);
+
+        /// <summary>
+        /// Delete the specified resource. For folders, ensure the resource ID has a trailing slash "/"
+        /// </summary>
+        /// <param name="resourceID"></param>
         void DeleteResource(string resourceID);
-        void DeleteFolder(string folderPath);
 
+        /// <summary>
+        /// Gets a listing of all resources dependent on the specified resource
+        /// </summary>
+        /// <param name="resourceid"></param>
+        /// <returns></returns>
         ObjCommon.ResourceReferenceList EnumerateResourceReferences(string resourceid);
+
+        /// <summary>
+        /// Copies the specified resource to the specified path
+        /// </summary>
+        /// <param name="oldpath"></param>
+        /// <param name="newpath"></param>
+        /// <param name="overwrite"></param>
         void CopyResource(string oldpath, string newpath, bool overwrite);
-        void CopyFolder(string oldpath, string newpath, bool overwrite);
+
+        /// <summary>
+        /// Moves the specified resources to the specified path
+        /// </summary>
+        /// <param name="oldpath"></param>
+        /// <param name="newpath"></param>
+        /// <param name="overwrite"></param>
         void MoveResource(string oldpath, string newpath, bool overwrite);
-        void MoveFolder(string oldpath, string newpath, bool overwrite);
+        
+        /// <summary>
+        /// Moves the specified resources to the specified path. Any resources referencing this resource
+        /// are updated to reference the resource's new location
+        /// </summary>
+        /// <param name="oldpath"></param>
+        /// <param name="newpath"></param>
+        /// <param name="callback"></param>
+        /// <param name="progress"></param>
+        /// <returns></returns>
         bool MoveResourceWithReferences(string oldpath, string newpath, LengthyOperationCallBack callback, LengthyOperationProgressCallBack progress);
-        bool MoveFolderWithReferences(string oldpath, string newpath, LengthyOperationCallBack callback, LengthyOperationProgressCallBack progress);
+        
+        /// <summary>
+        /// Copies the specified folder to the specified path. Any resources referencing this folder 
+        /// are updated to reference the resources's new location
+        /// </summary>
+        /// <param name="oldpath"></param>
+        /// <param name="newpath"></param>
+        /// <param name="callback"></param>
+        /// <param name="progress"></param>
+        /// <returns></returns>
         bool CopyFolderWithReferences(string oldpath, string newpath, LengthyOperationCallBack callback, LengthyOperationProgressCallBack progress);
+
+        /// <summary>
+        /// Gets whether the specified resource id exists
+        /// </summary>
+        /// <param name="resourceid"></param>
+        /// <returns></returns>
         bool ResourceExists(string resourceid);
         
         /// <summary>
@@ -102,25 +280,6 @@
         ObjCommon.UnmanagedDataList EnumerateUnmanagedData(string startpath, string filter, bool recursive, UnmanagedDataTypes type);
 
         /// <summary>
-        /// Gets a list of all users on the server
-        /// </summary>
-        /// <returns>The list of users</returns>
-        ObjCommon.UserList EnumerateUsers();
-
-        /// <summary>
-        /// Gets a list of users in a group
-        /// </summary>
-        /// <param name="group">The group to retrieve the users from</param>
-        /// <returns>The list of users</returns>
-        ObjCommon.UserList EnumerateUsers(string group);
-
-        /// <summary>
-        /// Gets a list of all groups on the server
-        /// </summary>
-        /// <returns>The list of groups</returns>
-        ObjCommon.GroupList EnumerateGroups();
-
-        /// <summary>
         /// Upload a MapGuide Package file to the server
         /// </summary>
         /// <param name="filename">Name of the file to upload</param>

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IService.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IService.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/IService.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,6 +23,9 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Services
 {
+    /// <summary>
+    /// Base interfaces of all MapGuide Services
+    /// </summary>
     public interface IService
     {
         

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/ISiteService.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/ISiteService.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/ISiteService.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -24,14 +24,34 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Services
 {
+    /// <summary>
+    /// Service interface for site operations
+    /// </summary>
     public interface ISiteService : IService
     {
+        /// <summary>
+        /// Enumerates the users.
+        /// </summary>
+        /// <returns></returns>
         UserList EnumerateUsers();
 
+        /// <summary>
+        /// Enumerates the users.
+        /// </summary>
+        /// <param name="group">The group.</param>
+        /// <returns></returns>
         UserList EnumerateUsers(string group);
 
+        /// <summary>
+        /// Enumerates the groups.
+        /// </summary>
+        /// <returns></returns>
         GroupList EnumerateGroups();
 
+        /// <summary>
+        /// Gets the site info.
+        /// </summary>
+        /// <returns></returns>
         SiteInformation GetSiteInfo();
     }
 }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/ServiceType.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/ServiceType.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Services/ServiceType.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -23,14 +23,38 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Services
 {
+    /// <summary>
+    /// Defines the type of services
+    /// </summary>
     public enum ServiceType : int
     {
+        /// <summary>
+        /// Features Service
+        /// </summary>
         Feature,
+        /// <summary>
+        /// Resource Service
+        /// </summary>
         Resource,
+        /// <summary>
+        /// Drawing Service
+        /// </summary>
         Drawing,
+        /// <summary>
+        /// Mapping Service
+        /// </summary>
         Mapping,
+        /// <summary>
+        /// Tile Service
+        /// </summary>
         Tile,
+        /// <summary>
+        /// Fusion Service
+        /// </summary>
         Fusion,
+        /// <summary>
+        /// Site Service
+        /// </summary>
         Site
     }
 }

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/SiteVersion.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/SiteVersion.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/SiteVersion.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -84,6 +84,9 @@
         MapGuideEP2011,
 	}
 
+    /// <summary>
+    /// Helper class containing known MapGuide Site Versions
+    /// </summary>
 	public class SiteVersions
 	{
         /// <summary>

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Utf8XmlWriter.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Utf8XmlWriter.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Utf8XmlWriter.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -26,6 +26,10 @@
 	/// </summary>
 	public class Utf8XmlWriter : System.Xml.XmlTextWriter
 	{
+        /// <summary>
+        /// Initializes a new instance of the <see cref="Utf8XmlWriter"/> class.
+        /// </summary>
+        /// <param name="s">The s.</param>
 		public Utf8XmlWriter(System.IO.Stream s) 
             //This creation of the UTF8 encoder removes the BOM
             //Which is required because MapGuide has trouble reading files with a BOM.
@@ -42,12 +46,29 @@
             base.IndentChar = ' ';
         }
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="Utf8XmlWriter"/> class.
+        /// </summary>
+        /// <param name="w">The TextWriter to write to. It is assumed that the TextWriter is already set to the correct encoding.</param>
 		public Utf8XmlWriter(System.IO.TextWriter w) : base(w) 
         {
             Initialize();
         }
 
+        /// <summary>
+        /// Writes the XML declaration with the version "1.0".
+        /// </summary>
+        /// <exception cref="T:System.InvalidOperationException">
+        /// This is not the first write method called after the constructor.
+        /// </exception>
 		public override void WriteStartDocument() {Utf8WriteHeader();}
+        /// <summary>
+        /// Writes the XML declaration with the version "1.0" and the standalone attribute.
+        /// </summary>
+        /// <param name="standalone">If true, it writes "standalone=yes"; if false, it writes "standalone=no".</param>
+        /// <exception cref="T:System.InvalidOperationException">
+        /// This is not the first write method called after the constructor.
+        /// </exception>
 		public override void WriteStartDocument(bool standalone) {Utf8WriteHeader();}
 
 		private void Utf8WriteHeader()

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Utility.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Utility.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/Utility.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -32,6 +32,11 @@
 		//Americans NEVER obey nationalization when outputting decimal values, so the rest of the world always have to work around their bugs :(
 		private static System.Globalization.CultureInfo m_enCI = new System.Globalization.CultureInfo("en-US");
 
+        /// <summary>
+        /// Strips the version component from provider name
+        /// </summary>
+        /// <param name="providername">The provider name.</param>
+        /// <returns></returns>
         public static string StripVersionFromProviderName(string providername)
         {
             double x;
@@ -574,6 +579,9 @@
             return c.items;
         }
 
+        /// <summary>
+        /// 
+        /// </summary>
         public delegate void EnumerateObjectCallback(object obj);
 
         /// <summary>

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/XmlValidator.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/XmlValidator.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI/XmlValidator.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -40,6 +40,11 @@
 		// Validation Error Message
 		private string ErrorMessage = "";
 
+        /// <summary>
+        /// Default validation handler method
+        /// </summary>
+        /// <param name="sender">The sender.</param>
+        /// <param name="args">The <see cref="System.Xml.Schema.ValidationEventArgs"/> instance containing the event data.</param>
 		public void ValidationHandler(object sender,
 			ValidationEventArgs args)
 		{
@@ -47,6 +52,11 @@
 			ErrorsCount ++;
 		}
 
+        /// <summary>
+        /// Validates the specified XML.
+        /// </summary>
+        /// <param name="xml">The XML.</param>
+        /// <param name="xsd">The XSD.</param>
 		public void Validate(System.IO.Stream xml, XmlSchema xsd)
 		{
 			// Declare local objects

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Http/HttpServerConnection.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Http/HttpServerConnection.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Http/HttpServerConnection.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -44,7 +44,7 @@
 	/// <summary>
 	/// Primary http based connection to the MapGuide Server
 	/// </summary>
-	public class HttpServerConnection : ServerConnectionBase, 
+    public class HttpServerConnection : MgServerConnectionBase, 
                                         IServerConnection, 
                                         IDisposable, 
                                         IFeatureService, 
@@ -220,14 +220,6 @@
 			get { return m_reqBuilder.SessionID; }
 		}
 
-		public ResourceList RepositoryResources
-		{
-			get 
-			{
-				return GetRepositoryResources();
-			}
-		}
-
 		public override ResourceList GetRepositoryResources(string startingpoint, string type, int depth, bool computeChildren)
 		{
 			string req = m_reqBuilder.EnumerateResources(startingpoint, depth, type, computeChildren);
@@ -376,30 +368,6 @@
             return string.Empty;
 		}
 
-		/// <summary>
-		/// Placeholder for actual method call
-		/// </summary>
-		public void DescribeSchema()
-		{
-			throw new NotImplementedException();
-		}
-
-        /*
-		public OSGeo.MapGuide.MaestroAPI.FdoProviderCapabilities GetProviderCapabilities(string provider)
-		{
-            if (m_cachedProviderCapabilities == null)
-                m_cachedProviderCapabilities = new Hashtable();
-
-			if (m_cachedProviderCapabilities.ContainsKey(provider))
-				return (FdoProviderCapabilities)m_cachedProviderCapabilities[provider];
-
-			string req = m_reqBuilder.GetProviderCapabilities(provider);
-
-			//TODO: Cache?
-			FdoProviderCapabilities o = (FdoProviderCapabilities)DeserializeObject(typeof(FdoProviderCapabilities), this.OpenRead(req));
-			return o;
-		}*/
-
 		public override System.IO.MemoryStream GetResourceData(string resourceID, string dataname)
 		{
 			string req = m_reqBuilder.GetResourceData(resourceID, dataname);
@@ -422,34 +390,6 @@
             return this.OpenRead(req);
 		}
 
-		/*public object DeserializeItem(System.IO.Stream s)
-		{
-			if (!s.CanSeek)
-			{
-				System.IO.MemoryStream ms = new System.IO.MemoryStream();
-				Utility.CopyStream(s, ms);
-				s = ms;
-			}
-
-			XmlTextReader xtr = new XmlTextReader(s);
-			string r;
-			if(xtr.Read())
-				r = xtr.Name;
-			else
-				return null;
-
-			return null;
-
-		}*/
-
-		public System.IO.Stream GetMapDWF(string resourceID)
-		{
-			ResourceIdentifier.Validate(resourceID, ResourceTypes.MapDefinition);
-
-			string req = m_reqBuilder.GetMapDWF(resourceID);
-			return this.OpenRead(req);
-		}
-
 		public override void SetResourceData(string resourceid, string dataname, ResourceDataType datatype, System.IO.Stream stream, Utility.StreamCopyProgressDelegate callback)
 		{
 
@@ -713,7 +653,7 @@
 		public override void CreateRuntimeMap(string resourceID, string mapdefinition)
 		{
 			ResourceIdentifier.Validate(resourceID, ResourceTypes.RuntimeMap);
-			MapDefinition map = (MapDefinition)this.GetResource(mapdefinition);
+            IMapDefinition map = (IMapDefinition)this.GetResource(mapdefinition);
 			CreateRuntimeMap(resourceID, map);
 		}
 
@@ -722,7 +662,7 @@
 		/// </summary>
 		/// <param name="resourceID">The target resource id for the runtime map</param>
 		/// <param name="map">The mapdefinition to base the map on</param>
-		public void CreateRuntimeMap(string resourceID, MapDefinition map)
+		public void CreateRuntimeMap(string resourceID, IMapDefinition map)
 		{
             ResourceIdentifier.Validate(resourceID, ResourceTypes.RuntimeMap);
             RuntimeMapBase m = new RuntimeMapBase(map);
@@ -827,18 +767,6 @@
 				//Do nothing... there is no return value
 		}
 
-		public void DeleteFolder(string folderPath)
-		{
-			folderPath = FixAndValidateFolderPath(folderPath);
-
-			string req = m_reqBuilder.DeleteResource(folderPath);
-
-			using (System.IO.Stream resp = this.OpenRead(req))
-				resp.ReadByte();
-			//Do nothing... there is no return value
-		}
-
-
 		public RuntimeMapBase GetRuntimeMap(string resourceID)
 		{
 			if (!resourceID.StartsWith("Session:" + this.m_reqBuilder.SessionID + "//") || !resourceID.EndsWith(".Map"))

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Http/OSGeo.MapGuide.MaestroAPI.Http.csproj
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Http/OSGeo.MapGuide.MaestroAPI.Http.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Http/OSGeo.MapGuide.MaestroAPI.Http.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -17,7 +17,7 @@
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
+    <OutputPath>..\SDK\bin\Debug\</OutputPath>
     <DefineConstants>DEBUG;TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -25,7 +25,7 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
+    <OutputPath>..\SDK\bin\Release\</OutputPath>
     <DefineConstants>TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/LocalNativeConnection.cs
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/LocalNativeConnection.cs	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/LocalNativeConnection.cs	2010-10-27 09:00:54 UTC (rev 5340)
@@ -35,7 +35,7 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Native
 {
-    public class LocalNativeConnection : ServerConnectionBase, 
+    public class LocalNativeConnection : MgServerConnectionBase, 
                                          IServerConnection,
                                          IFeatureService,
                                          IResourceService,
@@ -138,14 +138,6 @@
 			}
 		}
 
-		public ResourceList RepositoryResources
-		{
-			get
-			{
-				return GetRepositoryResources();
-			}
-		}
-
 		public override ResourceList GetRepositoryResources(string startingpoint, string type, int depth, bool computeChildren)
 		{
 			if (type == null)
@@ -185,12 +177,6 @@
 			return fes.TestConnection(new MgResourceIdentifier(featuresource)) ? "True" : "Unspecified errors";
 		}
 
-		public void DescribeSchema()
-		{
-			throw new MissingMethodException();
-		}
-
-
 		public FdoProviderCapabilities GetProviderCapabilities(string provider)
 		{
 			MgFeatureService fes = this.Connection.CreateService(MgServiceType.FeatureService) as MgFeatureService;
@@ -203,25 +189,12 @@
 			return Utility.MgStreamToNetStream(res, res.GetType().GetMethod("GetResourceData"), new object[] { new MgResourceIdentifier(resourceID), dataname });
 		}
 
-
 		public override Stream GetResourceXmlData(string resourceID)
 		{
 			MgResourceService res = this.Connection.CreateService(MgServiceType.ResourceService) as MgResourceService;
             return Utility.MgStreamToNetStream(res, res.GetType().GetMethod("GetResourceContent"), new object[] { new MgResourceIdentifier(resourceID) });
 		}
 
-        //public override FeatureProviderRegistryFeatureProvider GetFeatureProvider(string providername)
-        //{
-        //    MgFeatureService fes = this.Connection.CreateService(MgServiceType.FeatureService) as MgFeatureService;
-        //    System.IO.MemoryStream ms = Utility.MgStreamToNetStream(fes, fes.GetType().GetMethod("GetCapabilities"), new object[] { providername });
-        //    return (FeatureProviderRegistryFeatureProvider)DeserializeObject(typeof(FeatureProviderRegistryFeatureProvider), ms);
-        //}
-
-		public System.IO.Stream GetMapDWF(string resourceID)
-		{
-			throw new MissingMethodException();
-		}
-
 		public override void SetResourceXmlData(string resourceid, System.IO.Stream content, System.IO.Stream header)
 		{
 			MgResourceService res = this.Connection.CreateService(MgServiceType.ResourceService) as MgResourceService;
@@ -335,7 +308,7 @@
             sel.Save(res, mapname);
         }
 
-		public void CreateRuntimeMap(string resourceID, MapDefinition map)
+		public void CreateRuntimeMap(string resourceID, IMapDefinition map)
 		{
 			ResourceIdentifier guid = new ResourceIdentifier(Guid.NewGuid().ToString(), ResourceTypes.MapDefinition, this.SessionID);
 			try
@@ -407,14 +380,6 @@
 			res.DeleteResource(new MgResourceIdentifier(resourceID));
 		}
 
-		public void DeleteFolder(string folderPath)
-		{
-			if (!folderPath.EndsWith("/"))
-				folderPath += "/";
-			MgResourceService res = this.Connection.CreateService(MgServiceType.ResourceService) as MgResourceService;
-			res.DeleteResource(new MgResourceIdentifier(folderPath));
-		}
-
 		public RuntimeMapBase GetRuntimeMap(string resourceID)
 		{
 			RuntimeMapBase m = RuntimeMapBase.Deserialize(new MgBinaryDeserializer(this.GetResourceData(resourceID, "RuntimeData"), this.SiteVersion));

Deleted: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/OSGeo.MapGuide.MaestroAPI.Native-1.2.0.csproj
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/OSGeo.MapGuide.MaestroAPI.Native-1.2.0.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/OSGeo.MapGuide.MaestroAPI.Native-1.2.0.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>9.0.21022</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{E9BDFC13-1555-4050-869C-D2C44B7ED447}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>OSGeo.MapGuide.MaestroAPI.Native</RootNamespace>
-    <AssemblyName>OSGeo.MapGuide.MaestroAPI.Native-1.2.0</AssemblyName>
-    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
-    <Reference Include="Topology, Version=1.0.8.24721, Culture=neutral, PublicKeyToken=f526c48929fda856, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\Thirdparty\TF.NET\Topology.dll</HintPath>
-    </Reference>
-    <Reference Include="Topology.IO.MapGuide, Version=1.0.8.40022, Culture=neutral, PublicKeyToken=f526c48929fda856, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\Thirdparty\TF.NET\Topology.IO.MapGuide.dll</HintPath>
-    </Reference>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Utility.cs" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>
\ No newline at end of file

Deleted: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/OSGeo.MapGuide.MaestroAPI.Native-2.0.2.csproj
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/OSGeo.MapGuide.MaestroAPI.Native-2.0.2.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/OSGeo.MapGuide.MaestroAPI.Native-2.0.2.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>9.0.21022</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{A6F27323-28A7-4F65-A54A-337B09962C0F}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>OSGeo.MapGuide.MaestroAPI.Native</RootNamespace>
-    <AssemblyName>OSGeo.MapGuide.MaestroAPI.Native-1.2.0</AssemblyName>
-    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
-    <Reference Include="Topology, Version=1.0.8.24721, Culture=neutral, PublicKeyToken=f526c48929fda856, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\Thirdparty\TF.NET\Topology.dll</HintPath>
-    </Reference>
-    <Reference Include="Topology.IO.MapGuide, Version=1.0.8.40022, Culture=neutral, PublicKeyToken=f526c48929fda856, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\Thirdparty\TF.NET\Topology.IO.MapGuide.dll</HintPath>
-    </Reference>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Utility.cs" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>
\ No newline at end of file

Deleted: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/OSGeo.MapGuide.MaestroAPI.Native-2.1.0.csproj
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/OSGeo.MapGuide.MaestroAPI.Native-2.1.0.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/OSGeo.MapGuide.MaestroAPI.Native-2.1.0.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>9.0.21022</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{AF9E8895-0B12-4265-B3C9-89E319B49E70}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>OSGeo.MapGuide.MaestroAPI.Native</RootNamespace>
-    <AssemblyName>OSGeo.MapGuide.MaestroAPI.Native-1.2.0</AssemblyName>
-    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
-    <Reference Include="Topology, Version=1.0.8.24721, Culture=neutral, PublicKeyToken=f526c48929fda856, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\Thirdparty\TF.NET\Topology.dll</HintPath>
-    </Reference>
-    <Reference Include="Topology.IO.MapGuide, Version=1.0.8.40022, Culture=neutral, PublicKeyToken=f526c48929fda856, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\Thirdparty\TF.NET\Topology.IO.MapGuide.dll</HintPath>
-    </Reference>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Utility.cs" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>
\ No newline at end of file

Deleted: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/OSGeo.MapGuide.MaestroAPI.Native-2.2.0.csproj
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/OSGeo.MapGuide.MaestroAPI.Native-2.2.0.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/OSGeo.MapGuide.MaestroAPI.Native-2.2.0.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>9.0.21022</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{F4420153-9DF3-4407-AD65-E8ABED2B6E25}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>OSGeo.MapGuide.MaestroAPI.Native</RootNamespace>
-    <AssemblyName>OSGeo.MapGuide.MaestroAPI.Native-1.2.0</AssemblyName>
-    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="OSGeo.MapGuide.Foundation, Version=1.0.0.1, Culture=neutral, PublicKeyToken=f526c48929fda856, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\Thirdparty\MGAPI\2.2.0\OSGeo.MapGuide.Foundation.dll</HintPath>
-    </Reference>
-    <Reference Include="OSGeo.MapGuide.Geometry, Version=1.0.0.1, Culture=neutral, PublicKeyToken=f526c48929fda856, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\Thirdparty\MGAPI\2.2.0\OSGeo.MapGuide.Geometry.dll</HintPath>
-    </Reference>
-    <Reference Include="OSGeo.MapGuide.MapGuideCommon, Version=1.0.0.1, Culture=neutral, PublicKeyToken=f526c48929fda856, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\Thirdparty\MGAPI\2.2.0\OSGeo.MapGuide.MapGuideCommon.dll</HintPath>
-    </Reference>
-    <Reference Include="OSGeo.MapGuide.PlatformBase, Version=1.0.0.1, Culture=neutral, PublicKeyToken=f526c48929fda856, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\Thirdparty\MGAPI\2.2.0\OSGeo.MapGuide.PlatformBase.dll</HintPath>
-    </Reference>
-    <Reference Include="OSGeo.MapGuide.Web, Version=1.0.0.1, Culture=neutral, PublicKeyToken=f526c48929fda856, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\Thirdparty\MGAPI\2.2.0\OSGeo.MapGuide.Web.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Drawing" />
-    <Reference Include="System.Xml" />
-    <Reference Include="Topology, Version=1.0.8.24721, Culture=neutral, PublicKeyToken=f526c48929fda856, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\Thirdparty\TF.NET\Topology.dll</HintPath>
-    </Reference>
-    <Reference Include="Topology.IO.MapGuide, Version=1.0.8.40022, Culture=neutral, PublicKeyToken=f526c48929fda856, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\Thirdparty\TF.NET\Topology.IO.MapGuide.dll</HintPath>
-    </Reference>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Properties\AssemblyInfo-2.2.0.cs" />
-    <Compile Include="LocalNativeCapabilities.cs" />
-    <Compile Include="LocalNativeConnection.cs" />
-    <Compile Include="LocalNativeCoordinateSystem.cs" />
-    <Compile Include="LocalNativeCoordinateSystemCatalog.cs" />
-    <Compile Include="LocalNativeCoordinateSystemCategory.cs" />
-    <Compile Include="LocalNativeFeatureSetReader.cs" />
-    <Compile Include="Mapping\Selection.cs" />
-    <Compile Include="Utility.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\OSGeo.MapGuide.MaestroAPI\OSGeo.MapGuide.MaestroAPI.csproj">
-      <Project>{80FA3158-8B5F-48D1-A393-0378AFE48A7E}</Project>
-      <Name>OSGeo.MapGuide.MaestroAPI</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <Folder Include="Commands\" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>
\ No newline at end of file

Modified: sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/OSGeo.MapGuide.MaestroAPI.Native.csproj
===================================================================
--- sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/OSGeo.MapGuide.MaestroAPI.Native.csproj	2010-10-27 06:33:56 UTC (rev 5339)
+++ sandbox/maestro-3.0/OSGeo.MapGuide.MaestroAPI.Native/OSGeo.MapGuide.MaestroAPI.Native.csproj	2010-10-27 09:00:54 UTC (rev 5340)
@@ -17,7 +17,7 @@
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
+    <OutputPath>..\SDK\bin\Debug\</OutputPath>
     <DefineConstants>DEBUG;TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
@@ -25,7 +25,7 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
+    <OutputPath>..\SDK\bin\Release\</OutputPath>
     <DefineConstants>TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>

Added: sandbox/maestro-3.0/Properties/maestroapi.key
===================================================================
(Binary files differ)


Property changes on: sandbox/maestro-3.0/Properties/maestroapi.key
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream


Property changes on: sandbox/maestro-3.0/SDK
___________________________________________________________________
Added: svn:ignore
   + SDK.suo
bin


Added: sandbox/maestro-3.0/SDK/SDK.sln
===================================================================
--- sandbox/maestro-3.0/SDK/SDK.sln	                        (rev 0)
+++ sandbox/maestro-3.0/SDK/SDK.sln	2010-10-27 09:00:54 UTC (rev 5340)
@@ -0,0 +1,110 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSGeo.MapGuide.MaestroAPI", "..\OSGeo.MapGuide.MaestroAPI\OSGeo.MapGuide.MaestroAPI.csproj", "{80FA3158-8B5F-48D1-A393-0378AFE48A7E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSGeo.MapGuide.MaestroAPI.Http", "..\OSGeo.MapGuide.MaestroAPI.Http\OSGeo.MapGuide.MaestroAPI.Http.csproj", "{6EF1E775-444B-4E5F-87FB-D687C43A68D7}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSGeo.MapGuide.MaestroAPI.Native", "..\OSGeo.MapGuide.MaestroAPI.Native\OSGeo.MapGuide.MaestroAPI.Native.csproj", "{F4420153-9DF3-4407-AD65-E8ABED2B6E25}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Maestro.Editors", "..\Maestro.Editors\Maestro.Editors.csproj", "{5AD2CDBA-952E-4148-98A1-31D2E0D540D5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Maestro.Packaging", "..\Maestro.Packaging\Maestro.Packaging.csproj", "{0EA33E36-9C33-4D60-B378-B87FADAA0F40}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Maestro.Shared.UI", "..\Maestro.Shared.UI\Maestro.Shared.UI.csproj", "{CFD19053-2172-41D3-8460-0FD2123A1E88}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Maestro.Login", "..\Maestro.Login\Maestro.Login.csproj", "{07588440-5F9F-4C30-AA06-9CF30BA6DDE6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSGeo.MapGuide.ObjectModels.LayerDefinition-1.1.0", "..\ExtendedModels\LayerDefinition-1.1.0\OSGeo.MapGuide.ObjectModels.LayerDefinition-1.1.0.csproj", "{B5EA049C-6AB7-4686-A2F4-4BA2EAC0E585}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSGeo.MapGuide.ObjectModels.LayerDefinition-1.2.0", "..\ExtendedModels\LayerDefinition-1.2.0\OSGeo.MapGuide.ObjectModels.LayerDefinition-1.2.0.csproj", "{EDDB0F74-6FE7-4969-80B0-817A629722CD}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSGeo.MapGuide.ObjectModels.LayerDefinition-1.3.0", "..\ExtendedModels\LayerDefinition-1.3.0\OSGeo.MapGuide.ObjectModels.LayerDefinition-1.3.0.csproj", "{AC5068F6-CFBE-4BCD-B68B-062725E424D4}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSGeo.MapGuide.ObjectModels.LoadProcedure-1.1.0", "..\ExtendedModels\LoadProcedure-1.1.0\OSGeo.MapGuide.ObjectModels.LoadProcedure-1.1.0.csproj", "{B2A1F69E-52AA-42A2-8DED-89ADB9B14A38}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSGeo.MapGuide.ObjectModels.LoadProcedure-2.2.0", "..\ExtendedModels\LoadProcedure-2.2.0\OSGeo.MapGuide.ObjectModels.LoadProcedure-2.2.0.csproj", "{D525B343-66D6-4D6B-9A55-78A173D94A51}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSGeo.MapGuide.ObjectModels.SymbolDefinition-1.1.0", "..\ExtendedModels\SymbolDefinition-1.1.0\OSGeo.MapGuide.ObjectModels.SymbolDefinition-1.1.0.csproj", "{BF6E996E-27AF-44CD-B3CF-A40874E15B2E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OSGeo.MapGuide.ObjectModels.WebLayout-1.1.0", "..\ExtendedModels\WebLayout-1.1.0\OSGeo.MapGuide.ObjectModels.WebLayout-1.1.0.csproj", "{0A93ACA8-5B21-44E6-B0B7-5D1E72D3A6A2}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aga.Controls", "..\Thirdparty\TreeViewAdv\Aga.Controls\Aga.Controls.csproj", "{E73BB233-D88B-44A7-A98F-D71EE158381D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaestroAPITests", "..\MaestroAPITests\MaestroAPITests.csproj", "{351D49A3-2E4A-4EC3-AFC2-D56598F44F51}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{80FA3158-8B5F-48D1-A393-0378AFE48A7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{80FA3158-8B5F-48D1-A393-0378AFE48A7E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{80FA3158-8B5F-48D1-A393-0378AFE48A7E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{80FA3158-8B5F-48D1-A393-0378AFE48A7E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6EF1E775-444B-4E5F-87FB-D687C43A68D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6EF1E775-444B-4E5F-87FB-D687C43A68D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6EF1E775-444B-4E5F-87FB-D687C43A68D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{6EF1E775-444B-4E5F-87FB-D687C43A68D7}.Release|Any CPU.Build.0 = Release|Any CPU
+		{F4420153-9DF3-4407-AD65-E8ABED2B6E25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{F4420153-9DF3-4407-AD65-E8ABED2B6E25}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{F4420153-9DF3-4407-AD65-E8ABED2B6E25}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{F4420153-9DF3-4407-AD65-E8ABED2B6E25}.Release|Any CPU.Build.0 = Release|Any CPU
+		{5AD2CDBA-952E-4148-98A1-31D2E0D540D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{5AD2CDBA-952E-4148-98A1-31D2E0D540D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{5AD2CDBA-952E-4148-98A1-31D2E0D540D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{5AD2CDBA-952E-4148-98A1-31D2E0D540D5}.Release|Any CPU.Build.0 = Release|Any CPU
+		{0EA33E36-9C33-4D60-B378-B87FADAA0F40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{0EA33E36-9C33-4D60-B378-B87FADAA0F40}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{0EA33E36-9C33-4D60-B378-B87FADAA0F40}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{0EA33E36-9C33-4D60-B378-B87FADAA0F40}.Release|Any CPU.Build.0 = Release|Any CPU
+		{CFD19053-2172-41D3-8460-0FD2123A1E88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{CFD19053-2172-41D3-8460-0FD2123A1E88}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{CFD19053-2172-41D3-8460-0FD2123A1E88}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{CFD19053-2172-41D3-8460-0FD2123A1E88}.Release|Any CPU.Build.0 = Release|Any CPU
+		{07588440-5F9F-4C30-AA06-9CF30BA6DDE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{07588440-5F9F-4C30-AA06-9CF30BA6DDE6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{07588440-5F9F-4C30-AA06-9CF30BA6DDE6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{07588440-5F9F-4C30-AA06-9CF30BA6DDE6}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B5EA049C-6AB7-4686-A2F4-4BA2EAC0E585}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B5EA049C-6AB7-4686-A2F4-4BA2EAC0E585}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{B5EA049C-6AB7-4686-A2F4-4BA2EAC0E585}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B5EA049C-6AB7-4686-A2F4-4BA2EAC0E585}.Release|Any CPU.Build.0 = Release|Any CPU
+		{EDDB0F74-6FE7-4969-80B0-817A629722CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{EDDB0F74-6FE7-4969-80B0-817A629722CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{EDDB0F74-6FE7-4969-80B0-817A629722CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{EDDB0F74-6FE7-4969-80B0-817A629722CD}.Release|Any CPU.Build.0 = Release|Any CPU
+		{AC5068F6-CFBE-4BCD-B68B-062725E424D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{AC5068F6-CFBE-4BCD-B68B-062725E424D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{AC5068F6-CFBE-4BCD-B68B-062725E424D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{AC5068F6-CFBE-4BCD-B68B-062725E424D4}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B2A1F69E-52AA-42A2-8DED-89ADB9B14A38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B2A1F69E-52AA-42A2-8DED-89ADB9B14A38}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{B2A1F69E-52AA-42A2-8DED-89ADB9B14A38}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B2A1F69E-52AA-42A2-8DED-89ADB9B14A38}.Release|Any CPU.Build.0 = Release|Any CPU
+		{D525B343-66D6-4D6B-9A55-78A173D94A51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D525B343-66D6-4D6B-9A55-78A173D94A51}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D525B343-66D6-4D6B-9A55-78A173D94A51}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D525B343-66D6-4D6B-9A55-78A173D94A51}.Release|Any CPU.Build.0 = Release|Any CPU
+		{BF6E996E-27AF-44CD-B3CF-A40874E15B2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{BF6E996E-27AF-44CD-B3CF-A40874E15B2E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{BF6E996E-27AF-44CD-B3CF-A40874E15B2E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{BF6E996E-27AF-44CD-B3CF-A40874E15B2E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{0A93ACA8-5B21-44E6-B0B7-5D1E72D3A6A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{0A93ACA8-5B21-44E6-B0B7-5D1E72D3A6A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{0A93ACA8-5B21-44E6-B0B7-5D1E72D3A6A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{0A93ACA8-5B21-44E6-B0B7-5D1E72D3A6A2}.Release|Any CPU.Build.0 = Release|Any CPU
+		{E73BB233-D88B-44A7-A98F-D71EE158381D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{E73BB233-D88B-44A7-A98F-D71EE158381D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{E73BB233-D88B-44A7-A98F-D71EE158381D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{E73BB233-D88B-44A7-A98F-D71EE158381D}.Release|Any CPU.Build.0 = Release|Any CPU
+		{351D49A3-2E4A-4EC3-AFC2-D56598F44F51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{351D49A3-2E4A-4EC3-AFC2-D56598F44F51}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{351D49A3-2E4A-4EC3-AFC2-D56598F44F51}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{351D49A3-2E4A-4EC3-AFC2-D56598F44F51}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal



More information about the mapguide-commits mailing list