One of the greatest IDE (Integrated Development Environment) that exists nowadays is Microsoft Visual Studio. It was introduced to the public in 1997 and 20 years later has become a big set of software and tools and add-ons and plugins and… It helps software engineers, developers and testers to build excellent solutions.
The last version is Visual Studio 2017 (v15.6 March 5, 2018). It comes in three “flavours”: Community, Professional and Enterprise.
When we think about updating this kind of tools, one big caveat appears: Will my current solution run smoothly with the new version? Moreover, what about my DevOps ecosystem? (Automatic builds, Test automation, Deployment…) Many things must be kept in mind (well, maybe it is better to keep them noted and documented 😉). Don’t worry I have already done these changes and most of the times everything works ok. However small problems arise. If this is your case, and you are thinking about starting this change read below and get some time saver advice.
Once you update to VS2017 a Solution, probably some libraries can be updated also (.Net EF …). It is easily performed with NuGet but think carefully about it. To make small changes is better than big releases and always check that you can go back and, of course, test, test, test…
Solutions and projects: VS2017 can read and open the projects and solutions created with the previous release (VS2015). If you are upgrading from an earlier version, VS2017 itself modifies the files. When these changes are finished, you can work normally with the new visual studio.
Once the solution is modified for Visual Studio 2017, it can also be opened with Visual Studio 2015 and this can be annoying if you have both versions in the same box. The solution is easy, open the SLN file and find “MinimumVisualStudioVersion” if you inform this tag with 18.104.22.168 (Visual Studio 2017 is coded 15 internally) you will not be able to open it with VS2015.
Automatic testing, aka NUnit, NSubstitute… keep in mind that if you upgrade your desktop IDE it is easy to update with NuGet these libraries, but no one will automatically update the automation solution…
Another curious side effect: if you are using NUnit (Well done! You are testing automatically your solution or part of it 😉) and have some automation (Jenkins for example). Then:
someVariable = someOtherVar ?? throw new Error_A_Null_Value_Has_Arrived_Here
probably will not work on the automation side but it’s ok on your IDE. Change this line for an if…then…else classic sentence and it will work.
I will be very glad to know if this text has helped you. Maybe you have some comments or different findings on this topic, so what about to leave a message?
Written by Antoni Tovar