A couple of days ago I merged the remaining work to make NHibernate target .Net 4.0 to master. It now targets only .Net 4.0. I tried to set up the build scripts so that it would explicitly target .Net 4.0 even when 4.5 is installed on the build machine. Apart from the change in framework version, the big thing that this implies is that Iesi.Collections now have a much more limited role, with ISet<T> and HashSet<T> from the BCL being used instead.
I expected that when released, this will be NHibernate 4.0. For that, what I think is at least as important as new features is to take the opportunity to remove old obsolete code to make the code base leaner and ensure longterm maintainability. PROPOSED BREAKING CHANGES Please add to this list if you think of anything else that would be rarely used and no longer useful. Also, please speak up if you see an important reason to keep any of this. Fix support for System.Transactions There are a number of problems with the current implementation. Some are probably "simple" bugs that we can fix, but I fear there may also be design issues with the current approach. https://nhibernate.jira.com/issues/?jql=labels%20%3D%20TransactionScope Remove ManagedWebSessionContext. I'm not aware of any reason to use this instead of WebSessionContext, which shares its API with the other context types. Remove the classical HQL parser. The ANTLR based parser has been in use since NH 2.1 (released summer 2009). Remove support for persistent non-generic collections. NHibernate have required generics support for a long time, and I'm not aware of any reason to prefer a non-generic collection over a generic one. Remove obsolete ISession.SaveOrUpdateCopy() Deprecated since NH 3.1. Merge() should be used instead. Various related removals, e.g. event listener. Remove obsolete SybaseASA10Dialect, ASA10ClientDriver, ASAClientDriver and SQLiteDriver. These all have direct replacements. /Oskar
