“Vail” Launchpad and Its Extensibility

Hi there! We are on to our second edition of Vail Engineering blogs, and this time we are talking about Launchpad - what it is, how it can be extended and why developers should care about it. I aso want to point out that we got pretty good response to Vail SDK with some of our MVPs covering it pretty well by now. You can check out some of these very informational posts here:

https://asoftblog.wordpress.com/2010/05/05/developing-an-add-in-for-vail/

https://blog.tentaclesoftware.com/archive/2010/05/07/89.aspx

https://blog.tentaclesoftware.com/archive/2010/05/08/90.aspx

What is Launchpad?

Launchpad is a light weight and extensible client-based user interface that we built for Vail. It was born out of a couple of pain points that our customers experienced from Home Server v1. While Home Server v1 provided the ability for developers to add what we call ‘administrative’ or ‘server management’ tasks to the Admin console, it did not provide any means by which a day-to-day or non-administrative task could be presented to users in a coherent manner that resonates its association with Home Server. As a result we started seeing add-ins for day-to-day consumption of home server capabilities that were deployed to Admin Console, but did not belong there since they were not administrative tasks. We realized that there is a need for providing a coherent and consistent grouping as well as entry point for home server related tasks that everyone in the household can perform from their client PCs. This was the first pain point.

The second one, and perhaps the more significant one of the two, was the limitation around having matching usernames and passwords on the server and the PCs. If you recall, in Home Server v1 we require users to create user accounts on the server that had the same username and password as that of the client PCs so that they can seamlessly access the shared folders on the server as soon as they login to their PCs. This generated lot of confusion with consumers, as was evident from the feedback that we got. With Vail, Launchpad acts as the login UI for signing the user onto the server, thereby granting them access to the Server shares and other platform services exposed via the SDK. We no longer have the requirement to have the user accounts matching on server and client, instead users can use Launchpad to ‘sign-in’ to the server with any user account and password combination that was set up in Dashboard!

In short, Launchpad serves the following purposes:

  1. It is the entry point for the day-to-day tasks related to Windows Home Server from the client PCs.
  2. It eiminates the need for matching usernames and passwords setup between server and client, and eliminates the password sync dialogs.
  3. It Provides a logical and centralized location where all home server related tasks are exposed, resulting in much better awareness of home server and its capabilities.
  4. It allows everyone in the household to have visibility to developers' add-ins, than just home server administrators.

Why should developers care about Launchpad?

So far, home server add-ins or applications were focused on ‘Administrative' kind of tasks that extended the Admin Console. The audience for such add ins were limited to one person in the house hold, most possibly the head of the house hold who does the ‘Administrative tasks’ on the computers. With Launchpad, we now have the ability to create end-to-end add-ins with user interfaces targeted at everyone in the home who uses a PC joined to home server. A typical example can be an addin providing the ability for everyone in the home to sync a folder on their PC to home server, and then subsequently to the cloud. The launch point for a configuration UI for adding or removing folders included in the auto-sync scenario above (which is specific to the user’s PC) would be Launchpad, and not Dashboard.

As you can see from the example this is an opportunity for developers to create add-ins with multiple facets – one server side component targeting the administrator and one client side component targeting everyone in the home. The result is more people using your add-ins and more word getting spread about your product/addin. With our add-in deployment mechanism, you can package both these components together and we’ll take care of deploying and installing the relevant pieces on the server and client appropriately as well (more on this in a later post). So, as you can see, we have built a powerful SDK for developers to build a truly end-to-end add-in spanning the client, server and the cloud.

When to extend Launchpad and when not to

Just so that we give a clear guidance on extensibility of Launchpad vs Dashboard, I am going to call this out specifically here.

You extend Launchpad when…

  1. You have a task or resource/UI that you expect everyone in the household to access/ use. Eg: Backup my PC, access shared folders etc…
  2. The task IS NOT related to the management or administration of the Server.
  3. You DO NOT need Administrator privileges on the server to do the task.

You extend Dashboard when…

  1. You have a task or resource/UI that you expect only the head of the household (home Admin – typically the person who sets up Home Server) to access/use. Eg: Add a hard drive, create user account etc..
  2. The task IS related to the management or administration of the Server, and not a day-to-day one.
  3. You DO need Administrator privileges on the server to do the task.

When in doubt, please do not hesitate to reach out to us.

Extending Launchpad

Adding entries to Launchpad

You can add entries to Launchpad to point to a client application that makes use of Home Server in one way or the other. Your entries will appear under a category called ‘Addins’ on the main page of Launchpad.

Adding categories to Launchpad

If you want to add multiple entries to the Launchpad UI, we recommend grouping them under categories. Categories can be added upto three levels deep.

Example:

Addins-> (Built-in category)

              Company-> (Your category)

                       Antivirus -> (Your sub category)

                                  System Scan (entry)

                                  Scan Schedule (entry)

                       Online Backup-> (Your sub category)

                                  Backup Now (entry)

                                  Backup Settings (entry)

Enhances coming in future builds

In the later builds, we are looking at adding capability for targeting Launchpad tasks to specific users who are part of a User Group on the Server. For example, you can target only users who are part of ‘Remote Access Group’ to see a link to your remote portal hosted in Home Server. We are also making it so that Launchpad automatically authenticates the machine to home server using the username and password stored, if the user choses to do so. So, as soon as the user logs into the local machine, they are authenticated to Home Server so that all the services that require authentication to server work seamlessly. Another enhancement that is coming is the ability to control the alerts that are seen from the tray icon. User would be able to choose from three options – No alerts, network alerts or local & network alerts. On top of that you’ll see a lot more in the look and feel for Launchpad when we ship!

That’s it for today. As always, we welcome your feedback, comments and suggestions!