Described is a mechanism for enabling an application operating as a web
application to transition to a client-side application without impacting
a user's interaction with the application. The progressive installation
transitions through three states: a start-up state, a demand state, and
an install state. During the start-up state, a subset of components
associated with the application is downloaded and stored in a local data
store. The subset is sufficient to allow execution of the application in
a manner similar to a web application. During the demand state,
additional resources associated with the application are downloaded.
Transitioning from the demand state to the installed state occurs without
impacting a user's interaction with the application. The transition may
occur autonomously based on the number of additional resources stored in
the local data store or upon an external trigger.