문제

방금 프로젝트를 시작했는데 이 프로젝트는 개인용이므로 Enterprise Library를 사용하면 어떤 이점이 있는지 궁금합니다.우리는 사무실의 여러 프로젝트에 버전 2를 사용하고 있지만 특히 데이터베이스 구성 요소에서 그 장점이 무엇인지 잘 모르겠습니다.어떤 충고?감사해요

도움이 되었습니까?

해결책

데이터베이스 애플리케이션 블록의 주요 장점은 데이터베이스에 구애받지 않는 코드를 더 쉽게 생성할 수 있다는 것입니다.개발자는 SqlConnection, SqlCommand 등이 아닌 일반 Database 및 DbCommand 개체와 주로 상호 작용합니다.따라서 다른 데이터베이스(예: Oracle)로 전환하는 것이 더 가능해졌습니다.귀하의 비즈니스 요구에 따라 이는 확실한 이점이 될 수 있습니다.EntLib은 또한 쿼리 매개변수에 DbParameter를 사용하도록 개발자에게 부드럽게 유도하여 SQL 주입 공격의 위험을 줄입니다.

다른 포스터에서 언급했듯이 데이터 앱 블록은 ADO.NET 클래스보다 다소 높은 수준이므로 동일한 작업을 수행하는 데 더 적은 수의 코드가 필요한 경향이 있습니다.

내 관점에서는 데이터, 예외 및 로깅 블록이 가장 유용합니다.Exception과 Logging을 함께 사용하면 여러 장소와 다양한 형식으로 예외(duh)를 매우 쉽게 기록할 수 있습니다.예를 들어, 스택 추적을 포함한 전체 예외 로그 항목을 Windows 이벤트 로그에 넣을 수 있으므로 비교적 쉽게 문제를 진단할 수 있습니다.

EntLib의 한 가지 단점은 일부 앱 블록이 구성 파일에 상당한 논리를 배치한다는 것입니다.그래서 당신의 논리는 더 널리 퍼져 있습니다.그 중 일부는 코드에 있고 일부는 구성 파일에 있습니다.장점은 빌드 후, 심지어 배포 후에도 구성을 수정할 수 있다는 것입니다.

다른 팁

우리 팀은 다음을 평가했습니다 Microsoft 패턴 및 실습 엔터프라이즈 라이브러리 약 2 년 전 제품 라인의 리엔지니어링의 일환으로. 우리가 사용한 유일한 부분은 데이터베이스 블록이었습니다. 우리는 심지어 일부 수업에서 우리가 인스턴스화 할 수있는 것을 포장하여 단위 테스트를 위해 달을 조롱 할 수있었습니다. Microsoft 코드 블록은 데이터베이스 작업에 정적 호출을 사용했습니다. Microsoft가 LINQTOSQL 또는 엔티티 프레임 워크 제품을 DB 블록에 통합했는지 확실하지 않습니다. DB 블록이 그 중 하나를 활용하지 않으면 지금 DB 블록을 사용하는 것을 주저 할 것입니다.

로깅이 진행되는 한, 우리는 발견했습니다 log4net Microsoft 로깅보다 훨씬 강력하고 유연한 솔루션이 되려면. 우리는 우리의 벌목 요구를 위해 그와 함께 갔다.

예외 처리를 위해 우리는 우리 자신의 것을 굴 렸습니다. Microsoft 코드는 우리가 처리하고자하는 원격 사례를 처리하지 않았으며, 제 3 자 로깅 프레임 워크를 사용하고 있기 때문에 자체 예외 라이브러리를 작성하고 이와 통합하는 것이 더 합리적이었습니다. 로깅 프레임 워크를 예외 프레임 워크에 어느 정도 통합하는 것이 매우 유용 할 수 있음을 발견했습니다. Log4Net 주위에 약간의 경량 래퍼 클래스를 작성하고 예외 로깅에서 전화를 걸어 Log4Net에 종속성을 도입하지 않았습니다.

Paul이 데이터 애플리케이션 블록에 대해 언급 한 항목 외에도 내 경험에 따라 데이터 애플리케이션 블록 ASLO는 필요한 데이터베이스 코드를 작성하는 훨씬 빠른 방법을 제공한다고 지적하고 싶습니다. 나는 일관된 외관/느낌과 개발 속도에 그것을 사용합니다.

EF를 사용할 수없는 선택은 환경에있는 제약 조건에 의해 구속력이 있습니다. 응용 프로그램은 시간당 수백만 건의 거래를 처리해야합니다. 이것은 통신 환경에서 처리의 양입니다.

EF 사용 여부는 전적으로 환경과 선택에 달려 있습니다 (선택한 기술의 한계를 아는 한). 시스템에 그러한 높은 부하가 필요하지 않은 경우, EF 사용에 문제가있을 것입니다.

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