Модели в asp.net MVC 3 области - PullRequest
2 голосов
/ 31 января 2012

Как организовать модели в нескольких областях? Я пытаюсь организовать код, используя области. Я использую visual studio 2010 express , проект на asp.net mvc3 и используется разработка кода . Все учебное пособие и ссылки через Интернет говорят только о контроллерах и маршрутах, но как насчет моделей? точнее, я ищу предложения вокруг:

  1. Папка модели в области будет содержать свои собственные классы, поэтому где должен быть размещен dbcontext? У меня уже есть класс dbcontext содержащий несколько записей базы данных в папке «root» модели. Могу я есть несколько dbcontext, хранящих свои данные в одной базе данных?
  2. Я прошел проект asp.net mvc для переносчиков mvccontrib, но его все еще в asp.net mvc2, но это единственный способ вокруг для создания плагинов / компонентов в asp.net MVC 3?
  3. Помимо областей / переносных зон, есть ли лучший способ организовать код таков, что новые функции могут быть просто «вставлены», не делая слишком много изменений в существующем коде? Области выглядит многообещающе, но я не могу понять, какими должны быть модели помещается.
  4. Являются ли области хорошими только для разделения контроллера и вида?

Ответы [ 3 ]

0 голосов
/ 19 марта 2012

Я искал возможные способы достижения разделения на уровне модели DbContext, но пока я обнаружил, что не существует прямого способа иметь несколько данных dbcontext для хранения данных в одной базе данных с помощью кода -Первый. Это возможно только с моделью Model-First. С кодом сначала несколько dbinitializer не работает, так как все пытаются инициализировать базу данных, и только первый из них будет успешным. Тем не менее, может быть некоторый путь назад путем динамического создания базы данных с использованием DbModelBuilder, как это делается в Orchard CMS и некоторых других проектах с открытым исходным кодом. Кто-нибудь пробовал это? Пожалуйста, поделитесь ...

0 голосов
/ 22 сентября 2012
  1. Области хороши только для разделения модели вида.

Регистрационный код области является хорошим указанием на то, для каких областей используется - разделение маршрутов и доступ к определенным контроллерам.(Подумайте, логические блоки пользовательского интерфейса).Для организации вашего кода пространства имен являются предпочтительным инструментом.

Возможно, посмотрите на что-то вроде Umbraco, Orchard или даже N2CMS, чтобы увидеть, как они управляют расширениями.

0 голосов
/ 31 января 2012
  1. dbcontext будет находиться в слое доступа к данным или в вашей папке доступа к данным, где вы будете управлять всеми файлами доступа к данным. Ты сможешь ссылаться на эти классы в своих моделях везде, где вы хотите их использовать. Да! Вы можете иметь несколько dbcontext, хранящих свои данные в одном и том же БД.

  2. Нет идей.

  3. Лучший способ, которым я или моя команда занимаемся, состоит в том, чтобы поддерживать виды / модели / контроллеры совершенно отдельно. Таким образом, если один человек посвящен взглядам или как их показать, другие могут написать действия контроллера для него.

  4. Мы не используем области, потому что, когда ваше приложение имеет тенденцию экспоненциального масштабирования, вы можете потерять контроль над тем, что находится где? мой Мантра: 4 папки: View / Model / ViewModel / Controller.

У любого другого человека может быть другое мнение ...

...