Должен ли я попытаться поставить ASP Control событий в BLL?

StackOverflow https://stackoverflow.com/questions/4291931

Вопрос

Недавно я узнал о слоях доступа к данным, бизнес-логикам и слоям презентации, но у меня все еще есть несколько вещей, которые не совсем понятны.

Я могу использовать DAL и BLL с помощью слоя презентации, чтобы получить или установить информацию в базе данных.

Но я также думал о контрольных событиях ASP и как я должен их реализовать.

Должен ли я, например, попробуйте поставить кнопку Click Event в BLL или я должен просто оставить его в коде ASPX за файлом?

И если я должен положить их в BLL, как бы я пошел по этому поводу?

Я не уверен, как сделать событие вызовов методом, который находится в BLL, поэтому любой совет будет очень оценен.

Это было полезно?

Решение

Если событие связано с бизнес-моделью, вы должны создать метод в BLL. Если это тип мероприятия UI, обрабатывать его в коде позади. Итак, например, если пользователь нажимает кнопку, чтобы рассчитать доставку, в обработчике событий кнопки Click (код позади) вызовите метод CallateShipping (Code). Если, однако, у вас есть кнопка, которая меняет цвет фона страницы (я не мог подумать лучшего примера), тогда вы полностью обработаете это полностью в коде.

Другие советы

Учитывая эту архитектуру:

Презентация -> Бизнес -> Данные

Любой слой должен знать только и делать предположения о слое к его непосредственному праву. Это означает, что слой презентации может говорить с бизнес-слоем и использовать его API, но он никогда не должен говорить непосредственно на слой данных. Бизнес-слой можно использовать API слоя данных, но он никогда не должен знать или делать предположения о уровне презентации, который потребляет его. И, очевидно, слой данных не должен знать ничего о любом из других слоев.

Если вы будете следовать этим общим директором, вы обнаружите, что ваше приложение будет проще и проще для обслуживания.

Чтобы ответить на ваш вопрос, например, кнопки Click Events принадлежат к слою презентации - поместив кнопку Click Event в вашу бизнес-логику, будет размыть линии между двумя слоями и создаст ненужную связь.

Ваш код ASPX за файлом (слой презентации) может иметь непосредственное ссылку на ваш BLL (приводит к связи в муфте), либо можно использовать более ориентированный на сервис подход. Это будет включать в себя создание интерфейсов, на который ссылаются ваш слой презентации и реализован вашим бизнес-уровнем. Во время инициализации приложения (т.е. в вашем файле Global.Asax) вы можете подключить BLL к своему презентационному слою через инъекцию зависимости или некоторый другой подход.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top