Hi,

I saw on the NHUser-list that some implementation of async support are done
for List-part by someone else so now I think it is time to send this async
support questions.

First of all, the biggest question: should we convert and build an async
version? My first answer is yes but then if we checking how many active
(make commits the last month) contributors (
http://www.ohloh.net/p/nhibernate/contributors?query=&sort=latest_commit)
the NH has only some few developer and will this little part be able to do
this big changes.

To make a proper implementation some main decissions need to be taken about
what part that should be using async because it is used from everything
from IType to the regular sqlCommand.ExecuteXxx and also how should we
handle backward compatibility or what to do with parts that not will work
with async pattern (ex. lazy loading).

As some developers have seen before I have started to make a async version
to get an overview about how much of the API that need to be changed, both
internal part and also for external parts that common are overrided or
extended by users that are using NH. My version is found here
https://github.com/Tasteful/nhibernate-core/tree/masterAsync and all unit
test are passing and for every parts that is possible async are used down
to the database and on the ISession all the methods
Get/Load/Update/Save/Etc are wrappers around the async-version but I have
not expose the async-methods on the interface because of my small test this
was not needed.

Naming of methods, should all async methods be renamed as MethodAsync for
easier debugging when we directly can see that the method is an async
method. Both renaming or changing return type of the method are breaking
changes so we need to think one extra time before what method that are best
to use to upgrade them to async support. If we check how MS have made the
sync overloads (in Katana project) all of them are as extension method, is
this a good way insted of having them in the same class as the
async-version?

Also we have the event listeners that some of them need to be async-version
but to be consequent should all event listener be converted to async?

// Patric

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"nhibernate-development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to