Мы пишем некоторые приложения поддержки (довольно небольшие) в нашу систему ERP.Вывод бизнес-логики с уровня доступа к данным
Таким образом, до сих пор я чувствую, что использую уровень доступа к данным для двух ролей: бизнес-уровня и доступа к данным.
У меня возникли проблемы с решением вопроса о том, что мне нужно переместить на отдельный слой, и если понадобится. Я где-то читал, что знание того, как сделать разделение слоев, является мудростью и зная, что шаблоны - это просто знание. У меня нет ни в достаточных количествах.
Так что мне нужна помощь, чтобы определить, что к чему.
В настоящее время DAL занимается извлечением данных и применением к ним базовой логики. К примеру есть такие методы, как
GetProductAvailabilitybyItem
GetProductAvailabilitybyLot
и т.д.
Если мне нужно, чтобы отделить их, что я должен делать?
Другое дело, что в моей голове заключается в том, чтобы нормализовать мой DAL и заставить его каждый раз возвращать разные сущности (через один общий метод получения), я должен был бы использовать DataTable
в качестве возвращаемого типа. В настоящее время я использую такие вещи, как List<PalletRecord>
как типы возврата.
Я чувствую, что мои приложения настолько малы, что трудно (и, возможно, бесполезно) различать эти 2 слоя.
Моя основная потребность - создать что-то, что может быть использовано несколькими интерфейсами (веб-страницы, WinForms, WPF и т. Д.).
Дополнительный пример:
Поговорим немного штрих-код. Мне нужно проверить, действительна ли принятая запись лота или нет. Я беру запись в DAL и создаю метод, возвращающий bool в бизнес-слое?
Затем я могу вызвать метод bool из любой презентации, чтобы проверить, содержит ли текстовое поле допустимый лот?
Является ли это чрезвычайно упрощенной логикой?
Я считаю, что хорошо сделать раннее разделение, даже если BL ничего не делает, а просто дает результаты и принимает запросы. Я верю, что со временем я попрошу больше. Так что, говоря, что бизнес-решения (например, islotvalid) должны перейти в BL и получить принадлежность к DAL, вполне нормально, да? – e4rthdog
Да, у вас может быть очень простой метод GetRecord (int id) ', а затем вернуть' bool' на основе свойства IsValid. Затем, если вам нужно проверить другую таблицу, чтобы проверить, действительно ли «Запись», или нет, вам не нужно изменять существующий DAL. – rae1