FlexApp technology is a popular tool used for application layering, virtualization and delivery. While some of its features are well-known, there are some that are overlooked and not talked about enough. In this blog post, we will explore some of the under-the-hood features of FlexApp and explain how they work.
AppData and HKCU Handling
One of the key features of FlexApp is its ability to handle AppData and HCKU. When an application writes into these areas, FlexApp has special handling for layering. This is because these paths are often used as part of the application’s normal install routine, or they may be written to by the packaging administrator during testing or setting default preferences. If these areas of the profile are captured into the layer and do not exist in the user’s profile, FlexApp will physically copy or write them into the user’s profile. This ensures that the user has the necessary read and write access to these areas of the profile going forward.
Corrective Profile Path Tattooing
Another important feature of FlexApp is corrective profile path tattooing. This refers to the practice of capturing the profile path of the packaging administrator and storing it in the layer. This can create issues when an application stores a path to a non-existent location in the HKCU’s registry. FlexApp will flag this kind of event during the packaging process so that on activation of the layer, the registry value that points to the non-existent path can be corrected and pointed to the user’s correct profile path.
Micro Isolation
Micro isolation is a feature of FlexApp that helps to handle conflicts between layers. While FlexApp is not a full-blown isolation technology like Microsoft App-V, it does have some light isolation between layers. This means that when a conflict occurs, each layer will be redirected back to its own version of files or registry. For example, if each layer has a different version of a DLL in a common location that would normally be a last virtual write wins scenario and could crash the application, FlexApp’s micro isolation feature will ensure that each layer has access to its own version of the DLL. Here is a quick demo of Micro Isolation visually that should help your understanding of the technology.
Session Isolation
Session isolation is a feature of FlexApp that allows for handling different applications for different users when working on multiuser systems like Citrix Virtual Apps or Microsoft AVD. This makes layering on multiuser systems extremely flexible. This feature has also been extended to on-boot applications, which I recently wrote about here.
In conclusion, FlexApp’s unspoken features are an important part of its overall functionality. These features ensure that the user has access to the necessary parts of the profile, prevent conflicts between layers, and make layering on multiuser systems more flexible. Understanding these features can help users get the most out of their FlexApp technology and improve the overall user experience.