Why is it so hard to get Lawson Smart Office to work well with a desktop virtualized environment? I will try to answer that question is this article.
What is a desktop virtualized environment? You can read one definition on Wikipedia, http://en.wikipedia.org/wiki/Desktop_virtualization but explained briefly it is an application that makes it possible to execute other applications like they where installed locally but in fact they are executed on a server somewhere and only the “screen” is transferred to the client machine. That means no code from the application is actually executed on the client machine.
Microsoft Terminal Services and Citrix are probably the most popular desktop virtualized environments. It is possible for users to start separate programs and make them appear like they are running locally. It is also possible to let the user get remote access to the entire Windows desktop.
Desktop virtualization is very popular because it makes life easy for administrators, there are no users that can install something on the machines that can interfere with important applications and an application is updated the same time for all users etc.
Lawson Smart Office is using a Microsoft technology called ClickOnce for client installations. ClickOnce makes it very easy to deploy Smart Office because users are not required to have administative rights on their PC.
One of the reasons why this is working is that all binaries in a ClickOnce installation are installed into a “sandbox” which only lets the user that installed the application access the binaries and the data files. This is great when installing locally, but not ideal used in a desktop virtualization environment, in particular when having a farm of servers. So what is really happening?
The Smart Office binaries and data files are installed into C:\Users\<users>\AppData\Local\Apps\2.0 and that location is not included when using Windows Roaming Profiles. This becomes a problem when having a server farm where the desktop virtualized environment is executed and it is very common to make use of a farm, both to gain enough performance but also for failover. Normally when having such an environment Windows Roaming Profiles is turned on and everything below the path C:\Users\11914\AppData\Roaming (and some more) is copied to a storage server every time the user logs out or exits a program. The next time the user logs in or starts a program those files are copied to the server that is currently executing the desktop or the application.
With ClickOnce the problem is that the binaries are not in the path that is being roamed. If a user installs Smart Office in a virtualized desktop environment where Windows Roaming Profiles is turned on everything will work fine as long as the user gets directed to the same server machine. If not, then a broken Smart Office link will be visible in the Windows Start menu because Smart Office was not installed on this particular machine. If the user installs Smart Office again everything will work fine. This is very hard for users to understand.
I should mention one more thing about Windows Roaming Profiles. It is possible to configure Windows Roaming Profiles to delete all local files as soon as the user logs out in order to save disk space. This will make life much worse for the user because the Smart Office link in the Windows Start menu will always be broken.
There are customers that have created special packages with the binaries from a Smart Office client installation that are automatically copied and extracted to the correct location whenever a user is starting a virtualized desktop.
One solution to this would be to create a MSI installation package, which is a better way to install in a desktop virtualization environment. From Smart Office 10.0.0 we have created a MSI installation of the Smart Office client and the next chapter will explain some of the things that needs to be taken into account before deciding to start using the MSI installation.
ClickOnce vs MSI (Windows Installer)
Both ClickOnce and MSI have their pros and cons and below I have listed the most important ones.
A ClickOnce application is installed from an installation point and every installation is unique. The Smart Office install process even let you name each installation with a suffix which makes it easy for the user to find the correct installed Smart Office in the Windows Start menu.
It addition to getting a separate link pointing the Smart Office client to the right server, each installation of Smart Office on the client have its own binaries which makes it possible to have one Smart Office installed for production with version 10.0.0 and another Smart Office client installed for test that uses version 10.0.2.
A MSI installation can only be installed once so it is not possible to have two versions of the Smart Office MSI installed at the same time. If there are some other users that need to install other Smart Office clients maybe they can do it locally or a separate desktop virtualized environment could be created.
A new feature in Smart Office 10.0.3 is that it is possible to start the LawsonClient.exe (installed with the MSI installation) with parameters of where the Smart Office server is located and where the features for Smart Office are located. These parameters overrides the values specified when installing the Smart Office client using the MSI. This feature makes it possible to create shortcuts that start Smart Office with different server URLs. This may solve some problems but remember that the Smart Office client and the Smart Office server must be of the same version. If you have a test and production environment of different versions, this feature cannot be used.
The Smart Office client consists of the framework and the Smart Office features executed inside of Smart Office. A Smart Office feature can be removed/added/updated without re-installing the framework. The framework is included in the ClickOnce installation and the MSI package, the features are automatically downloaded (if needed) when the Smart Office client is started. The features are managed in the Installation Point Manager.
The Smart Office features are downloaded in the same way for both the MSI install package and the ClickOnce installation point.
Updates of the Smart Office framework differs when using ClickOnce installation point and the MSI install package:
When using a ClickOnce installation point the Smart Office client checks if there is a new version deployed on the installation point whenever the client is started and if there is a new version deployed, the new version is automatically installed.
When using the MSI installation package it is up to the administrator to deploy updates and new versions. Remember that the Smart Office client and server must be of the same version otherwise the Smart Office client may fail to start.
The following features depend on a ClickOnce installation and cannot be used when installing the Smart Office client with a MSI.
- The ability to e-mail a link to another user with a bookmark that will start Smart Office and open up the correct program and go to the right form.
- Other applications cannot make use of the named pipe to communicate with the Smart Office client. (No products delivered from Lawson are using this functionality today.)
- Other applications cannot use the port opened by the Smart Office client for communication.
- Exporting to Excel and similar functionality may be a problem.
No testing is being done in a desktop virtualization environment
Smart Office is not being tested in a desktop virtualization environment and there can be scenarios that are not working, especially when integrating with other applications like Excel and Outlook. The official statement from Lawson is that running the Smart Office client in a desktop virtualization environment is allowed but not fully supported. Eventual issues must be possible to reproduce in a normal ClickOnce installation.
Good things to know
When uninstalling Smart Office installed with the MSI, no user files are deleted. The user files must be deleted manually for each user and the files are located here, C:\Users\<user>\AppData\Roaming\Lawson Software\Lawson Smart Office
When turning on Windows Roaming Profiles it can be a good idea to remove all features that are not being used to reduce the amount of files that will be roamed. Use the Installation Point Manager to remove deployed features.
If Windows Roaming Profiles is enabled for the users there is no meaning to use the roaming functionality in Smart Office as well. The roaming functionality is turned on by default but can be turned off in the Settings Editor on the Mango Core tab.
Smart Office is made to look good on a local machine with a decent graphics card. When executing inside of a desktop virtualization framework the graphics card may be overloaded or might not be used at all. Make sure to have the latest drivers for the graphics card. There is also some graphical functionality in Smart Office that can be turned off to gain performance.
– Enable 3D animations
– Enable radial gradients
– Enable bitmap effects
– Enable 2D animations
Turn on the following setting to get the best performance.
– Enable high contrast
It can be a good idea to lock the settings so the users cannot change them.
Desktop virtualization environments are great as long as you know the limitations before starting to use it. If the users only needs to use one Smart Office client, normally the production version, and is not dependent on functionality to send bookmark links etc. then Smart Office will work great.
Desktop virtualized definition
Citrix and ClickOnce workarounds