I have been working with NHibernate for manner of couple of years and I never seriously thought about how it is built from inside, what is the architecture of NH, how much it depends on ADO.NET, how they made reflection to work fast, how high code quality is, which people worked on it and what was the history of it. The other day, I had chance to start mine own small ORM project and all of this questions raised for me. Thus I will do my best to share everything I discovered in NHibernate surgery.