1. A system for delivering software via a network comprising: one or more processors; one or more computer-readable media; computer-readable instructions on the computer-readable media which, when executed by the one or more processors, cause the one or more processors to implement a method comprising: describing one or more software extensions using a hierarchical, tag-based language, the extensions being configured for incorporation on a client, said describing defining one or more manifests containing at least one list of files comprising an extension; and delivering the one or more manifests to the client via the network, the one or more manifests being configured for use in downloading the software extensions via the network, at least some of the extensions being downloadable by streaming extension files to the client in a manner that enables a user to begin to interact with the extension sooner than if the user had to wait for the entire extension to load, said manner being developed based on scenario runs in which files that are more likely to be first used by the user are downloaded before files that are less likely to be first used, and wherein files that are less likely to be used first can be downloaded via a background download process.