Как BLL и DAL должны общаться, все пути приводят к неприятностям - PullRequest
2 голосов
/ 21 июня 2011

Вы должны использовать один из двух способов передачи данных между BLL <-> DAL

1 - Либо поместите данные в Entity.dll, где DAL, BLL и UI могут использовать Entity.Student, который включает в себя только информацию об ученике без какой-либо логики.

Увеличение сцепления: - Это может привести к проблемам, например, если у ученика был ClassID, где у каждого ученика был только один класс для посещения. затем бизнес изменился, и у ученика появился список. В этом случае, вероятно, вы будете переписывать много кода на всех уровнях (UI, BLL, DAL).

2- У DAL есть собственный ученик, а у BLL - собственный ученик, тогда, когда вы передаете объект из DAL в BLL, вам нужно будет преобразовать каждый DALStudent в BLLStudent.

много кода: Мне даже не нравится идея Translator.dll, все еще много кода и небольшая потеря процессорных циклов.

Есть ли выход, каково ваше мнение \ выход?

Спасибо

1 Ответ

0 голосов
/ 21 июня 2011

Вы не можете использовать один и тот же код для разных требований - вам приходится иметь дело с ним. Тем не менее, рекомендуется использовать различные адаптированные классы для вашего уровня пользовательского интерфейса (viewmodels). И вам вообще не нужен слой BLL (ну, вам нужен, но только для сквозных задач) - взгляните на Domain Driven Design . И затем в случае изменения требований вам нужно будет изменить только объект домена и его отображение для просмотра модели (что можно легко сделать с помощью таких инструментов, как Automapper )

...