В структуре папок MVC, где должны находиться общие файлы классов? Например, у меня есть класс, который определяет правильный DataContext для использования, поэтому я не изобретаю колесо в каждом из моих контроллеров. Должна ли она находиться в папке Controllers, даже если она не является контроллером? Должно ли это быть с Модели, потому что это связано с базой данных, хотя это не модель? Возможно, папка Views \ Shared? Или Контент для всей папки для всего этого? Я уверен, что смогу поместить его куда угодно, но мне было интересно, где «правильное» место.Местоположение общего класса MVC
ответ
Это не контроллер, контент или представление, поэтому не используйте их. Это наиболее тесно связано с вашей моделью, поэтому вы можете поместить ее в модель под подпапкой под названием «Помощники» или «Утилита» или некоторые из них. Или вы можете добавить еще одну папку верхнего уровня под названием «Службы» и поместить ее туда. Вот где я положил всю свою логику приложения, средний человек между контроллерами и моделью.
Если он может быть полезен сам по себе (подумайте о инструменте командной строки, построенном вокруг него), поместите его в папку «Модели». Если он используется только как помощник для контроллеров, поместите его в папку Controllers.
Если посмотреть на Роба MVC Storefront: Отдельная библиотека классов проект (как Commerce.MVC.Data)
Это не о том, что делает Роб, это более того - это просто стандартный подход при разделении ответственности и тому подобное. Доступ к данным не имеет отношения к уровню представления приложения, если мы не говорим об одностраничном приложении, где это не будет иметь особого смысла. –
Это действительно зависит от того, что он делает, если он получает доступ к данным он должен быть в уровне доступа к данным в противном случае, вы можете поместить его в папку контроллера.
dmajkic,
Зачем отделять его в своей области? Если его BLL-код должен находиться в папке контроллера, если его связанный с DAL элемент должен находиться в модели. Я могу понять, если проект становится огромным, и вы хотите создать некоторые подпапки, это не должно быть проблемой. Но размещение кода в другом уровне действительно поражает цель MVC, как вы думаете?
№ MVC - это шаблон для просмотра. Он относится к уровню представления. Контроллеры должны содержать только логику представления. В классах контроллеров не должно быть бизнес-логики. dmajkic сказал, чтобы поместить класс в отдельный проект, а не на отдельный уровень. – liammclennan
@liammclennan - Точно, я не знаю, что Аль курит, но, может быть, он должен уйти. –
Имейте отдельную сборку DataAccess, сделайте этот класс внутренним и вызовите его DataContextFactory.
- 1. Создать переменную общего класса из общего класса
- 2. Объявление класса общего класса
- 3. MVC общего ViewModel
- 4. Использование внутреннего класса общего класса
- 5. C# Тип для общего класса
- 6. Местоположение кэша в MVC
- 7. Javascript MVC - местоположение наблюдателя
- 8. Тестирование общего класса
- 9. Реальные примеры общего класса
- 10. интерфейса для общего класса
- 11. Создание нормального общего класса
- 12. Настройка общего класса
- 13. Ковариация общего класса
- 14. Создание общего класса ObservableItem
- 15. Создание класса расширение общего
- 16. Создание общего класса компаратора
- 17. Класс общего класса
- 18. Создание общего для класса
- 19. Ошибка распаковки общего класса
- 20. Массив общего класса
- 21. Список общего класса
- 22. Расширение общего класса реализатора
- 23. Свойство общего класса
- 24. Реализация коллекции общего класса
- 25. вызовы метода общего класса
- 26. Отображение NHibernate общего класса
- 27. Объявите переменную общего класса
- 28. типа Проверки общего класса
- 29. Typedef (псевдоним) общего класса
- 30. Обозначение класса общего интерфейса
Вы помещаете всю свою логику приложения в проект уровня презентации? Звучит ужасно .... –
Для небольших проектов я положил его туда. Если услуги будут повторно использованы, они получат свой собственный проект. –