Hi everyone! My name is Dileep and I am a Development lead with Windows Home Server team. It has been more than a week since we released the beta builds of the next version of Windows Home Server “Vail”, and we are very encouraged by the download and the feedback pouring in through connect. Thank you for everyone who is participating in the beta program! Alongside that, we thought this is the right time to start discussing some of the features of Vail and its extensibility with the community to get the excitement started for building great, cool and useful add-ins for the next version of Windows Home Server. The SDK is also available to download from Connect and if you already tried it out, you might have noticed that the extensibility options for Vail are pretty broad in comparison with first version of Windows Home Server. There are many ways one can extend Vail – by extending Dashboard (old Admin Console), Launchpad or by building a Provider. You can even build an addin which has both server and client components to it. Vail SDK contains information about all these plus APIs for many other core features like Alerts framework, Storage (Server Folders & Hard Drives), Computers & Backup, Identity, Remote Access, Media Streaming and much more! The SDK also contains detailed documentation as to how you can build, package and deploy your add-ins to Vail Server and clients. All-in-all, you can see that we’ve tried to put up a much broader and more powerful SDK in place compared to the previous version.
There is a lot of information to digest in Vail and SDK in particular. Hence we are taking this opportunity to do a series of blog posts to talk about the various extensibility points of Vail in a much higher level than the actual SDK documentation. The idea is to give developers an overview of the capabilities of Vail SDK along with providing guidance as to how to go about building addins the right way so that the user experience or performance is not compromised. In the first of such posts, I am discussing the Vail ‘Dashboard’ and its extensibility vis-à-vis Home Server v1 here.
The Administration console in Home Server v1 has been renamed to ‘Dashboard’ to better reflect the information it provides. Just like the Admin console in v1, Dasbhboard still is the main user interface for administrative or management type of tasks on the Server. Dashboard is where you would go to monitor the health of the network, create user accounts, view backups, add shared folders, increase storage capacity, enable or disable media streaming etc. Dashboard is still not the place to put any day-to-day non-administrative tasks. I have posted a document on connect website (link is given below) which talks about the differences in the Dashboard UI compared to Home Server v1 Admin Console. In the document I talk about the new Dashboard layout, the new UI elements introduced, the three different kinds of tabs that one can build as well as plugging into the existing Microsoft tabs and wizards. I also cover the extensibility aspects of Home Server v1 Admin console which are no longer available in Vail.
You can download the complete document here.
(You will have to sign in to Microsoft Connect site.)
I hope I was able to give an adequate overview of the changes and new features in Windows Home Server ‘Vail’ Dashboard in the document, especially when compared to v1. Please remember that this document is meant as a high level overview of the extensibility points, and the low-level details of all of those extensibility APIs, documentation, samples and templates are available in the Vail SDK. We would love to hear your comments and feedback. Moreover we would love to get all of you started on writing cool addins for Vail. Please use Vail SDK Forum for discussing seeking assistance for the SDK. In subsequent posts, we’ll cover other topics such as Launchpad, building Providers, addin deployment, various object models etc. Happy coding!
Download Dashboard overview document
Download “Vail” SDK
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:
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:
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…
You extend Dashboard when…
When in doubt, please do not hesitate to reach out to us.
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.
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!