Mvc2 Чому код у контролерах повинен бути зведений до мінімуму mvc-2

Я трохи чув про те, як можна менше утримувати код у контролерах. Де ми використовуємо цей код?

mvc2

Відповідь:

Це залежить від того, про який код ви говорите. Наприклад, якщо ви говорите про перевірку, це має входити в модель, якщо ви говорите про доступ до даних, це також повинно переходити до сховища, або якщо ви говорите про бізнес-логіку, модель (особисто я віддаю перевагу сховищу) повинна перейти в сервіс, щоб все, що залишилось у контролері, буде викликати цю річ, а результат буде передано у подання.

Я б порекомендував вам переглянути цю відеопрезентацію про те, як поставити свої контролери на дієту Джиммі Богарда.

Ви знаєте тонкі і тонкі контролери? Отже, моя відповідь полягає в тому, що якщо ви вкладете багато рядків коду в контролер, ваш код стане захаращеним і важким для перевірки. Насправді контролер виконує лише дії, пов'язані з поточним HttpContext. Отже, якщо ви любите ділову логіку, доступ до даних, шифрування,. ви повинні зробити розділення проблеми. Причиною того, що ви не використовуєте бізнес-логіку, є домен. Тому домен повинен бути делегований для обробки. Контролер повинен враховувати всі дії, пов’язані з HttpContext (сесія, ViewData, TempData, користувач у поточному потоці, глобальні та локальні ресурси.) І делегує всі інші дії іншим компонентам: емпіричне правило - це товста модель і тонкий контролер для приготування смачних тортів (phpcake ). Ви можете знайти кілька посилань, на які можна посилатись для контролерів худих і жирових тканин тут і тут.