У меня есть веб-приложение ASP.NET MVC 3 с различными компонентами/слоями, такими как:
- Интернет
- Сервисы (кеш, внешние API, облачные сервисы и т. д.)
- Ядро (логика домена, POCO и т. д.)
- Репозиторий (Entity Framework)
Теперь, когда я что-то делаю на своем веб-сайте (например, отправляю форму, также известную как POST), в худшем случае может потребоваться уведомление всех слоев.
Теперь я мог бы встроить всю эту логику в действие HTTP POST моего контроллера, но логика становится очень толстой и весомой.
Я пробовал использовать шаблон Publisher-Subscriber (AOP), но пока не нашел очень хорошей реализации .NET, и мне также говорили, что это не очень хорошая практика для веб-приложений.
Может ли кто-нибудь дать мне какой-либо совет здесь, или я застрял с таким кодом:
[HttpPost]
public ActionResult Do(Something model)
{
_repository.Save(model); // this should be the only line IMO
_service.DoSomething();
_repository.DoSomethingElse();
_domain.DoSomethingMore();
}
Я не говорю о многопоточности или чем-то еще, а просто снимаю ответственность с контроллера и перекладываю ее на компоненты, которые заботятся об этих действиях.