Должен ли я попытаться поместить события управления asp в BLL? - PullRequest
1 голос
/ 27 ноября 2010

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

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

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

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

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

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

Ответы [ 3 ]

3 голосов
/ 27 ноября 2010

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

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

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

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

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

2 голосов
/ 27 ноября 2010

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

1 голос
/ 27 ноября 2010

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

...