Я имел дело с той же проблемой и нашел полезным составить карту разума.Хотя невозможно дать вам полное понимание, я могу попытаться направить вас в правильном направлении с некоторыми основными идеями.
загрузка / просмотр (http://www.xmind.net/share/highroad/mvc3-design-pattern/)
Вы знакомы с шаблонами проектирования?Ну, они существуют и с приложениями MVC:)
Если вы хотите поговорить и понять, о чем говорят люди, в том числе и я, вам нужно знать типичные шаблоны проектирования, которые приходят с созданием того, что они называют уровнем предприятия.Приложения.Эти шаблоны проектирования - единственный реальный способ начать понимать концепции.
Эти шаблоны структурируют сложную бизнес-логику таким образом, что они стали испытанными и проверенными решениями (шаблонами проектирования) для решения задач, бросающих вызов разработчику.
В уведомлении на диаграмме есть 3 основных уровня:
- Уровень представления
- Уровень бизнес-логики
- Уровень доступа к данным
Некоторые из наиболее часто используемых шаблонов проектирования при работе с Model View Controller в ASP.NET включают:
Шаблоны проектирования уровня бизнес-логики:
- АктивноЗапись.Модели относятся именно к базе данных, как в облегченных средах (например, Ruby on Rails).При создании нового приложения MVC3 с ASP.NET, а также в представлениях и контроллерах лесов, именно так оно и настраивается.Идеально подходит для менее сложных приложений.Так почему бы просто не использовать Ruby on Rails?Я бы
Уровень логики домена.Использует MVC с контроллером, содержащим очень мало кода, и создает множество дополнительных моделей, которые могут выполнять сложную логику, MVC предназначен только для представления.Часто с этим стилем уровня легкий уровень, называемый сервисным уровнем, может использоваться для вызова всех функций на доменном уровне из контроллеров, т.е. контроллер вызывает метод в классе сервисного уровня, который вызывает доменный уровень.Этот шаблон проектирования, кажется, очень популярен среди людей, которым нравится объектно-ориентированное программирование.См. Ссылку ниже на мой (довольно простой) проект, разработанный с использованием доменного слоя.
Сценарий транзакции - используйте контроллер для выполнения большой логической работы за действие, проблема в том, чтодействия должны делать то же самое, поэтому будет повторение кода
Для уровня доступа к данным:
- Что-то вроде структуры сущностеймодели в сочетании с хранилищем, которое может выполнять любые запросы SQL.
- Не вдаваясь во все шаблоны для этого слоя, но они включают в себя: Data Mapper
- В простых приложениях реальных данных нетуровня доступа, это становится необходимым только в том случае, если вы используете уровень домена на бизнес-уровне (что обычно имеет место)
В зависимости от структуры, используемой вашим приложением, ваши Модели будут означать совсем другие вещи.Как правило, они не будут моделями, связанными с базой данных (по умолчанию при создании нового приложения они становятся такими).Вместо этого они будут ViewModels, которые отвечают только за хранение данных, необходимых для каждого из представлений.
Я создал приложение ssample, которое вы можете увидеть здесь.
https://github.com/testbrian/enterpriseframeworksB