2012-07-19 2 views
0

나는 MSDN에서 다음과 같은 기사를 읽고 : http://msdn.microsoft.com/en-us/library/aa581779 그것은 데이터 계층, 비즈니스 로직 계층 및 프리젠 테이션 레이어를 만드는 등 getProductsDAL(), getProductsBLL() 또는 같은 이름 지정 규칙을 가지고에 대해 이야기ASP.NET 계층화 된 디자인

심지어 그들을 클래스 라이브러리로 분리합니다.

제 질문은 .NET 데이터 집합이 사용되지 않는 경우 개발자가이 방법을 따르는 지 여부입니다. getProducts라는 함수가 있습니다.이 함수는 연결 개체를 사용하여 데이터베이스에 연결 한 다음 SQLDataReader를 사용하여 결과 집합을 반복하고 페이지에 결과를 표시합니다. 이 같은 기능을 여러 레이어로 나누는 것에 대해 생각하고 있습니다.

+1

downvotes에 대한 불쌍한 생각, 이것은 많은 개발자들이 한 단계에서 물어 보는 질문입니다. 읽기 : http://stackoverflow.com/questions/1182303/n-tiered-vs-n-layered-architecture-design and this http://en.wikipedia.org/wiki/Multitier_architecture – callisto

답변

2

길을 설정하는 경우 :
데이터 영역은 연결을 열고, 쿼리/저장 프로 시저를 실행하고 데이터 집합이나 데이터 테이블을 반환하는 메서드로 구성됩니다. 이 레이어는 위의 레이어에서 연결 정보를받지 않으며 모든 메서드의 쿼리 결과 만 반환합니다. 이 수준에서 연결이 인스턴스화됩니다.

비즈니스 로직 계층에는 각각 하나 이상의 데이터 계층 메소드를 호출하는 메소드가 있습니다. 예 : 새 사용자를 추가하면 해당 사용자에 대한 사용 권한을 설정해야하므로 DL.InsertUser (params ...) 및 DL.SetPermissions (int Userid, List 사용 권한)은 BL.AddNewUser (params ...)에 의해 호출됩니다. 또한 기본 권한의 목록을 가져옵니다 다른 DL 방법을 부를 수있는이 BL 방법은 새 사용자를 할당

모든 적절한 새로운 사용자 정보와 BL.AddNewUser (PARAMS을 ...)를 호출 할 것입니다 귀하의 UI 레이어

+0

이것이 좋은 것 같니? 연습? 나는 낮은 응집성과 밀접한 결합력을 가진 ASP.NET 응용 프로그램을 상속 받았습니다. 나는 미래 발전을위한 체계적인 접근법을 따르려고 노력하고있다. 이것은 당신이 따라갈 패턴입니까? – w0051977

+0

나는 높은 응집도와 느슨한 결합력을 가진 시스템을 구축했습니다. 올바른 수업에서의 수업 배치 방법을 일관되게 선택하고 수업을 여러 목적으로 사용하지 않도록하십시오. – callisto

+0

프리젠 테이션 계층은 비즈니스 로직 계층을 호출하고 비즈니스 로직 계층은 데이터 액세스 계층을 호출합니까? 나중에 비즈니스 논리에서 반복 될 수있는 데이터 계층에서 SQLDataReaders를 반환하는 방법에 대해 생각하고있었습니다. 그런 다음 비즈니스 로직 계층은 페이지를 넣을 테이블을 반환 할 수 있습니다. – w0051977

관련 문제