Same point:
1. The valid range of variables stored in both is the lifecycle of the entire application.
2. Both can be stored in the object.
Different points:
1. Application was used in the ASP phase, and later upgraded to. NET with cache, but for forward compatibility, application is still retained.
2. Cache is more flexible and more powerful than application. Cache can set the priority of each item, when the server is not enough memory, the cache will be compressed, some for a long time did not use or lower priority item from the cache removed.
In 3.cache, you can set the dependency of an item, depending on the other item in the cache or a file. When the dependent item or file changes, the item's contents are automatically updated or removed.
4. Efficiency, cache is higher than application, in part because appliction concurrent access needs to call lock and unlock, which will all the application variable lock, and cache internal implementation of the concurrent access to the interlock, You can lock only one item at a time instead of locking the entire cache.
References:http://www.eggheadcafe.com/articles/20030405.asp