Проверка в BLL - PullRequest
       18

Проверка в BLL

0 голосов
/ 23 мая 2011

Я где-то читал, что должен выполнять проверку в моем BLL, а также в пользовательском интерфейсе.Так ли это и как я должен обрабатывать ошибки / исключения?

Я создаю приложение для управления данными наших клиентов.Пользователи могут удалить клиента, если к этому клиенту не прикреплено ни одного проекта.Подпрограмма в BLL выглядит следующим образом:

Public Shared Sub DeleteClient(ByVal clientsID As Integer)

        Dim clientDataAccessLayer As New ClientDAO
        clientDataAccessLayer.DeleteClient(clientsID)

End Sub

Я уже проверяю пользовательский интерфейс и не вызываю эту подпрограмму, если у клиента есть какие-либо проекты, но я должен также добавить некоторую проверку в этом подпрограмме и как следуетЯ делаю это?Бросить исключение или просто не дать ему запуститься?

Ответы [ 2 ]

1 голос
/ 23 мая 2011

да.Вы должны добавить некоторую проверку в этот подпункт (bll) и выдать исключение, которое должен обрабатывать ваш пользовательский интерфейс.

Может показаться, что вы нарушаете принцип СУХОГО (потому что вы повторяете логику, чтобы остановить опцию в пользовательском интерфейсе), но бизнес-уровень всегда должен поддерживать целостность данных.Например, если вы вводите в приложение различные пользовательские интерфейсы или веб-службы, целостность данных остается неизменной.

0 голосов
/ 23 мая 2011

Я где-то читал, что я должен быть выполнение проверки в моем BLL как ну как интерфейс. Так ли это и как я должен обрабатывать ошибки / исключения?

Ваше исключение должно выполняться только на уровне презентации. Причина - Предположим, у вас есть Presentatin / DAL / BLL. При реализации обработки исключений везде будут возникать проблемы с производительностью. Хотя, с другой стороны, реализация обработки исключений в слое Presentation приведет к тому, что исключение автоматически появится в блоке catch вашей вызывающей функции

Валидация должна быть в BLL только в случае проверки достоверности по результату базы данных.

...