Throttled Rollout

When a new AppLife Package is made available to a large audience of clients, the availability of the package can be limited for a specified period of time.  By controlling the initial rollout, you can avoid bandwidth and server loading issues that might occur.

A controlled rollout limits the number of clients that can discover the update for a specified time period.  This time period is set on the Update Controller ControlledRolloutHours

When the hosting application is launched, a random number between 0 and the number of controlled hours is generated.  This number represents the hour after which a new update was published, that this client can receive the update.  Statistically, the clients should be evenly distributed across the designated controlled rollout period.

When the Update Controller checks for an available update, the universal time difference between now and when the update was published is calculated.  If the time difference is in the Controlled Rollout window, the randomly generated number is checked to see if it is less than the time difference.  If so, the update is available, otherwise it is not.

The Update Controller property EnableControlledRollout must be set to true to enable controlled rollouts.  The default value is false.