Где написать базу данных и бизнес-логику в MVC? - PullRequest
14 голосов
/ 09 сентября 2010

Поскольку я изучаю и работаю с приложением Asp.Net MVC, я хочу знать, что лучше написать Business Logic и Data Access logic в MVC.

Где я должен написать DataAccess и Business Logic среди трех слоев (Model, View and Controller) ??

Может кто-нибудь сказать мне правильный способ написать код для этого.

Сценарий: я хочу retrieve all the employees where employee name like 'Mi%' (у меня SQL procedure to execute and retrieve the data.)

PS: Хотите знать, где я должен создать экземпляр класса Business Logic и где я должен создать экземпляр класса слоев доступа к данным?

Заранее спасибо.

Ответы [ 4 ]

10 голосов
/ 09 сентября 2010

Бизнес-логика (BL) и доступ к данным (DAO) должны быть на разных уровнях.Модели должны хранить только данные и не содержать логику.Контроллер должен получать данные только из представления и отправлять их на уровень BL (или отправлять из BL для просмотра).
Это не строгие правила, а последний использованный подход

7 голосов
/ 09 сентября 2010

Бизнес-логика должна быть в модели.

Доступ к данным может быть либо собственным после вызова вашего контроллера, либо автоматизированным в ORM, который ваш контроллер будет вызывать через репозитории.-через все это можно найти в Nerd Dinner , найдите раздел для бесплатной загрузки .

0 голосов
/ 09 октября 2012

Вы можете полностью пропустить трехуровневое мышление и пойти другим путем;

Действия пользователя;который отправляет команду или событие в фоновую службу.Фоновая служба, которую вы можете запустить в процессе, для начала.Фоновая служба публикует события снова в памяти.Вы создаете несколько видов, которые подписываются на событие из фоновой службы.У каждого просмотра есть «последнее увиденное» событие;это целое числоКаждый Start it читает все последующие события из «глобального журнала».

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

Это эквивалентно «сделай что-нибудь, и я ожидаю увидеть это« изменение »в этом другом представлении».У вас также есть:

Взаимодействие - это когда у вас есть одно или несколько событий из графического интерфейса или фоновой службы, и вы позволяете некоторому действующему лицу, скорее всего, Saga , выполнить какое-то действие, возможнокомпенсации, основанные на других событиях, в случае сбоя действия.

Также я могу порекомендовать просмотреть эту презентацию

0 голосов
/ 09 сентября 2010

Представление - это то место, куда вы помещаете свой интерфейсный код.

Контроллер - это место, которое связывает представление с моделью.

Модель хранит бизнес-логику и, возможно, доступ к базе данных.(Некоторый слой ORM можно использовать также)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...