어떤 요소가 효과 데이터 액세스를 계층 내에서 사용하는 새로운 프로젝트가 있습니까?

StackOverflow https://stackoverflow.com/questions/201132

  •  03-07-2019
  •  | 
  •  

문제

나는 가르치는 것입니다 클래스 sson,그리고 설명할 필요가 어떤 요소가 당신의 결정에 영향을 미칠의 데이터 액세스는 기술입니다.나는 익숙한 많은 데이터 액세스 방법을 같이 입력한 데이터 세트,Linq to SQL,Linq to 체.netTiers,LLBLGen,사용자와 통화를 SQL 연결 객체고 명령 객체입니다.나의 클라이언트의 어떤 것이만 허용 저장 프로시저를 사용될 것,그리고 그들은 논의하지 않을 것이 아무것도.나의 클라이언트의 어떤 준비가 되어있지 않을 설치합니다.NET3.5 아직입니다.어떤 클라이언트가 필요 middle 웹 서비스를 계층에서 모든 웹 응용 프로그램입니다.대부분의 시간을 내가 사용 유형의 데이터 집합 및 사용자 정의 웹 서비스,또 내가 사용합니다.netTiers 와 CodeSmith.다른 무엇이어야 한다 생각을 하니?

도움이 되었습니까?

해결책

소프트웨어 프로젝트의 모든 선택과 마찬가지로 : 그것은 의존하지만 ...하지만 제 생각에는 가장 중요한 요소는 프로젝트의 환경입니다.

이것은 (어쨌든이 목록이 완료되었다고 주장하지 않습니다) : :

  • 개발 팀 및 유지 보수 팀 내에서 사용 가능한 기술 (다른 경우)
  • 필요한 기능
  • 클라이언트가 설정 한 제약 조건 (모든 고객이 사용 가능한 모든 기술을 지원하는 것은 아닙니다. 이것은 레거시 시스템을 점진적으로 교체하거나 새로운 시스템을 환경에 도입 할 때 고려해야 할 사항)
  • 입법에 의해 설정된 제약

이것이 당신에게 도움이되기를 바랍니다.

다른 팁

하나 중요한 것은 기억하는 데이터베이스는 반드시 백업 데이터 저장에 대한 응용 프로그램(분리).다른 응용 프로그램 및 프로세스 결국 수요 데이터베이스에 대한 액세스 권한에서,특히 크거나"enterprise"데이터베이스(또는 응용 프로그램)그리고 특히 충분한 시간이 있습니다.

그것을 고려하는 것이 중요:

  • ETL/부/마이그레이션
  • 외부 통합/동기화(BizTalk/SSIS)
  • 다시 사용하여 다른 응용 프로그램(특히 웹 사이트,모바일 응용 프로그램 등)
  • 보안/공격(한 접근보다 안전하는 또 다른?)
  • 유지보수 작업
  • 가용성 데이터베이스에서 사용 24/7?중 하나가는 접근 방식을 제공하는 더 나은 가용성 다른 것보다,등등.
  • 또한,일부 디자인은 고려사항이 순서입니다.당신은 당신의 튜닝을 위한 빠르게 선택,또는 빠른 쓰기?하나의 데이터 액세스 설계를 수행할 수 있는 더 나은 다른 것보다.

    나는 나타내는 단일은 총알이지만,나는 무엇을 주의하는 모든 데이터 액세스 디자인 패턴을 필요로"큰 그림"생각이 그 주소는 오늘날의 우려하고 당신이 무엇을 할 수 있는 합리적으로 예측할 수 있습 될 미래의 필요?

    또한,당신은 것을 제공하는 외부 API 를 이용하거나 일부를 위한 프레임워크는 일관된 데이터에 액세스?출이 직접 또는 간접적으로?

    가의 생각,그 모두를위한 엔티티 프레임 워크/LINQ to SQL,전통적인 저장된 절차와 같은 다른 도구 NHibernate(etc),하지만 당신은을 정당화해야 합리화하는 기술의 선택은 첫째,그리고 그것을 지키는 것은 적절한 현재 및 미래의 필요합니다.

    편집:도시에서 가장 유명한 지역인 스테이 큰 중 하나:유지관리입니다.의 일부 템플릿 중심의 솔루션을 제안 당신은 몇 가지 괜찮은 승리할 수 있는 재생 DAL 후 스키마를 변경 다른(같은 손으로 쓴 저장 프로시저).그것은 가치가 있는 계량대 생산성 향상 vs 단점이 있습니다.

    나는 당신의 원래 게시물과 Norbertb의 추가 사이에 당신이 거의 모든 것을 다루었다고 생각합니다. 절대적인 제약으로 시작하십시오 (그리고 고객이 절대라고 말하더라도 고객이 한 번은 아무 말도하지 않기 때문에 마음을 바꿀 수 없다는 것을 의미하지는 않습니다 ...). 절대적인 제약으로 필드를 좁히면 다른 것들을 봅니다.

    빠진 것 같았던 한 가지는 유연성이었습니다. 예를 들어, 두 개의 유사한 기술 중에서 선택하려고했는데, 하나가 업데이트 가능한 견해를 지원할 수 있고 다른 하나는 할 수 없다는 것을 알았다면, 그 당시에는 업데이트 가능한 견해가 전혀 필요하지 않더라도 여전히 그 중 하나를 향해 의지 할 것입니다. " 만일을 대비하여.

    나는 정말로 두 가지만 생각하고 있습니다. 첫 번째는 다른 데이터가 중요한 데이터를 가지고 있는지 여부입니다. 수백만 행을 테이블에 넣지 않는다면 아마도 모든 기술이 충분히 빠르게 작동하기 때문에 어떤 기술을 사용할 것인지는 중요하지 않을 것입니다.

    두 번째는 LINQ를 사용할 수 있는지 여부입니다. LINQ (SQL, 엔티티, LLBLGEN, IT)를 사용하여 데이터베이스를 쿼리하면 두 가지 중요한 사항이 제공됩니다. 첫 번째는 쿼리를 작성하는 것이 매우 쉽고 둘째, 요구 사항이 변경되는 경우 LINQ가 필요한 두 프레임 워크간에 전환하기가 매우 쉽다는 것입니다.

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