New APIs in Power Pack 2!
Pssst, I've got a not so little secret for you.
No, it's not that the English version of Power Pack 2 went live on Windows Update yesterday.
It's not even that Windows Home Server has at long last reached MSDN and TechNet.
What could be bigger than either of those?
How about the fact that there are quite a few new APIs in Power Pack 2, things that are easy to miss if you aren't in the habit of examining every single new binary that comes as part of a QFE or Power Pack or scouring the Windows Home Server SDK portal for changes (though I am a fan of both).
These new APIs ultimately come in two flavors... some changes are things that have been shipping as part of previous QFE's for quite a few months, while others are things that are new in Power Pack 2... in either case all are now officially documented on MSDN.
What are they?
Microsoft.HomeServer.SDK.Interop.v1.dll
Rather than describe each of these, I am going to let their names speak for them and what they can do:
But wait... there's more!
HomeServerExt.dll
Back in Console land we've long had the ability to open an arbitrary Settings page (provided we know it's guid) or a URL on the client PC... did you know you can also select a specific console tab? With a few tweaks to IConsoleServices you can:
Each of the above methods rely on the new TabIdentifier attribute which can be used to decorate an IConsoleTab implementer so that other applications.
While many of the first set of APIs will likely be very useful to 3rd party developers, these last bits were added primarily with OEMs in mind who desired a way to be able to easily guide a user through setting up of their new Windows Home Server.
Add-in EULAs
For an add-in to be installed via the Windows Home Server Console it must support 'silent' installation which prevents it from using the normal MSI mechanisms for popping a EULA in the face of a user and recurring their consent before continuing.
For companies targeting Windows Home Server with products that required a EULA, they would often require that the user log into their server with Remote Desktop and manually kick off a normal MSI. This work around works, but isn't the best user experience and as a result we had some OEMs and others asking for some ability to pop a EULA at install time.
With Power Pack 2 installed, a developer or company can include a EULA with their installer and when the user goes to install it via the console, they will be prompted for their agreement:
What does it take for a developer to use this?
Assuming that you have an add-in named... MyAddin.msi located in the \\servername\Software\Add-Ins\ directory, then a developer need only include a file named MyAddin.rtf as well, and if this file is present then we will pop the EULA dialog, if not things will work as they previously have.