Entity Framework는 프로덕션 준비가 되셨습니까? [닫은]


10

나는 Entity Framework에서 새로운 프로젝트를 찾고 있으며 프로젝트에 대한 연구의 일환으로 '실제 세계'구현에 안정적이고 준비가되어 있는지 일부 산업 전문가에게 문의하고 있습니다.

실행 중입니다 :

  • EF
  • NHibernate
  • DevExpress XPO

나는 이미 XPO에 대해 많은 경험을 가지고 있지만 특별히 만족하지는 않습니다.

답변:


8

예, 그러나 몇 가지주의 사항이 있습니다.

  • Microsoft가 전적으로 지원하고 있으며 점점 커지고있는 커뮤니티를 보유하고 있지만 가장 가까운 경쟁자 인 nHibernate보다 새로운 것은 아직 성숙하지 않은 커뮤니티입니다.

  • 덜 성숙한 커뮤니티와 함께 ​​EF4에서 기능을 사용할 수 있지만 간신히 문서화 되는 경우가 있습니다 . 또는 EF4는 Google이 도와 드릴 수없는 예외를 처리합니다.

  • Microsoft가 의도 한대로 사용하면 모든 기능을 갖추고 있지만 내 경험으로는 기존 시스템에 맞게 개조하기가 매우 어려울 수 있습니다. 이상적으로는 100 % Microsoft 스택이있는 그린 필드 시나리오에서 사용합니다. 다른 시스템과 섞일 수있을만큼 유연하지만 그렇게하면 어려움이 크게 증가합니다.

그러나 요점을 되풀이하기 위해서는 생산에 사용하기에 완벽하고 안정적입니다.


분명해 보이지만 통증을 유발할 때까지 간과되는 한 가지 중요한 점은 ORM이 관계형 패러다임에서 OO 패러다임으로 매핑하는 것입니다. 이러한 계층 중 하나가 해당 패러다임의 규칙을 따르지 않으면 추가로 상처를받을 것입니다.

관계형 / 세트 기반 SQL 및 OOP 패러다임에 정통한 경우 ORM을 사용하면 두 가지가 버터처럼 섞일 수 있습니다. 데이터베이스가 OO 인 것처럼 보이고 OO 코드가 레코드 기반 인 것처럼 보이는 경우 YMMV.


+1 : 정보 주셔서 감사합니다. 다행히도이 프로젝트는 .NET 스택에서 거의 전적으로 그린 ​​필드 프로젝트이며 (여전히 mysql과 sql 서버 사이에서 토론 중) 도메인을 먼저 모델링하고 테이블 구조를 생성 할 것입니다.
Steven Evers

@ SnOrfus : FWIW 최근에 MySQL 위에서 EF를 사용하기 시작했으며 실제로 그것을 즐기고 있습니다.
Eric King

5

우리는 여러 프로덕션 응용 프로그램에서 EF를 사용하고 있습니다. 또한 여러 프로덕션 앱에 NHibernate가 있습니다. EF가 "Microsoft가 의도 한대로 사용될 때"가장 잘 작동한다는 STW의 의견은 확실히 사실입니다. NHibernate 팀이 의도 한 패턴에 따라 사용될 때 가장 잘 작동한다는 것도 NHibernate의 경우에도 마찬가지입니다. XPO에 대한 지식이나 경험이 없습니다.

NHibernate를 생산에 투입하는 것을 후회하지 않습니다.
Entity Framework를 프로덕션 환경에 넣는 것을 후회하지 않습니다.

EF를 사용하는 추진 요인 중 하나는 LINQ와의 통합이었습니다. NHibernate는 LINQ 와도 많은 작업을 수행했지만 아직 조사 할 시간이 없었 음을 알고 있습니다.


모두 작업 배울 수있는 좋은 방법입니다 방법 모두에서 작동 할 수 있습니다. VB.NET과 C #을 배우는 것과 조금 다릅니다. 차이점이있을 때 질문을하고 그 질문을하면 결국 이해력이 크게 향상됩니다.
STW

3

우리는 웹 프로젝트를위한 Code First 접근 방식과 함께 EF4.1을 사용하고 있으며 앞에서 언급했듯이 Microsoft가 의도 한대로 사용법을 유지하면 많은 문제를 예방할 수 있습니다.

그러나 시스템이 아직 성숙하지 않았다는 것을 알 수 있습니다.

  1. 동작이 여전히 많이 변경됨 (CTP5에서 4.1로 비교)
  2. LINQ to Entities 생성기는 기본 유형 (Int, String, lot) 만 처리 할 수 ​​있습니다.
  3. 기존 데이터 세트를 병합하려고 할 때 일부 기능이 완전히 직관적으로 작동하지 않았습니다.
    1. 특정 dbset에 대해서만 테이블 정의를 작성할 수 없습니다.
    2. 날짜 시간과 같은 필드를 매핑하려면 인터넷 검색이 필요합니다.
  4. 다른 알려진 문제보기

2

실제로 전체 스택을 사용하지는 않았지만 제품에서 단편을 사용하고 우리는 필요에 따라 일부 조각을 조정해야하지만 상당히 성숙한 것처럼 보입니다.


0

그렇게 생각합니다. 다중 테넌트 웹 응용 프로그램을 개발하기 위해 EF4 코드 우선 (CTP)을 사용하고 있습니다.


+1-예, 대규모 엔터프라이즈 프로젝트에서 집중적으로 사용한 팀에서 일부 코칭을 해왔으며 꽤 효과가있었습니다. 그것은 최신이 아닌 첫 번째 버전이었습니다. 최신 버전을 사용하는 것이 100 % 안전하다고 확신합니다.

실제로 프로덕션 환경에서 실행하지 않은 소프트웨어를 100 % 확신 할 수있는 방법을 모르겠습니다.
Jeremy

-1

EF 4와 새로운 Model-First 접근법으로 프로젝트를 시작하고 있습니다.

내가 본 것에 대해 EF 4는 훨씬 강력하고 기능이 완벽하여 첫 번째 버전입니다 ... 나는 그것을 갈 것이라고 말하고 싶습니다.)


-1

예. 그러나 다른 프레임 워크와 마찬가지로 업데이트가 발생할 때 응용 프로그램을 업데이트하고 다시 테스트하기위한 리소스를 할당해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.