Tag: software-development

Reproducible development environment

Photo by Tim Gouw on Pexels.com

I’ve recently got a question about how should or should not, how and when a desktop app development team’s separate developers move to next version of a framework. The question was merely about patch version change. The case is part of developers happened step forward and some developers got error due to patched version was not installed on their computers.

This particular case was about move from .NET 4.7.1 to .NET 4.7.2. This is of course for the case where particular Windows version doesn’t come with required framework version pre-installed.

So apart from decision for the team to baseline solution framework dependency to .NET 4.7.2 and proceed and install manually .NET 4.7.2 where it’s missing on developer computers, I got an idea about the problem would be better solved to find and adapt a solution where development environment both specified, distributed and potentially automatically executed the same way as in containerized environment, like docker. Or other good example local virtual development environment management like in python frameworks and tools – for example anaconda. Important part of the idea is that environment requirements and dependencies are managed the same way as most package management solutions do and reside of course under code source control.

Spontaneously I couldn’t come with anything better than Chocolatey or Nuget with plain Powershell scripting. Could there be better established and more complete tools and solutions? The idea is to have something which is not yet completely virtualized machine as virtualbox with vagrant. But more like automated isolated package environment with slightly broader platform and stack independence so it could be for example both .NET framework, packages but also let say python and javascript environments. So what I could start thinking is something more like ansible and similar tools. The problem is that they have quite big learning and implementation curve. Still could be not natural for part of developer roles to use as a local developer environment automation.

So I have no good answer as for now but will investigate and test appropriate tools. See if it is possible to find good solution for the case. I will give a try and test to make Chocolatey environment specification or simply powershell script.

Thanks for reading and would be interesting to know if you have similar challenges and how you approach them. Maybe there are some good solutions out there or some of you succeeded to do something good! You are welcome to share your experience if you will! It would be really interesting!