For several years now, I’ve held the opinion that isolation is becoming less and less important when it comes to Application Virtualization of general end users applications. You see, isolation was great when DLL hell was a major issue but developers have got better at producing a higher standard of application. DLL Hell is all but gone, in my experience at least. If you’ve ever demo’d AppV, ThinApp or any other application virtualization solution before, you’ve likely presented yourself launching multiple versions of Microsoft Word side by side on the same machine. That’s still pretty cool but now some applications are even developed to work side by side with previous or later versions of themselves! So, what’s to be gained with isolating your applications?
Not all applications will allow multiple versions to work side by side. And although dll hell is not a widespread problem any more, application conflicts can still occur, particularly on a shared RDS session host or a XenApp Terminal Server in which you may have many, many applications hosted and running concurrently. Containerization is also becoming popular which relies heavily on isolation.
Am I saying isolation should be scrapped entirely?
No, not at all. I still see the value in it, for the reasons I stated in the previous paragraph BUT I’d love to have the option to switch the isolation off when, I so please!. If I have an application with drivers, I can either spend hours trying to extract the drivers or just proceed with a traditional local install. If I have an application with COM+, I can again spend valuable time extracting this. It’s not a good use of my time! We also all likely hear that companies get around 80% of their applications packaged and delivered with a solution like App-V or ThinApp. How are they handling the other 20%? Wouldn’t it be great to handle all applications the same way and without issue?
In my efforts to extract drivers in the past, I believe I could see part of the challenge for Application Virtualization vendors and why drivers are a limitation for so many in the market e.g. Microsoft App-V, VMWare ThinApp , Spoon.net, Cameyo etc. Developers are not consistent with how they deliver their drivers. I’m sure these vendors would love to have a way to simply detect the application you are trying to package has a driver, automatically take that driver out and deliver it side by side with the virtual application, maintain the isolation and integrity of the app BUT I’d also bet that it’s very difficult or impossible to try to code a solution to handle these when there’s no standard being followed.