Mono and SWIG for C++ Code for MapWindow 4.9


Didn't see too much discussion on MapWindow 4.9. Is it a dead issue?

If not, I read there was a desire to go to C#. I wasn't sure if this for the entire code base or just he VB.Net portion. I know there is a large code base in C++ so my assumption is the latter.

Based on that assumption here are a couple of recommendations:
  1. I would recommend that MapWindow 4.9 use SWIG (http://www.swig.org) to generate C# interfaces to make calls to C++. The tricky part is replacing the MapWinGIS ActiveX component. I haven't done any COM programming in over a decade. Not sure what technology has taken over for ActiveX Control(s)... .Net Controls? Either way, all of the C# interfaces required to call the C++ code can be generated with SWIG. I've done COM, Managed C++, and C++/CLI to accomplish the same thing several times over the last 10+years. I wished I had found SWIG back then it would have save a ton of time and frustration.
  2. I further recommend using CMake (http://www.cmake.org) to generate Visual Studio project files for C++ code. I've been using it for a year now and I'm recommending it to every C++ developer I know. Especially new ones. Learn CMake and you'll never worry about converting a C++ project again from one IDE to another. I've actually had Visual Studio screw up it's own upgrade from one version of Visual Studio to another and CMake handles it seamlessly with the same CMake configuration file (CMakeLists.txt).
  3. Consider supporting or using Mono (http://www.mono-project.com/Main_Page). This in conjunction with the use of SWIG should allow MapWindow 4.9 to compile and run on a number of different platforms.
That's my $0.02. Thanks!