S#arp Architecture: ASP.NET MVC Best Practices with NHibernate