2008-09-10 8 views
4

많은 .NET 프로그래밍을 수행하지는 않았지만 Microsoft의 Patterns and Practices 그룹에서 게시 한 몇 가지 응용 프로그램 블록을 살펴 보았습니다. 아마도 응용 프로그램 별 코드을 쓰는 동안 참고 자료로 사용되는 일부 사용자 정의의 Microsoft의 응용 프로그램 블록 사용

  • 샘플 코드,
  • 소스 응용 프로그램에 추가 응용 프로그램에 직접 링크

    • 을 그들과 함께 내장 : 나는이 일반적으로 어떻게 사용되는지 궁금 해서요

    이러한 세 가지 사용법은 모두 공통적이지만 가장 일반적인 사용 패턴은 무엇입니까?

    "모두에게 사용되는 몇 가지 특정 응용 프로그램 블록이 있습니까?"

    참고 :이 질문은 관련되어 있지만 Enterprise Library Application Blocks OR Home Grown Framework?과는 관련이 없습니다.

  • 답변

    2

    저는 보통 프로젝트에 소스를 넣은 다음 인텔리 센스 (intellisense)와 더 잘 이해할 수 있습니다. 나는 그들을 전혀 사용자 지정하지 않는 경향이 있습니다. 나는 그들이 필요할 때마다 재고 바이너리를 배포 할 수 있도록 재고가있는 것을 좋아합니다.

    3

    나는 기업 lib 디렉토리 3.1 (2007 년 5 월)의 여러 응용 프로그램 블록을 시도하고 여기에 몇 가지 의견은 다음과 같습니다

    캐싱 응용 프로그램 블록 : 인 메모리 캐싱 (같은 간단한 시나리오에서 System.Web.Caching 미만 흥미) 예외 처리 & 로깅 : 지나치게 복잡합니다. NLog 또는 Log4Net이 더 나은 솔루션입니다.

    다른 블록을 살펴 보았지만 프로젝트에 적합하지 않았습니다.

    마지막으로 우리는 EntLib를 완전히 삭제했습니다. 사용자 정의하기가 어려웠 기 때문에 EntLib를 완전히 삭제했습니다. EntLib보다 적은 모 놀리 식 솔루션을 고려해 보라고 권합니다.

    1

    가장 유용한 방법은 솔루션 항목으로 App 블록 \ EntLib을 추가하는 것입니다. 그렇게하면 프로젝트를 빌드 할 때마다 다시 컴파일되지 않으므로 (빌드 프로세스에 전혀 참여하지 않음) 소스 코드 \ set breakpoint 등에 쉽게 액세스 할 수 있습니다.

    +0

    FYI : 전체를 추가하고 구성 관리자에서 솔루션을 사용하여 빌드하지 않도록 지정할 수 있습니다. – GEOCHET

    +0

    솔루션 항목을 사용하는 것을 선호합니다. 누락 된 프로젝트가있는 경우에도 솔루션을 구축 할 수 있습니다. – aku

    2

    우리는 EntLib 3.1 바이너리를 전역 어셈블리 캐시를 만들고 프로젝트에 참조를 추가하십시오. 우리는 일반적으로 로깅 프레임 워크 만 사용합니다.

    3

    저는 Microsoft의 Enterprise Library를 광범위하게 사용했습니다. 가능하면 일반적으로 프로젝트에 포함 시켜서는 안됩니다. 컴파일에 드는 추가 비용이 많이 든다. 또한 프로젝트에 소스 코드를 사용하여 클래스를 사용할 이유가 없습니다. 프로젝트에서 DLL에 대한 참조를 추가하는 동안 코딩 중에 인텔리전스를 얻을 수 있습니다. 또한 개발자 환경에서 여러 코드베이스를 사용하지 않는 것이 좋습니다. 클래스를 사용자 정의해야하는 경우, 자체 솔루션에서 열고 클래스를 활성화하십시오. 물론 변경 사항을 롤백해야 할 경우 버전 제어 (VSS 또는 Subversion)를 사용하는 것이 좋습니다.

    일반적으로 더 잘 코딩 된 Microsoft 클래스 (예 : Log4Net, nUnit 등)에 대한 오픈 소스 대안이 있습니다. Microsoft 코드는 비대 해져 비효율적 인 경향이 있습니다.

    0

    DLL에 대한 참조를 추가하여 블록을 사용하여 "로컬 복사"가 설정되어 앱과 함께 응용 프로그램의 bin 폴더에 배포되도록합니다. 즉, 우리는 GAC를 배울 필요가 없습니다. 훨씬 간단합니다!

    디버깅 할 때 Visual Studio는 소스 코드가 프로젝트에 직접 포함되어 있지 않더라도 하드 코드에 EntLib 소스 코드가있는 한 소스 코드에 계속 액세스 할 수 있습니다. 처음 사용할 때 위치를 묻는 메시지가 표시되고 그 후에 기억합니다.

    현재 캐싱, 예외 및 로깅 블록을 사용하고 있습니다. 우리는 나머지 부분에 대한 유스 케이스를 아직 생각하지 못했습니다.