Version 28 (modified by 15 years ago) ( diff ) | ,
---|
MapGuide RFC 68 - Refactoring Web .NET API into Common DLLs
This page contains an change request (RFC) for the MapGuide Open Source project. More MapGuide RFCs can be found on the RFCs page.
Status
RFC Template Version | (1.0) |
Submission Date | June 23, 2009 |
Last Modified | Leaf Li Timestamp |
Author | Leaf Li |
RFC Status | draft |
Implementation Status | under development |
Proposed Milestone | 2.2 |
Assigned PSC guide(s) | Bruce Dechant |
Voting History | (vote date) |
+1 | |
+0 | |
-0 | |
-1 | |
no vote |
Overview
This proposal is to refactor MapGuide Web .NET API to some common dlls.
Motivation
Currently all MapGuide Web .NET API is in one single dll MapGuieDotNetApi.dll, which includes Foundation, Geometry, PlatformBase, MapGuideCommon, WebApp and HttpHandler components. It is nearly impossible for users to reuse some of functionality outside of MapGuide because MapGuide .NET Web API depends on MapGuide enviroment. For example, users can't use coordinate system transformation functionality outside MapGuide. So the key motivation of this RFC is to make MapGuide Web .NET API more reusable so that more projects or products can get benifits from MapGuide.
Proposed Solution
In order to make backward compatible with the existing MapGuide applications, MapGuieDotNetApi.dll still exists. However, it becomes an assembly with multiple files. The primary idea is single compiling and muliple linking.
(a) Create the following netmodule files.
- OSGeo.MapGuide.Foundation.netmodule
- OSGeo.MapGuide.Geometry.netmodule
- OSGeo.MapGuide.PlatformBase.netmodule
- OSGeo.MapGuide.MapGuideCommon.netmodule
- OSGeo.MapGuide.Web.netmodule
(b) Create an assembly for each netmodule file in step (a). Then the following files will be created.
- OSGeo.MapGuide.Foundation.dll: contains API in Foundation component.
- OSGeo.MapGuide.Geometry.dll: contains API in Geometry compoent.
- OSGeo.MapGuide.PlatformBase.dll: contains API in PlatformBase component.
- OSGeo.MapGuide.MapGuideCommon.dll: contains API in MapGuideCommon compoent.
- OSGeo.MapGuide.Web.dll: contains API in WebApp and HttpHandler components.
(c) Create an assembly for all netmodule files in step (a). The following file will be created.
- MapGuideDotNetApi.dll
Implications
Currently, there is no enough resources and funding to refator PHP and Java API. They may be implemented if resources and funding can be obtained in the future.
Test Plan
Run the existing unit tests. No need to add new unit tests.
Funding/Resources
Supplied by Autodesk.