Одним из факторов может быть состояние вашего веб-приложения. Если это базовое веб-приложение, которое получает все с сервера с помощью нескольких хуков JavaScript, таких как проверки на стороне клиента, тогда MVC типа Rails действительно хорош. Я не знаком с MVC в ASP.NET, но слышал, что это похоже на Rails.
Если веб-приложение действительно с состоянием, то лучшим подходом будет иметь двойной уровень MVC - один на стороне клиента, а другой для сервера. MVC на сервере в основном занимается аутентификацией, авторизацией, сбором данных в стандартных форматах и т. Д. Клиентская сторона MVC будет заниматься такими вещами, как события DOM, действия пользователя, их влияние на состояние приложения и как когда данные должны быть запрошены / отправлены на сервер.
MVC - это просто способ организации кода, как это делают BLL или DAL. MVC в Rails в основном скрывает DAL, используя набор соглашений. Обычно бизнес-логика находится в самих моделях. Однако, если ваше приложение требует более сложных BLL, где взаимодействие объектов может быть сложным, то нет никаких причин, по которым этот BLL не может мирно сосуществовать с M в MVC.