Entity Framework VS LINQ to SQL VS 저장 프로 시저가있는 ADO.NET?


1 Answers

저장 프로 시저 :

(++)

  • 뛰어난 유연성
  • SQL에 대한 완벽한 제어
  • 사용 가능한 최고 성능

(-)

  • SQL 지식 필요
  • 저장 프로 시저가 소스 제어 밖에 있습니다.
  • 동일한 테이블 및 필드 이름을 지정하는 동안 "반복 자신"의 상당 부분. DB 엔터티의 이름을 바꾸고 어딘가에 그것에 대한 일부 참조가 누락 된 후 응용 프로그램을 깨는 높은 기회.
  • 느린 발전

ORM :

(+)

  • 급속 성장
  • 현재 소스 제어하에있는 데이터 액세스 코드
  • 당신은 DB의 변화로부터 고립되어 있습니다. 이런 경우에는 모델 / 매핑을 한 곳에서 업데이트하면됩니다.

(-)

  • 성능이 저하 될 수 있습니다.
  • ORM이 생성하는 SQL에 대한 제어가 거의 없거나 거의 없습니다 (비효율적이거나 버그가 더 있음). 개입하여 맞춤 저장 프로 시저로 대체해야 할 수도 있습니다. 그러면 코드가 엉망이됩니다 (일부 LINQ 코드, 일부 SQL 코드 및 / 또는 DB 소스 제어).
  • 어떤 추상화도 후드에서 어떻게 작동하는지 모르는 "고급 개발자"를 생성 할 수 있기 때문에

일반적인 유연성은 유연성이 뛰어나고 많은 시간을 낭비하는 것보다 제한적일 수 있지만 매우 신속하게 처리하는 것입니다.

이 질문에 대한 일반적인 대답은 없습니다. 그것은 거룩한 전쟁의 문제입니다. 또한 수중에있는 프로젝트와 필요에 따라 다릅니다. 가장 잘 맞는 것을 선택하십시오.

Question

다음과 같은 측면에서 각자를 어떻게 평가하십니까?

  1. 공연
  2. 개발 속도
  3. 깔끔하고 직관적이며 유지 보수가 쉬운 코드
  4. 적응성
  5. 사무용 겉옷

필자는 SQL을 좋아하기 때문에 항상 ADO.NET과 저장 프로 시저에 대한 열렬한 팬 이었지만 최근 Linq와 SQL 사이의 연동이 있었고 DataAccess 계층을 얼마나 신속하게 작성하고 지출하기로 결정했는지 언젠가 Linq를 SQL이나 EF로 이해할 때가 아니면 ...

난 단지 내 연구 시간을 쓸모 없게 만드는 이러한 기술에 큰 결함이 없다는 것을 확인하고 싶다. 예를 들어 성능은 끔찍합니다. 간단한 앱에는 좋지만 지금까지는 사용자에게만 도움이됩니다.

업데이트 : ORM VS SP가 아닌 EF VS L2S VS SP에 집중할 수 있습니까? 저는 주로 EF VS L2S에 관심이 있습니다. 그러나 평범한 SQl이 내가 많이 알고있는 무언가이기 때문에 저장된 procs와 비교하기를 원한다.




LINQ-to-SQL은 매우 사용하기 쉽고 백 엔드에 대해 매우 좋은 쿼리를 생성하는 주목할만한 기술입니다. LINQ-to-EF는이를 대체하기위한 것이었지만, 역사적으로 사용하기에 매우 까다 롭고 열등한 SQL을 생성했습니다. 현재 상황을 알지는 못하지만 Microsoft는 L2S의 모든 장점을 L2EF로 마이그레이션하겠다고 약속 했으므로 지금은 더 나아질 것입니다.

개인적으로, 나는 ORM 도구에 대한 열렬한 혐오감을 가지고 있습니다. 자세한 내용은 내 비난을 참조하십시오. 따라서 L2S가 데이터 액세스 계층에서 필요로하는 모든 것을 제공하기 때문에 L2EF를 선호 할 이유가 없습니다. 사실, 수작업으로 만든 매핑 및 상속 모델링과 같은 L2S 기능은 완전히 불필요한 복잡성을 추가한다고 생각합니다. 하지만 그건 나 뿐이야. ;-)



Related