A proof-of-concept of a Windows Private Store solution for enterprise side-loading app management, including a Windows Store App as the “Private Store”, a Desktop App as the “Store Agent”, an ASP.NET MVC web application as the “Store Server”. The target audiences are ISVs who are developing and deploying side-load apps to organizations. Our goal is to deploy LOB windows apps more easily then help the growth of the win8 device selling to enterprises.
Codeplex project site: https://bootybay.codeplex.com/
Windows 8.1 with sideloading enabled. To enable sideloading, we need to Get a developer license (once per month) or use a sideloading key. Currently this project doesn’t provide any function or wizard to do the tasks.
How to review the demo
- Get the BootyBay.ConsoleAgent from the ‘Downloads’ and run it.
- A Windows Store App “BootyBay PortalApp” will be deployed and run.
- prerequisite: Client Windows 8.1 or Windows 2012 R2, sideloading app enabled. Server – standard ASP.Net 4.5 MVC
Brief architecture & design:
- desktop agent (BootyBay.ConsoleAgent,BootyBay.StoreAppMgmtCore)
- download & release note
- Add, Update, Uninstall side-loading app based on the store app’s request
- Retrieve app package’s local status and provide to the store app
- it hosts a WCF service endpoint on http://localhost:18733 and requires admin privilege, otherwise we would have published it as ClickOnce
- It helps to deploy the store app, and enables it loopback for network access by “CheckNetIsolation.exe LoopbackExempt” , otherwise it cannot communicate with an endpoint under localhost.
- UI is not necessary. Currently it is a console for log viewing purpose. There is no problem if we just build it as WPF or Windows Services.
- windows store app (BootyBay.PortalApp)
- it will be automatically downloaded, deployed and started when the desktop agent runs.
- List Apps by Search/Category, check app detail by consuming web services from the server.
- Communicate with desktop agent for app package related tasks
- In future it will bring the same or similar experience as the public Store app.
- web application (BootyBay.ServerWebApp,Bootybay.ServerCore) -
- Admin Website & Web Service host as Windows Azure Webiste
- In the demo, it uses Windows Azure SQL Database to store app package information, and Windows Azure Storage Blob to store app package and certification binary files.
- It can automatically analyze uploaded appx package to get all necessary metadata, such as app’s identity, publisher, icons, auto launch protocol and etc.
- At least the store apps should look more clean, fashion and beautiful.
- rating and comments
- links to public store apps
- links to desktop apps
- app summary – list installed, installing, purchased apps and status
- ARM support – with no dependency on the desktop agent, the store app can only be used to browse apps and redirect user to execute script to get side-loading apps deployed.
- Works with Windows RT device
- When the desktop agent is not accessible
- Package storage provider - currently it is hardcoded as Azure blob. It should be more developer-friendly to get extended or replaced.
- The package upload/update/descripting process on the website should be more practical and user-friendly
- User management & Authentication – form auth & windows auth/ADFS
- Record User’s app related operations - purchase, install, update, uninstall
- Fix Bugs as always… Please contact us, leave message to us via email or on CodePlex if you have any thoughts or suggestion.
Code name ‘Booty Bay’ comes from:
http://www.wowwiki.com/Booty_Bay, which is a great place to store your treasures, right?