Здравствуйте.
Хотелось бы уточнить у общественности, как принято организовывать DAL и BL слои приложения. Разумеется, я реализую CRUD методы для каждой сущности в DAL. Но также необходимы методы для, скажем, выборки по условию и поиска. Или, например, помимо метода GetById есть метод GetByName. Реализовывать их в BL? Но там те же запросы, что и в Read методе CRUD, только добавляется условие. Копировать текст запросов? Как-то это не так... Как обычно делают?
Спасибо.
... << RSDN@Home 1.2.0>>
02.09.06 00:22: Перенесено модератором из 'Базы данных' — IB
Здравствуйте, MNZ, Вы писали:
MNZ>Хотелось бы уточнить у общественности, как принято организовывать DAL и BL слои приложения. Разумеется, я реализую CRUD методы для каждой сущности в DAL. Но также необходимы методы для, скажем, выборки по условию и поиска. Или, например, помимо метода GetById есть метод GetByName. Реализовывать их в BL? Но там те же запросы, что и в Read методе CRUD, только добавляется условие. Копировать текст запросов? Как-то это не так... Как обычно делают?
В данном случае возможно использование двух способов.
1. LCRUD, где L обозначает List. То есть получение некоторого списка с помощью какого-то условия(обычно это условие — подчиненность какому-то объекту). В данном случае стоит делать и различные дополнительные процедуры типа GetByName и e.t.c. Но естественно это делается не на уровне BL, а на уровне DAL. В BL аналогичная вещь может присутствовать если запросы идут с более верхнего уровня, и он обязан изолировать логику слоя DAL. Это дешевый путь, но весьма эффективный. Правда неуниверсальный.
2. Другие виды mapper'ов которые поддерживают работу с метаданными бизнес-объектов. В данном случае, можно построить генератор запросов. Некоторый вариант реализации уже описывал
Re[20]: Несколько вопросов по Меппарам.Автор: GlebZ
Дата: 20.05.05
.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, MNZ, Вы писали:
MNZ>Здравствуйте.
MNZ>Хотелось бы уточнить у общественности, как принято организовывать DAL и BL слои приложения. Разумеется, я реализую CRUD методы для каждой сущности в DAL. Но также необходимы методы для, скажем, выборки по условию и поиска. Или, например, помимо метода GetById есть метод GetByName. Реализовывать их в BL? Но там те же запросы, что и в Read методе CRUD, только добавляется условие. Копировать текст запросов? Как-то это не так... Как обычно делают?
MNZ>Спасибо.
Какая платформа используется? Для .NET 2.0 можно
так.
Здравствуйте, <Аноним>, Вы писали:
А>Какая платформа используется? Для .NET 2.0 можно так.
C++/Firebird
... << RSDN@Home 1.2.0 alpha rev. 655>>