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.
