The AppLife Update Blog

So, here’s my scenario. I have multiple software products that my teams are developing and I’ll be deploying and maintaining these products on many deployed Windows-based computers. And once deployed, my teams will be continuing development and adding features, frequently needing to update those deployed installations. Can you relate to my scenario? If so, read on…

The AppLife Update Deployed Application Maintenance Solution

Introducing AppLife Manager

The AppLife Manager is a Windows Service and accompanying System Tray based User Interface that installs on a Windows Client PC and connects to one or more AppLife Servers. Once connected, the AppLife Manager will discover new applications that are configured to target that individual client and automatically install update packages for those applications.

No integration within the application’s source code is required.

AppLife Manager ships with AppLife Server and is available with AppLife Cloud subscriptions. By downloading and installing AppLife Server (or starting a Hosted AppLife Update subscription), you’ll have at your disposal an instant application deployment and maintenance system.

So, let’s get started with a little demonstration. I’ll go in reverse and demonstrate the end-result first, then cover the steps on how to get there.

Deployment with AppLife Manager

This link downloads an msi that I need to install. This requires admin privileges. Once installed, I get this little gem in my System Tray.

And Clicking on that, opens the AppLife Manger window.

There’s not much to see yet, but once we add our server it’ll get a little more interesting. So, let’s do that.

Step 2 – Register an AppLife Server.

Servers can be added by clicking on the Add Server button.

Adding a server requires administrative privileges, and a UAC prompt will be presented. Enter the server URL and a Client Access Key. This Client Access Key is important and is used on the AppLife Server dashboard to target which clients will have access to applications and updates.

When we finish adding the server, something interesting happens. Any applications that target the designated Client Access Key will be automatically downloaded and installed. In this case, there is only one application (AppLife Sketch).

A link was added to my start menu as part of the update that performs the installation, but I can also launch the application directly from AppLife Manager by clicking the Start Application Button.

Now that AppLife Manager is managing AppLife Sketch, it will check for updates for this application at the configured frequency and automatically download and apply any future updates, with no user interaction required.

Okay now that we know where we are going, I’ll discuss how we got there.

Deploying an Application

We just effectively performed an XCopy deployment of a .Net application. We could have executed MSI as well.

Here’s my application:

It’s called AppLife Sketch, and it’s a WPF application that consists of an exe and a bunch of assemblies. A common scenario.

So, in preparation for distributing this application with AppLife Update, we’ll need to answer a few questions.

Where do I want to install the application on the client? When deciding, we can use any Windows environment variables. We’ll install Sketch for all users in the Program Files directory.<%ProgramFiles%>\AppLife\Sketch

Do I want the updates to be installed automatically, without any user interaction?
I can choose to have AppLife Manager automatically detect updates and install them, or have the AppLife Manager prompt the user through the Windows System Tray to apply updates. I’m going to choose to have the updates automatically applied. If the application is running, the user will be prompted and offered a chance to defer the update until a later, more convenient time.
There is a third option as well, which is to have the updates automatically applied during designated off-peak hours only. I’m not going to configure that option for now.

What is the name of the application process? AppLife Manager uses this to determine whether the application is currently running, and to shut it down if needed.Kjs.AppLife.Sketch

Who do I want to make the application available to?
It can be anonymous, or limited to a specified list of clients. I’m going to create a list and allow only a specific Client Access Key access to the application and its updates. A Client Access Keyis a value that is entered on the client, as the server is registered in AppLife Manager.AppLifeBlog

Anyone client using this Client Access Key will gain access to this application.

That’s all I’m going to need to know. Now I can get started.

Creating the Application on the Server

The first thing I need to do is create a new application on my AppLife Server. You could also provision a new application on the AppLife Update cloud service. My server is at http://demo.applifeupdate.com.

I’ll also create the Access List for this new application and assign a Client Access Key, so that it’ll be available when I set up the update build project.

With an application available on AppLife Server, next I’ll create my AppLife Update project in AppLife Builder. To do so, I’ll first need to download the AppLife Update product, if not already done.

Click the Create a new project link. This will create a new AppLife Update .aup project file. A New Project Wizard is launched and we’ll select an AppLife Manager Maintained Application.

To login to the AppLife Server, provide the URL and your credentials.

My applications that are not yet configured are listed.

Once I select my application, I can configure the application for our desired behavior. Here is where I determine where the application will be installed, the process name and the primary executable.

And finally, I select the list of Client Access Keys that will have access to the application.

When I finish the wizard, the application is configured on the server and I’m now ready to create and publish update packages that will be distributed through the server.

Creating the Update that Installs the Application

As mentioned, we are going to effectively XCopy deploy the application. We’ll use three actions in the update.

Add & Replace Files – This action will add the list of files that comprise the application to our designated Application Directory. Within the action editor, Application Directory is what we defined previously (%ProgramFiles%\AppLife\Sketch).

Add a shortcut to the Common Start Menu. This shortcut will launch the application.

Set the current version of the application for AppLife Manager. The default method of identifying the current version of our application on deployed clients is through the AppLife Manager configuration. When using this method, the Set Update Version update action will maintain the correct version stamp of the updates.

That’s it. When we publish the update, we can target any previous version, as this update replaces the application in its entirety.

To create the update, click the Create an Update button and walk through the publish wizard. Here, you’ll define what the version of this update is, what previous versions can successfully apply the update, and summary text desired.

Then we log into the server and define the access mode.

And that’s it. Our application is set to be deployed.

Summary

With AppLife Server and AppLife Update, we can very easily deploy and maintain applications with no user interaction required. We can control which deployed clients get what applications and/or individual updates. We can do this without any source code integration or, or even opening a development environment. For more information on AppLife Server and AppLife Update, visit the online help system.