Mvc2 Защо кодът в контролерите трябва да бъде сведен до минимум mvc-2

Чувал съм малко за това как да поддържате кода в контролерите възможно най-малко. Къде използваме този код?

контролерите

Отговор:

Зависи за какъв код говорите. Например, ако говорите за валидиране, това трябва да влезе в модела, ако говорите за достъп до данни, това също трябва да влезе в хранилище или в модела (лично аз предпочитам хранилище), ако говорите за бизнес логика, така че влезте в услуга всичко, което е останало в контролера, ще извика това нещо и резултатът ще бъде предаден на изгледа.

Бих ви препоръчал да гледате тази видео презентация за поставянето на вашите контролери на диета на Jimmy Bogard.

Познавате ли тънки и тънки контролери? Така че отговорът ми е, че ако поставите много редове код в контролера, вашият код ще стане претрупан и труден за тестване. Всъщност контролерът изпълнява само действията, свързани с текущия HttpContext. Така че, ако се занимавате с бизнес логика, достъп до данни, криптиране,. трябва да направите разделянето на проблема. Причината да не използвате бизнес логика е поради домейна. Следователно домейнът трябва да бъде делегиран за обработка. Контролерът трябва да вземе предвид всички действия, свързани с HttpContext (сесия, ViewData, TempData, потребител в текущата нишка, глобални и локални ресурси.) И делегира всички останали действия на други компоненти: правилото е дебел модел и тънък контролер за приготвяне на вкусни торти (phpcake ). Можете да намерите някои връзки, за които да се обърнете за Контролери за кльощави и мазнини тук и тук.