So it was time to get a new machine, the old one – an EliteBook 8470w having 16 gb and i7 quad core was quite well.
Pretty heavy but very reliable with a good overall performance. It started to get outdated, but the strongest reasons to replace it have been
- I need to install SharePoint 2013. Nothing problematic actually, unless you have SharePoint 2010, Sql Server and a couple of Visual Studio installations on your machine
- To be efficient in development on different environments, I need to have my development environment installed on virtual machines, as switching certain installations is quite cumbersome
To make a long story short: After having uninstalled SharePoint 2010 and installed SharePoint 2013 (there is actually no upgrade), my machine didn’t work correctly anymore.
- Visual Studio didn’t compile or it wasn’t possible to start it up. Fails with some unspecific exceptions with hints that didn’t work
- Different OS tools (like remote desktop) couldn’t be started, guess due to loss of PATH variable content which only happens when PATH grows over a certain size
- Machine did freeze or was pretty slow
It would have been necessary to do a complete new install, which I didn’t want to do on the old machine as it normally is quite costly in terms of time.
So there it was, the new one:
Actually the HP zbook 15 is quite a monster. Very heavy, very powerful. Really an update in terms of CPU and memory (32gb), already equipped with an SSD as well as a normal hard disk.
And there it is, the real big effort of installation of all the things you might want to have installed on your developer machine. Yes, the usual ones, VS 2015, resharper, Sql Server, or the like.
But what about all the others installations? 7z, notepad ++, fiddler, google chrome, firefox, virtual clone drive, there are plenty.
I am really sick of sitting in front of a progress bar until it is done, so it was time to pimp my installation practices :-).
When working with the LAMP stack, it is quite usual to use Ansible and vagrant to set up the complete development environment by scripting. Actually without deep knowledge about linux and these tools, it is quite heavy for windows based developers to get this running on windows.Sure there are guys who does that like in Running Vagrant with Ansible Provisioning on Windows.
To keep it simple for me and the developers in the company – and not to raise the complexity for people who want to use or tweak it, I searched for an alternative and found it with Chocolatey.
I decided to have a host machine that contains the most usual things, and run the developer machine inside of a vm. Why vm?
- The machine actually should be powerful enough to make working in a vm easy and barrier-free
- When having to deal with different products/ projects it is always hard to keep all the components/ installation side by side. This often leads to repetitve installations of e.g. the right DevExpress version. Esp when it comes to SharePoint, having the need to strictly develop under 2010 or 2013 or even in earlier versions it begins to really suck.
So my tale started, installation with that script.
First some easy things like creation of a certain folder structure that I am used to. After that a lot of programs. That looked pretty promising. It was not 100% reliable, depending on the OS that is used. Windows 10 restarted itself while running that power shell script, so I had to execute it twice.
The nice thing about it is, when running it a third time, it doesn’t do anything anymore, as chocolatey is smart enough to detect when something has already been installed. For upgrading there is another command available.
Another problem has been that there will be message boxes coming up, when a certain package’s requirements/ prerequisites are not already installed on the machine. Actually on Windows Server 2012 R2 there isn’t .net 3.5 framework installed out of the box. Still much better than do it manually.
After running the script I installed SqlServer 2014 R2, Visual Studio 2015, Office 2016 beside some more tools (open xml sdk 2.5) that are unfortunately not available as a package.
After all, everything was in place. I even tweaked the my script that I can use the same script with parameter to install things on host and dev vm. This is because certainly also the host machine needs installation like 7zip etc.
Then, as a final step, I installed Google Drive and Cloudfogger. Actually a very good combination, comes for free, and garuantuees that you’ll never add anything uncrypted to the cloud.
But then it happened.
- Hyper V virtual machines couldn’t be stopped anymore.
- The machine didn’t shutdown correctly.
- Even turn off the machine didn’t work. Actually the host and client machines have both been Windows 10 machines
- Processes cannot be killed by task manager or even procexp. So the host machine must be shut down. After 10 minutes I needed to switch it off – I am really not the patienced guy.
What was the reason? I didn’t find it out with that windows 10 machines. Took me half a day. Then I decided to set it up again. I had everything in place, so it took actually 3 hours to let everything be installed again.
I changed the OS. It was Windows Server 2012 R2 now, which really fits better from my point of view for a developer machine than Windows 10. I would have chosen Server 2016, but the beta, even if it is a pretty stable one I was told, didn’t gain confidence.
I was certainly some kind of more concious than before. I shut down the machines more often to understand which installation may cause the problem.
So as some of the last steps I installed Google Drive, worked fine when Internet explorer protection is switched off. Looks like google uses some kind of internet explorer library to authenticate the user. Then Cloudfogger.
After having configured Cloudfogger, the hyper v virtual machine couldn’t be shutdown. Waiting some minutes, no reaction. Shut down the host, same procedure, doesn’t work. Removing CloudFogger or making it disabled leaves the machines running fine.
Any ideas, guys? I have no clue what can that be?
— UPDATE —-
After having spend two more days partially on that issue and trying out what can be the reason, I had to give up. I searched for alternatives and found BoxCrypter, also a free crypting tool. Unfortunately it has different approach as it is some kind of limited in functionality.
I anyway did change to use BoxCrypt and it does work like a charme now.