Где мне разместить дополнительные классы в моем приложении MVC

У меня есть приложение ASP.NET MVC, которое использует классы Linq to SQL, помещенные в папку Model.

Я хочу создать несколько дополнительных классов, которые я обычно размещаю в своем BLL, но я не уверен, как это сделать с MVC.

С WebForms мой DAL был бы библиотекой классов. Мой BLL как библиотеку классов, которая ссылается на мой BLL. Мой веб-сайт, который ссылается как на DAL, так и на BLL.

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

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

В веб-формах. Мой другой вариант - разместить классы в App_Code. Есть ли эквивалент App_Code в приложении MVC?


person Greg B    schedule 13.05.2009    source источник


Ответы (4)


Вы можете переместить все свои модели в библиотеку классов, не так ли? Ни MVC, ни VS ума. Это устранит зависимость библиотеки моделей от веб-приложения.

person Lucas Jones    schedule 13.05.2009

Вы можете поместить это в папку с моделью. Поскольку все классы, связанные с бизнесом, помещаются в эту папку.

Для лучшего понимания см. scottgu ботаник примеры. Он создал дыхательные классы в приложении nerdinner.

person Jalpesh Vadgama    schedule 13.05.2009
comment
спасибо за подсказку скотгу. Вы можете поместить это в класс модели. Вы имели в виду папку модели? - person Greg B; 13.05.2009

Я согласен с папкой Model. Вы можете организовать его по своему усмотрению (BLL, DAL и т. д.).

Лично я бы не стал делать отдельную сборку, если у вас нет для этого веских причин. Будучи разработчиком, который склонен чрезмерно усложнять проблемы, если я не буду осторожен, я стараюсь максимально следовать практике KISS (Keep It Simple Stupid), которая помогает мне избежать определенных неприятностей.

person Josh Hawthorne    schedule 13.05.2009

Попробуйте взглянуть на архитектуру S#arp. Вы можете либо использовать шаблон, который они предоставляют, либо использовать его в качестве справочного материала, который поможет вам принимать решения.

http://code.google.com/p/sharp-architecture/

person ajma    schedule 13.05.2009