A trip down .NET Application upgrade lane

All of my Dynamics CRM-related utilities have, until this point, been built and maintained with Visual Studio 2010, which is really not a personal choice, but of of practicality.

Most of the reasoning behind this decision is led by some technology changes introduced in later versions of Visual Studio (2013 mostly) as well as some problems with some third-party components that I use for the user interface.

This past weekend I was able to successfully upgrade my SnapShot! application to use Visual Studio 2013 (I could have gone to 2015 but chose not too).

Here are the changes that I had to make:

Installer Technology

I do not have any complicated installer scenarios but really and truly just need files copied to the computer, folders created, and items added to the Start menu. The built-in Setup project that shipped with Visual Studio 2010 is more than sufficient to meet my needs.

Then Microsoft discontinued that project type so I lost my application installer.  Their alternative is to use InstallShield Limited Edition (ISLE). While this works, I once spent about 3 hours and 4-5 iterations trying to get all of the missing components installed.  Not wanting to repeat this process, I just stayed on Visual Studio 2010.  You can call me lazy, but it was just not worth the investment of time and energy.

Then Microsoft shipped a new installer project type as a Visual Studio extension. Both VS 2013 and 2015 are supported:

Microsoft Visual Studio 2015 Installer Projects
Microsoft Visual Studio 2013 Installer Projects

Exit Visual Studio, install one of these extensions, restart Visual Studio and load your solution and it is like your upgrade to VS2013/15 never happened.  Everything just works.

Yay Visual Studio Team!

Third-Party Components

Many years ago I purchased a most excellent component library for Windows Forms applications. It was really great to work with but unfortunately is no longer being supported. My previous attempts in migrating one of my applications to Visual Studio 2013 caused a wide variety of unexpected issues so I again delayed the move. Mostly because I could not modify the user interface visually.

After digging around a little I found an article on StackOverflow that showed how to manually add the components to the Visual Studio toolbox. I followed those instructions, reopened my SnapShot! solution, and everything seemed to work just fine.

Dynamics CRM SDK

Since I have to communicate with Dynamics CRM 2011, 2013, 2015, and 2016, all from a single application, I had settled on using the CRM 2013 SDK DLLs to provide connectivity to the different versions of CRM. It was a happy medium that allowed me to access almost all functionality points of Dynamics CRM, regardless of version.

The 2013 DLLs were also .NET 4.0, which was the highest level of .NET that I could use with Visual Studio 2013.

Then I started running into issues where I need to use or access features and functionality from Dynamics CRM 2015+ which means I have to be using the 2015 DLLs, which are .NET 4.5.2.

Once I upgraded to VS 2013, I had access to .NET 4.5.2 and was able to convert all of my projects to the newer .NET, replace the CRM 2013 DLLs with CRM 2015 DLLs, and everything worked as it did within Visual Studio 2010.

Note: I did not move to the CRM 2016 DLLs due to an architecture change where functionality was moved and I have seen reports regarding the replacement technology that I didn’t wish to encounter.

Summary

Overall, it only took me a couple of hours to get the kinks worked out and I was really pleased that everything worked the way it did.

Now I can get back to adding more features and functionality.