Redesign ASP.NET providers to be asynchronous
All providers (except InProc) work with external data sources (SQL Server, Redis, etc.). For example, when processing single HTTP request a session state store provider can make several requests to an external data source. Each request to an external data source from session state store provider blocks an ASP.NET thread, becuase System.Web.SessionStateStoreProviderBase has no async methods.
The same is true for other providers (Output Cache Provider, Membership Provider, Profile Provider, Roles Provider). There is not much advantage in asynchronous code inside web forms or MVC controllers, if the whole ASP.NET pipeline is not asynchronous.
Since ASP.NET supports asynchronous httpmodules, it is possible to redesign providers and the relevant http modules to be asynchronous.
There is a huge need for this.