Move more to the ocx

Coordinator
Nov 1, 2011 at 9:48 PM

In the early days MapWindow was just an ActiveX control to show a map and an executable with a legend around the ocx.
Later more .NET libraries (VB.NET and C#) were added for spatial operations, projections, etc.

About 2 years ago Sergei started adding additional libraries to the ocx, like GEOS for spatial operations, GDAL/OGR/PROJ4 for projections, symbology, etc.
This resulted in a much faster and robust version of MapWindow. Doing a Union or Intersection takes seconds now instead of minutes.
Projections have only been added recently and it hugely improved the user experience and reprojecting a shapefile is now done in (milli) seconds.

Because Sergei is so skilled with both C++ and C# and using the ocx has such a high performance gain I think we should try to move as much as possible of the functions to the ocx.
An extra benefit is that all these new, fast and robust features will also be available to the developers that are just using the ocx to create their own custom application.

Coordinator
Nov 2, 2011 at 7:36 PM

Hey Paul, this is exactly the thinking that got us working on DotSpatial - basically as a set of libraries that users could re-use as needed to build a custom application. The only reason to rename it "DotSpatial" was to reduce confusion from our users. They should equate "MapWindow" brand as a desktop application and needed some other term for the libraries. Let's think strategically about how to use the DotSpatial effort as the supplier of .NET objects for MapWindow 4. Where and when we want to use C++ code, then we could continue to use the MapWinGIS name... - Dan

 

------------------------------------------

(from previous post:)
The exe should be slim so it can easily replaced by a developer who want to create a custom application.
For v4.8 we've started with MapWindow.Components.dll. That was a good start, but is is already cluttered with other stuff like projections and such.

My suggestion is something like this:
MapWinGIS.ocx
MapWindow.exe
MapWindow.Components.dll
MapWindow.Project.dll
MapWindow.Projections.dll
MapWindow.Layer.dll
MapWindow.Map.dll or MapWindow.Visualization.dll
MapWindow.Symbology.dll
MapWindow.Modeling.dll
MapWindow.Print.dll
MapWindow.Toolbar.dll
MapWindow.Menu.dll
MapWindow.Ribbon.dll
MapWindow.Legend.dll
MapWindow.Toolbox.dll
MapWindow.Plugins.dll
MapWindow.Geospatial.dll
MapWindow.GDAL.dll
MapWindow..OGR.dll
MapWindow.3dparty.dll (will discuss in another topic)
etc.

Nov 2, 2011 at 8:59 PM

If you're curious, the MW6 exe has about 100 lines of code plus a splash screen.