Я предпочитаю прямой IoC + NHibernate + MVC.
Несколько месяцев назад я взглянул на архитектуру S # arp одновременно с переходом на IoC и Mvc. Я тщательно его выбрал. Мне нравится, как проект управляет сессиями NHibernate очень удобным для тестирования способом. Я перенес этот дизайн в свои собственные проекты. Но я чувствовал, что мне будет лучше понять, что происходит, и просто настроить только то, что мне нужно в моей собственной архитектуре проекта.
IoC не сложно настроить. NHibernate + Fluent NHibernate не сложно настроить, как только вы сделали это пару раз. Я предпочитаю знать мой код, особенно когда он такой простой, как IoC и NHibernate, а не делегировать реализацию в черный ящик.