I am using CodeProject's well known Open Session in View
to handle NHibernate Sessions. Does it works well with Level 2 Cache
? Anyone has succeeded doing it? Should I use NH.Burrow
instead? Any advice on l2 cache in asp.net best practices is appreciated.
Edit: link to CodeProject's article: http://www.codeproject.com/KB/architecture/NHibernateBestPractices.aspx
I use the Unit of Work pattern to handle my session. Then I create an HttpModule that implements a "Session Per Web Request" lifetime that works really well. My HttpModule starts a Unit of Work on the PreExecuteRequestHandler hook, then stores it in the request. Then it uses the PostExecuteRequestHandler hook to complete the Unit Of Work.
This is the article my Unit of Work is based on: http://nhforge.org/wikis/patternsandpractices/nhibernate-and-the-unit-of-work-pattern.aspx