Выделять бизнес-логику в сервис стоит, когда она действительно ощущается. В форме регистрации бизнес-логики совсем чутьчуть. Почти во всех популярных компонентах веб-сайтов логика простая и её давление почти не ощущается на контроллерах.
Когда же делаешь веб- или десктоп-(неважно) приложение для каких-либо бизнес-задач логика сразу начинает давить и душа просит выделить ее в отдельный слой(иногда она реализуется хранимками на сервере, иногда еще до базы).
У меня сейчас проект и архитектура точь-в-точь как описал zerkms. Вот только репозитории работают с Oracle-объектами, а не linq. Там было очень важно выделить слой БЛ. Как итог мы получили возможность работать с разными СУБД(просто подменив репозитории, IoC-контейнеры тут хорошо помогли) и даже с разной реализацией бизнес-логики(было такое требование... возможность использовать другую, уже готовую систему)
Когда же делаешь веб- или десктоп-(неважно) приложение для каких-либо бизнес-задач логика сразу начинает давить и душа просит выделить ее в отдельный слой(иногда она реализуется хранимками на сервере, иногда еще до базы).
У меня сейчас проект и архитектура точь-в-точь как описал zerkms. Вот только репозитории работают с Oracle-объектами, а не linq. Там было очень важно выделить слой БЛ. Как итог мы получили возможность работать с разными СУБД(просто подменив репозитории, IoC-контейнеры тут хорошо помогли) и даже с разной реализацией бизнес-логики(было такое требование... возможность использовать другую, уже готовую систему)