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

Reply via email to