United States Change | All Microsoft Sites


In a normal computing environment, applications are installed directly into the operating system. Since they all write to shared system files, applications will often conflict with one another—often leading to crashes and instability. Microsoft Application Virtualization eliminates these conflicts because the virtual applications are never installed on the local system; there are absolutely no changes to files or registry settings on the local machine.

With application virtualization, each application runs in its own protective runtime environment, commonly known as a virtual bubble, isolating them from each other and the underlying OS. If necessary, the administrator can configure virtual applications to interact with each other or share components by using Dynamic Suite Composition (DSC).
In a physical environment, every application depends on its OS for a range of services, including memory allocation, device drivers, and much more. Incompatibilities between an application and its operating system can be addressed by either server virtualization or presentation virtualization. But for incompatibilities between two applications installed on the same instance of an OS, you need application virtualization.
Applications installed on the same device commonly share configuration elements, yet this sharing can be problematic. For example, one application might require a specific version of a dynamic link library (DLL) to function, while another application on that system might require a different version of the same DLL. Installing both applications creates a situation, where one of them overwrites the version required by the other causing the application to malfunction or crash. To avoid this, organizations often perform extensive compatibility testing before installing a new application, an approach that's workable but quite time-consuming and expensive.
Application virtualization solves this problem by creating application-specific copies of all shared resources. The configurations an application might share with other applications on its system—registry entries, specific DLLs, and more—are instead packaged with it and execute in the machine's cache, creating a virtual application. When a virtual application is deployed, it uses its own copy of these shared resources.
Application virtualization makes deployment significantly easier. Since applications no longer compete for DLL versions or other shared aspects of their environment, there's little need to test new applications for conflicts with existing applications before they're rolled out. And these virtual applications can run alongside ordinary, installed applications—so not everything needs to be virtualized, although doing so avoids many problems and decreases the time end-users spend with the helpdesk trying to resolve them. An effective application virtualization solution also enables you to manage both virtual applications and installed applications from a common interface.