2010-11-27 2 views
1

저는 최근 데이터 액세스 레이어, 비즈니스 로직 레이어 및 프리젠 테이션 레이어에 대해 배우고 있습니다.하지만 아직 명확하지 않은 몇 가지 사항이 있습니다.BLL에 ASP 컨트롤 이벤트를 넣어야합니까?

프리젠 테이션 레이어와 함께 DAL 및 BLL을 사용하여 데이터베이스의 정보를 가져 오거나 설정할 수 있습니다.

그러나 나는 또한 ASP 컨트롤 이벤트에 대해 생각하고 어떻게 구현해야하는지 생각했다.

예를 들어 BLL에 버튼 클릭 이벤트를 넣으려고합니까, 아니면 그냥 파일 뒤에 ASPX 코드로 남겨 두어야합니까?

내가 BLL에 넣어야한다면 어떻게해야할까요?

BLL에있는 메소드 호출 방법을 잘 모르겠습니다. 따라서 조언을 주시면 감사하겠습니다. 이 구조를 감안할 때

+0

두 개 이상의 답변을 허용 할 수 있기를 바랍니다. Tom B의 대답을 선택한 이유는 N-Tiered 접근법에 대해 더 많이 배우는 동안 이해할 수있는 가장 간단한 지침 이었기 때문입니다. –

+0

문제 없습니다. 우리는 기본적으로 Andrew가 적절한 아키텍처에 대한 높은 수준의 설명을 제공했다는 점을 제외하고는 기본적으로 동일한 것을 말하고 있습니다. 인터페이스를 사용하여 일반적인 예제 구현을 추가했으며 Tom은보다 구체적인 예를 제시했습니다. 무엇보다도 당신이 가장 잘 이해하는 데 도움이되는 모든 것 =) – bitxwise

답변

2

이벤트가 비즈니스 모델과 관련된 경우 BLL에 메소드를 작성해야합니다. UI 유형의 이벤트 인 경우 코드 숨김으로 처리하십시오. 예를 들어, 사용자가 버튼을 클릭하여 배송을 계산하는 경우 버튼의 클릭 이벤트 핸들러 (코드 숨김)에서 BLL 객체의 CalculateShipping() 메소드를 호출합니다. 그러나 페이지의 배경색을 변경하는 단추가있는 경우 (더 나은 예를 생각할 수 없다) 코드 뒤에 완전히 처리 할 수 ​​있습니다.

3

:

프리젠 테이션 -> 비즈니스 -> 데이터

모든 계층 단지에 대해 알고과 그 오른쪽에있는 계층에 대한 가정을해야한다. 즉, 프리젠 테이션 계층은 비즈니스 계층과 통신하여 API를 사용할 수 있지만 데이터 계층과 직접적으로 통신해서는 안됩니다. 비즈니스 계층은 데이터 계층의 API를 사용할 수 있지만이를 사용하는 프리젠 테이션 계층에 대해 전혀 알거나 가정하지 않아야합니다. 그리고 분명히 데이터 계층은 다른 계층들에 대해 아무것도 모를 것입니다.

이 일반 교장을 따를 경우 귀하의 신청서가 더 간단하고 유지 보수가 쉽다는 것을 알게 될 것입니다.

버튼 클릭 이벤트는 프레젠테이션 계층에 속합니다. 버튼 클릭 이벤트를 비즈니스 로직에 넣으면 두 레이어 사이의 선이 흐려져 불필요한 결합이 생성됩니다.

1

ASPX 코드 숨김 파일 (프레젠테이션 계층)은 BLL (연결 결과)을 직접 참조하거나보다 서비스 지향적 인 접근 방법을 사용할 수 있습니다. 여기에는 프레젠테이션 계층에서 참조하고 비즈니스 계층에서 구현하는 인터페이스를 만드는 작업이 포함됩니다. 애플리케이션 초기화 (예 : Global.asax 파일) 중에 BLL을 의존성 삽입이나 다른 접근 방식을 통해 프리젠 테이션 레이어에 연결할 수 있습니다.