문제

이것이 있습니다 DAL/BLL 디자인 제안 ASP.NET 용 Microsoft (2.0) 앱 나는 대안 중 일부를 알고 있으며 여기서 관련 질문을 읽었습니다. 그러나 오늘날이 제안 된 솔루션이 구현할 가치가 있는지 궁금합니다. 특정 단점이 있습니까?

회사 내부 사용을위한 DAL/BLL 구성 요소를 개발하고 다양한 응용 프로그램 및 스크립트에서 고객 및 직원 데이터 등에 액세스하고 싶습니다. 그러나 그 물건을 구축하기 전에이 솔루션이 '좋은'것인지 확인하고 싶습니다. 예를 들어, bll 아무것도 캡슐화하는 대신 Datatables를 통과하면 논리가 포함 된 고립 된 비즈니스 객체가 없습니다. 기본적으로 CRUD 작업을 약간 완화하고 컨트롤을위한 데이터베이닝을 허용하는 멍청한 계층 일뿐입니다.

이 분야에서 경험이있는 사람 이이 접근법의 프로와 사기를 지적 할 수 있습니까?

도움이 되었습니까?

해결책

장점 :
- 간단한 접근 방식과 일부 데이터 맵핑은 데이터 가능한 것과 함께 수행됩니다.
- 쿼리 선택, 추가, 업데이트 및 삭제를위한 몇 가지 편의성을 제공합니다.
- 테이블이 거의없는 매우 간단한 디자인에 적합 할 수 있습니다.
-Selfeperencing ER Degigns 또는 ER 's가 적고 간단한/몇 가지 조인에 적합합니다.
- 간단한 데이터 저장소가 필요한 경우 적합합니다. 즉. "비즈니스 객체"에 복잡한 OO 아이디어를 적용 해야하는 경우이 패턴은 상황을 더욱 어렵게 만듭니다.

단점 :
- 큰 OO 모델 이이 패턴에서 어려움을 겪을 것입니다
- 많은 테이블, 복잡한 관계 또는 OO 객체 요구 사항이있는 복잡한 ER 디자인은이 패턴에 맞지 않습니다. DataTables는 LINQ와 같은 코드 인 객체 쿼리에 대한 많은 도움을 제공하지 않습니다.
- 대부분의 쿼리는 SQL로 수작업으로 작성해야합니다 (여기에는 조인 포함). 예, 쿼리 디자이너를 사용할 수 있지만 많은 도움이되지 않습니다.
-이 접근법에는 많은 코드 복제가 있습니다. 당신은 BLL 클래스에 많은 CRUD 메소드를 작성합니다 (처음부터 작성해야 함).

결론:실제로 요구 사항에 따라 다릅니다. 구현이 작거나 단순하면 좋은 생각 일 수 있습니다. 그러나이 방법으로는 작은 아이디어로 성장하는 것이 어려울 것입니다. 더 OO 접근 방식은 나중에 리팩토링/확장을 훨씬 더 잘 설정합니다. 이 패턴은 또한 오래/구식입니다. 객체 쿼리 iqueryable/linq가 더 인기가 있으며 곧 더 넓은 표준이 될 것입니다. 이 마차에 탑승하는 것이 좋습니다. 장기적으로 개인 개발에도 더 좋을 것입니다. :디

일부 링크 :

다른 팁

DataTables를 사용하지 않는 것이 좋습니다. 전체 프레임 워크가 List <> 또는 Queryable <>으로 전달할 수있는 일반 객체와 함께 작동하는 도메인 중심 디자인 구현을 살펴보십시오. DataTables는 더 이상 .NET에 포함해서는 안되는 쓰레기입니다.

또한 Microsoft Unity 또는 StructureMap과 같은 제어 프레임 워크의 종속성 주입 / 반전을 사용하여 느슨하게 결합 된 코드를 작성하는 것이 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top