Microsoft App-V lets you transform your applications into dynamic packages that follow the user wherever they are and stream them on-demand whenever the user needs them.
On one hand, it is great to have the application run in its own Virtual Bubble, with its own Registry, File System, and Virtual Services but on the other hand, many applications have dependencies, that includes middleware like .Net Framework or Java Virtual Machine, which raises a pretty good question: Why would I want to virtualize my applications, if I still have to deploy their dependencies?
That’s a good question; you could deploy middleware with your standardized OS Images, but still that doesn’t answer the question, what if a new version of your application gets released that depends on a new version of that middleware? Now what?
As you see it’s a bit a tricky to deal with those dependencies, and that’s why Dynamic Suite Composition helps you create dependencies between applications which I’m going to detail later on.
Components of App-V
The main four components of App-V are: the App-V Management Server, App-V Streaming Server, App-V Client, and App-V Sequencer.
· The App-V Management Server is the component where you import your virtual applications, define access rules, get usage reports, and even stream applications to clients.
· The App-V Streaming Server has a name that says it all, it only streams applications to clients, a component that can be placed in branch sites.
· The App-V Client is a client side component that reads configuration data from the server and acts accordingly (where is the virtual application? What is the path to the package, where should I place shortcuts? …etc.) And eventually requests updates (if any) and runs that application from the App-V Server.
Now, the last component is the star of our show, the App-V Sequencer, to be quite honest, there is no “art” configuring any of the App-V components, it is all in the sequencer! What it does? It’s the one that transforms your applications into Virtual Applications using a process called “Sequencing”. It is the first thing you do in your application transformation process, the only reason I put it last is so I can have all the space I want to talk about it.
The New Sequencer
Recently, Microsoft has released the SP1 for App-V Sequencer 4.6, a lot of great changes has been introduced with a serious focus on your sequencing experience.
Back in the days before SP1, sequencing an application was sometimes unpredictable, meaning that you sequence an application, it runs fine on the sequencer but still you have a chance of failure on the client, and that’s why the diagnostics subsystem has been introduced, so you can catch problems at the sequencer before even testing or deploying the virtual application to clients.
With App-V 4.6 SP1 Microsoft integrated Sequencer Diagnostics, which lets you know exactly how the application is behaving and where is the data being stored. For example, you could install an application and configure the sequencer to monitor the installation path, only to find out that the application stores some of its critical components outside that path like AppData, which isn’t monitored, causing the application to fail on the client.
Another great feature of App-V 4.6 SP1 is Package Accelerators, if you’re familiar with the App-V Sequencer, you know you had to look for Sequencing Recipes online to make sure you do it right. What Package Accelerators do is automate the sequencing process, so they do most of the tricky work for you.
In addition to Diagnostics and Package Accelerators, App-V 4.6 SP1 has made it easier to create dependencies between applications. As we said before applications run in their own virtual bubble isolating applications from each other and the underlying operating system, in App-V if we want virtual bubbles to interact, we have the option of controlling the process and allowing the interaction, using an App-V feature called Dynamic Suite Composition (DSC). In this post I’m going to show you how to create a relationship between .NET Framework 4 and an Expression Studio 4 that needs .NET Framework 4 to function properly, we’ll accomplish this using DSC.
The Sequencing Process
In my example I’ll be sequencing Expression Studio Ultimate 4 which relies on .NET Framework 4, in order for me to get any of the Expression components to run, I need .NET Framework to be present on the machine.
So what I’m going to do is virtualize .NET Framework 4 as a middleware then virtualize Expression, and finally create a dependency between the two, this is how it will be done:
1. Virtualize .NET Framework 4
2. Save the virtualized .NET Framework 4 to a file server
3. Revert the Sequencer VM to its clean state
4. Get the virtualized .NET framework 4 from the file server
5. Expand the package to the local system
6. Create a new package for Expression Studio
7. Save the virtualized Expression Studio to a file server
8. Use the Dynamic Suite Composition to create a dependency between the two
Sequencing .NET Framework
Get the offline installer for .NET Framework and make sure you take a snapshot for your sequencing VM, also disable Windows Search, Windows Update, and Windows Defender services so the process goes smoothly.
Now fire up the App-V Sequencer 4.6 SP1 as an Administrator, failing to do so may result in installation failure, then select a new package from the “Packaging Method”, once you select it choose that you want to virtualize a Middleware from the “Package Type” as you see below:
Follow the wizard to complete the process then do Step 2 and Step 3 from above.
Sequencing Expression Studio Ultimate
As mentioned earlier, revert back the VM to its clean state, and get the sequenced .NET Framework 4 from your file server.
The next step would be Expanding the package as you can see in figure 2.0, it’s the process of “Devirtualizing” your package, what it does is similar to installing the package to the local system, we need this step so when sequence Expression Studio we don’t face an error stating that .NET Framework 4 isn’t present.
When you select to expand a package you will be prompted to specify the SPRJ file location, then the process will go on, before SP1 you had to install all the prerequisites for an application in order for you to get it sequenced properly, the Package Expansion saves this work.
At this point your sequencing machine is ready to create a new “Standard Package”, in our case it’s going to be Expression Studio 4.
Sequencing Expression Studio 4 and Create the DSC dependencies
From the App-V Sequencer main menu choose to create a new package, specify the location for the .exe installer and complete the wizard.
Once you’re done, save your Expression Studio’s virtual package to your file server and create the dependencies using the Dynamic Suite Composition tool or manually using the OSD files.
If you’re going to use the tool, import both packages and choose Expression as your Primary package, then highlight .NET Framework’s 4 and add it as a mandatory dependency by clicking the Add button.
App-V Sequencer 4.6 SP1 adds so much flexibility and automation to the sequencing process, with the new features you will be able to easily create new packages, know exactly how applications behave, and automate the whole process with accelerators that most of them will be from trusted sources that have tested them over and over again. This predictability and ease of use will save countless hours from your time.