Update June, 2014
Sorry for the long waiting!
Finally we published the latest version of this POC onto codeplex. Actually most of the work has been done in April or earlier. Actually it is a kinda internal project so for some reasons we have to serve it internally.
We created a dedicated demo site with corresponding services on http://bootybaydemo.azurewebsites.net/ , and both store app & local agent now point to this url (see the source file).
This website is used for admin but we didn't set any credential or login page. Again it is for proof of concept so please feel free to go through app adding process but please leave other's app there.
We host the db on Azure SQL Database and blobs on Azure Storage Blob. Of course we hided credentials from the shared source code but you may refer to Bootybay.ServerWebApp/App_Data/bootybayDBScript.sql for the db script. Actually we use Entity Framework code first so the models are the db script indeed.
later we will probably compose some technical articles about this project on our blog. Thank you for your interesting in this project!
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.
How to review the demo
- Download and run the latest release for the app & desktop agent clients https://bootybay.codeplex.com/releases/
- Live Demo website: http://bootybaydemo.azurewebsites.net/
- Fork or clone the source code and review the solution from your Visual Studio
- Prerequisites: Client Windows 8.1 or Windows 2012 R2, sideloading app 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; Server – standard ASP.Net 4.5 MVC
Brief architecture & design:
- desktop agent (BootyBay.WPFAgent,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. - in new windows 8.1, by default a sideloading app has loopback exempt already.
- windows store app (BootyBay.PrivateStoreApp)
- 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
- We tried to bring a 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.
- Support public store app linking
- so far so good. we positioned this project as prototype.
Code name ‘Booty Bay’ comes from:
http://www.wowwiki.com/Booty_Bay, which is a great place to store your treasures, right?
Who we are:
- Team blog: https://aka.ms/lighthouse
- About us: http://blogs.msdn.com/b/lighthouse/about.aspx
- Contact us: Bloggers for Lighthouse firstname.lastname@example.org
- Both English and Chinese are accepted 各位同仁欢迎使用中文同我们交流。
- Core members:
In case you might think some of the nick name here are naïve - please help vote a ‘yes’ on this codeplex bug-like feature - Add ability for users to change username. Currently it is not allowed to rename the codeplex account.