I have developed this personal blog application with .NET MVC. I used the layered architecture in this project. In order to create a modular application structure, I reduced the dependencies as low as possible with Ninject IoC
In order to switch ef framework implementation to nhibernate implementation, entity class properties must do virtual