6

Это скорее открытый вопрос, чем поиск конкретного ответа.asp.net MVC Solution/Project layouts

Как мы все знаем, нет ни одного ответа, который бы соответствовал всем решениям, но мне любопытно узнать, как вы структурируете решения asp.net MVC и любые подводные камни, которые вы, возможно, встретили в своем дизайне или вещах, которые вы бы сделали иначе, если бы вы могли начать снова.

Стандартный шаблон asp.net MVC - это всего лишь базовый шаблон, и я уверен, что прочитал/услышал в подкасте, что Скотт Гензельман заявил, что единственная причина, по которой находится папка Model, заключается в том, что люди не спрашивали, где модель. Это уже подразумевает, что, возможно, его следует переместить в отдельный класс.

Лично в небольших приложениях MVC, которые я выполнил, я выделил модель в свой единственный класс, который содержит модель и репозиторий, в то время как проект «MVC» имеет контроллер и представления. Это обычно тренировка без каких-либо проблем, но, как я уже сказал, это только небольшие приложения.

Так что же делают большинство людей? - Просто используя стандартный шаблон? - Разделите только модель? - Разделите модель и контроллер? - Разделение даже перемещение, поэтому доступ к данным осуществляется через веб-службы или какой-то портал данных? - Или что-то совсем другое?

И наконец, как люди создают модульные тесты? Только один единый тестовый класс, который тестирует каждый из проектов или единичный тестовый класс для каждого проекта?

ответ

4

Лично я использую подход Джимми Богарда: Organizing ASP.NET MVC solutions.

+0

Интересный подход, после нескольких проектов MVC в гораздо большем масштабе, по умолчанию макет начинает казаться загроможденным. –

0

Чтобы быть честным, большую часть времени я нашел стандартный шаблон, достаточный для того, чтобы просто его повторно использовать. Я бы сказал, что это действительно просто к вашим собственным особым организационным предпочтениям.

Если моя модель действительно велика, я бы определенно подумал о создании для нее отдельного проекта библиотеки классов.

+0

Зачем вам отделять его, если он слишком велик? Почему бы не отделить его от начала? Просто пытаюсь учиться :) – Sam

+0

@Sam - Как я уже сказал, это личное предпочтение. Я не чувствую, что небольшая модель заслуживает полноценной библиотеки классов (хотя некоторые люди не согласятся). Я чувствую, что папка * Models * достаточно разделена. Однако, если бы я почувствовал, что моя модель становится довольно крупной/сложной, я бы определенно подумал о том, чтобы убрать ее в DLL, таким образом она удерживает беспорядок в моей модели от моей структуры веб-сайта. – James