mmehr2 / Msw4

Source code for MagicScroll for Windows (basic) project.
0 stars 0 forks source link

Technical debt of project (overall) #2

Open mmehr2 opened 6 years ago

mmehr2 commented 6 years ago

This issue means to track all the legacy issues that I have noticed while working on this project, for future maintainers. A problem with that is that the full project is not in the scope of this repo, but provided on a Google drive by the Owner (ECS Video Systems). Nevertheless, I will list all the issues I can think of that relate to maintenance here.

The obvious big one is Visual Studio 2010. I have a working copy of the compiler and am actively using it. Not many people are left who can say that. Currently there are no plans to upgrade the compiler used on this project, but eventually Microsoft will drop support and it may become an issue.

Consequent from that, are the various 3rd Party products that MSW relies on. If the project switches to a newer compiler, these may no longer be supported.

Then there is the fact that VC++ 2010 was the last release before C++11 changed the language forever. So, modern engineers who work on C++ projects will be more and more challenged to stay within the confines of C++98, and the need to bracket all enhancements with tests for __cplusplus > 0x201103L for example.

Windows has moved on from the environment in which this was developed (Windows XP). It gets harder and harder to maintain compatibility with future Windows runtime environments. Not an issue yet tho. Win10 still runs this, but all new features need to realize that this code still runs on older machines as well as brand new. SO certain Microsoft technologies aren't always available.

These issues and the cumulative effect make it hard to work on the code. For example, when attempting to add support for Pubnub, their VC2010 API encountered many problems. This is due to lack of active support for that version among the 70 they have. I have been in communication with Vladamir Veljkovic at Pubnub Support (their ticket 4232 here) and this is tracking the latest issues I am having when integrating Pubnub for my latest test attempt.

I will attempt to post more here as they come up. Eventually this should be split out into separate issues that can be tracked if desired to work on.

mmehr2 commented 6 years ago

After more experience with the Pubnub APIs, I would say that their master branch code is working fine. My issues were either due to using a downrev branch (at their suggestion) to work around something I had found, which was fixed that week in the master branch. Or also some errors on my part in forgetting to include the proper lib files in both Debug and Release configurations.

mmehr2 commented 6 years ago

It occurs to me, after using the OpenSSL DLLs compiled with VS2012+ in the project with success, that we could deal with some of the technical debt by using the latest compiler on the Remote subsystem at least and encapsulating it in a DLL. Unfortunately, this doesn't mean we can use the rest of the app with the latest VS release, so probably best not to go there until we absolutely must for the main application.