Один из авторов NHibernate Fabio Maulo сообщил в своем блоге, что на данный момент в trunk внесены изменения позволяющие выбирать между несколькими прокси-генераторами. До сих пор использовался Casle.DynamicProxy2, теперь его монополия нарушена LinFu, который по словам автора(и по словам Fabio, кстати, тоже) быстрее предыдущего, планируется, так же, возможность подключения фабрики прокси из Spring.NET.
В конфигурацию session-factory добавлен новый обязательный параметр - proxyfactory.factory_class:
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory name="YourAppName">
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
<property name="connection.connection_string">
Server=(local);initial catalog=nhibernate;Integrated Security=SSPI
</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
</session-factory>
</hibernate-configuration>
Для тех кто использует в своих приложения IOC контейнер Windsor или реализацию Active Record для NHibernate от Castle, тем благоразумнее остаться с DynamicProxy2, остальным же можно выбирать. Возможность заменять такую важную деталь(как генерация прокси) очень важна для проекта NHibernate, и еще раз подтверждает его расширяемость. Поскриптум Fabio ))): "Let me say that something strange happened in my heart when I had remove the last reference to Castle in NH-Core and NH-Tests."
Спасибо за отличные новости.
ReplyDeleteПро LinFu - однозначно за, про фабрику динапроксей из spring.net - спорно, потому как не "спрингом единым" :)
Хотя, да, сам их именно в связке и юзаю.
а где можно подробнее узнать для чего нужны прокси-генераторы для nHibernate?
ReplyDeleteЗдесь: http://nhforge.org/doc/nh/en/index.html
ReplyDeleteспасибо.
ReplyDelete