Async APIs


Now that Orchard is on .NET 4.5 we could think about adding some async APIs, first and foremost to make use of async I/O (that can dramatically increase throughput).

I see the following services that could be extended with async methods first: IStorageProvider, IAppDataFolder, IVirtualPathProvider. The underlying services these use have async methods so it would be just a matter of surfacing them. It would be a lot of work to actually make use of theme in the Core though.


sebastienros wrote Feb 3, 2014 at 7:22 PM

Lot of work for sure, and surely breaking changes too. Might be a good fit for 2.0.

Piedone wrote Feb 7, 2014 at 12:01 PM

We could start by adding some async methods to the three services I listed (or probably just start with IStorageProvider) so developers can see the option to use async. This would only need the modification of the interfaces and a couple of implementations (that should be fairly straightforward, as the underlying I/O services are all async capable). On top of that maybe IMediaLibraryService could get a similar enhancement.

These would be mildly breaking, but non-invasive changes.

Piedone wrote Feb 23, 2014 at 11:22 PM

sebastienros wrote Sep 18, 2014 at 8:28 PM

Let's start an async branch. And start with the classes you are suggesting.