새로운 Windows 프로젝트를 준비 중이며 사용할 DAL 기술의 종류가 궁금합니다. 원래 건물을 짓는데 너무 많은 시간을 소비하지 않는 더 간단한 것을 찾고있었습니다. 그러나 장기적으로 볼 때 효율적이고 확장 가능해야한다는 것도 알고 있습니다.새로운 .NET 3.5 프로젝트 : 어떤 DAL 기술을 사용해야합니까?
3 계층 시스템에서 WPF (MVVM) 클라이언트 및 WCF 서비스를 사용할 계획입니다. 조금 구식,하지만 매우 쉽게 사용할 수 있습니다 및 대부분의 지역이 자동으로하자
PRO
데이터 집합 :
그냥 내가 익숙 기존의 모든 기술을 요약합니다 생성되었습니다. 데이터 세트에 관한 한 가지 강력한 측면은 관계를 통해 관련 데이터를 쉽게 탐색 할 수 있다는 점입니다. 또한 데이터베이스에서 연결이 끊긴 방식으로 타임 스탬프를 자동으로 처리하여 업데이트를 단순화 할 수 있습니다. 유효성 검증을 포함합니다.명칭 : 꽤 오래된 구식. 어떤 이들은 실제 비즈니스 객체/모델이 아니라 SQL 데이터 테이블의 미러라고 생각합니다. WCF 서비스/클라이언트간에 전달하는 것은 자체 생성 된 비즈니스 개체보다 어려울 수 있습니다.
엔터프라이즈 라이브러리 4.1 - 데이터 액세스 블록
PRO 다음 DAL 아름답게 팩토리 패턴으로 배치됩니다. 자동으로 연결 개폐를 처리합니다. 대부분의 경우 매우 사용하기 쉽습니다. 그것은 당신의 비즈니스 객체를 만들기 위해 dataSets와 일반적인 SQL Sps를 모두 지원합니다. 지속적인 프레임 워크의 일부로 효율적인 최종 제품을 위해 나머지 엔터프라이즈 라이브러리와 함께 사용하는 것이 훨씬 효율적입니다.
명칭 : ??
Linq는 SQL에
PRO : 자동 비즈니스 오브젝트로 SQL 테이블을 생성합니다. CRUD하기 쉽습니다. 이론적으로는 아주 좋은 방법입니다.
CONTRA : 나왔을 때 주변에서 놀았 으면, 나는 그것이 엷어 지거나 때로는 불안정하다는 것을 발견했습니다. Microsoft가 발표 한 Entity Framework 4.0 (.NET 4.0의 일부)은 Microsoft에서 권장하는 방식으로 이미 죽은 기술로 간주됩니다. .NET 4.0에는 몇 가지 버그 수정이 예상되지만 계획을 확장하는 기능은 더 이상 없습니다.
엔티티 프레임 워크 4.0
나는 그것에 대해 아무것도 모르지만, 결국 .NET 4.0에서와 다른 모든 것들을 대체 할 유일한 것이다. 나는 또한 그것을 사용하고 싶은 유혹을 받는다. 그러나 베타에 아직도 그것 이후, 나는 그 길을 아직 갈 수 없을 것이다.
엔터프라이즈 라이브러리 4.1 - 데이터 액세스 차단을 사용하고 내 비즈니스 개체를 만들려고 매우 유혹 받고 있습니다. 큰 사기꾼은 DAL을 만드는 데 더 많은 시간이 걸릴 것입니다. 누군가가 데이터 액세스 블록을 통해 DataSets을 사용하도록 나를 설득 할 수 없다면.
의견 및 아이디어는 무엇입니까? 많은 감사합니다. 케이브
나는 약간의 생각을하고 있었고 나는 당신이 옳다고 생각한다. EntLib를 사용하는 것은 손으로 모든 것을 만드는 많은 작업을 여전히 의미합니다. EF에 대해 언급 할 때 버전 4.0 베타를 의미 했습니까? 아니면 실제 버전 1.0을 의미합니까? 나는 실제로 지난 밤에 버전 1.0을 시험해보고 있었고 나는 그것이 꽤 괜찮아 보인다는 것을 말해야 만한다. 그 직전에 SubSonic을 시도했는데, 기존의 필드 중 하나와 동일한 이름을 가진 조회 테이블 용 코드를 만들지 못했습니다. 이것은 Subsonic을 혼동 시켰을 것입니다. EF 1.0은 그 일을 완벽하게 잘했으며 나는 이렇게 갈 것이라고 생각합니다. 어떻게 생각해? – Houman
EF 1은 LinqToSql만큼 풍부한 기능이 아니며 LinqToSql은 현명한 기능이 아닙니다. EF 1은 LinqToSql이 지원하는 적절한 지연로드 지원과 같은 기본 ORM 개념에 대한 지원이 누락되었습니다. –
저는 EF 1.0을 몇 가지 응용 프로그램에 사용했습니다. 데이터베이스 크기가 작고 성능에 치명적이지는 않았지만 충분히 만족했습니다. 기본 요구 사항은 "데이터를 데이터베이스 안팎으로 가져 오는 것"이었습니다. 기능, 확장 성 및 성능이 큰 관심사라면 EF를 시도해 볼 수 있지만 CSLA와 같은 다른 소프트웨어 계층을 사용하여 데이터 액세스를 추상화하여 나중에 데이터 액세스 기술을 전환하거나 업그레이드 할 수 있습니다. 물론 그 시점에서 RAD 혜택이 더 이상 없을 수도 있으며 전체 맞춤 스택을 고려할 수도 있습니다. –