문제

안녕하세요 저는 ORM Tool Crossroad에있는 것 같습니다. 비슷한 도전에 직면 한 사람들의 조언을 원합니다. 과거에는 Nettiers 템플릿과 함께 코드 메스를 사용하여 DAL을 모두 생성하는 것이 매우 좋았지 만, 어떤 이유로 든 이것을 삭제하기로 결정했습니다.

그래서 나는 교차로에 있고 다음을 발견했습니다.-

  1. 나는 Plinqo (LINQ에서 SQL)를 살펴 보았지만, Microsoft가 LINQ에서 SQL을 불확실하게 사용하는 것처럼 보이는 것은 좋은 선택이 아닐 수도 있습니다.
  2. Linq to Entities- 이것은 아직 초기 단계에 있으며 내가 틀렸을 수도 있지만 사람들은 부풀어 오르고 저장된 절차에 대해 불평하고 있습니다.
  3. 나는 nhibernate를 보았습니다. 이것은 아마도 최선의 선택 일지 모르지만 가파른 학습 곡선 인 것 같습니다.
  4. llblgen을위한 ditto
  5. subsonic- 이것에 대해 잘 모르시겠습니까?
  6. 시도되고 테스트 된 네티어를 고수하고, 부풀어 오르고, 부풀어 오르고, 엔터프라이즈 라이브러리를 사용해야한다는 사실을 잊고, 동적 SQL을 잊어 버리고, 포럼에서 거의 활동이 없다는 것을 잊어 버리십시오. 이것을 잊고 사용하십시오!

나는 이미 Codesmith를 소유하고 있으며 다른 것을 구매하고 싶지 않습니다. 생성 된 코드는 중간 신뢰 모드에서 작동해야합니다 ...

내가 놓친 다른 사람들이있을 수 있습니다. ORM 도구가 왜 볼 가치가 있는지 설명하는 답변을 찾고 있습니다.

감사합니다. Richard

도움이 되었습니까?

해결책

마지막 프로젝트에서 .nettiers를 직접 사용했습니다. 그러나 나는 현재 일하고있는 순간 우리는 LINQ 2 엔티티를 시도하고 있습니다. 당신은 linq2ef가 성숙하지 않은 것에 대해 옳습니다. EDMX 파일에서 코드를 생성하는 T4 템플릿을 사용하는 이유는 항상 이에 대해 암시합니다. 또한 템플릿을 변경하여 비즈니스 객체, 주입을위한 인터페이스 및 DAL + DAO가 있습니다. 우리는 그것이 어떻게 작동하는지에 기뻐합니다. 좋은 점은 엔티티에 대해 LINQ를 사용할 수 있다는 것입니다.

그렇지 않으면 나는 또한 제안합니다 유창한 nhibernate (링크) 당신에게. 그것은 우리가 고려한 것들 중 하나였습니다. 그러나 당신은 스스로 많은 것을 써야합니다. 모든 코드가 생성되는 .nettiers에 익숙하지 않습니다.

부터 아소닉 3 (링크)는 단지 1 주일이 지났습니다. 나는 당신이 그것을 확인하는 것이 좋습니다. 내가 본 것에 기초하여 매우 유망한 것처럼 보입니다. 또한 T4를 사용하므로 슬라이스 및 주사위를 통해 필요를 수용 할 수 있습니다.

다른 팁

나는 몇 주 동안 몇 주를 시도하고 마침내 nhibernate와 정착했습니다. 사용자 정의하기가 매우 쉽습니다. 학습 곡선이 있으며 LINQ에서 SQL과 같은 것을 설정하는 데 시간이 조금 더 걸리지 만 이것의 상승은 마법처럼 보이지 않는다는 것입니다. 당신은 그것이 어떻게 작동하는지 이해하고 당신의 요구에 맞게 정확하게 사용자 정의 할 수 있습니다. 커뮤니티도 매우 훌륭하고 사용 가능한 문서가 많이 있습니다. 현대 ORM (코드 생성, Poco 's를 사용할 수 없음)과 성숙 사이의 균형이 잘 잡힌 것 같습니다.

dataObjects.net을 시도 할 수 있습니다. 이 ORM은 "Code-First"접근 방식을 사용하여 DB 스키마 업그레이드 및 LINQ를 지원합니다. 이 간단한 설명을 확인하십시오 http://www.x-tensive.com/products/do/.

가장 유명하고 강력한 두 가지 도구는 지금 nhibernate 그리고 llblgen pro.

nhibernate = 매우 도메인 구동 지향.

llblgen pro = 데이터 중심 지향.

그것들은 모두 우수하며, 그 자연에 따라 각 프로젝트마다 다른 프로젝트에 따라 다른 프로젝트가 다른 프로젝트에 따라 더 적합 할 수 있습니다. 또한 개인 선택과 선호도 또는 개발 팀의 문화에도 종종 발생합니다.

결국 내가 말했듯이, 전반적으로 그들은 모두 우수하며 둘 다 약간의 장점/단점이 있습니다.

orm을 사용하는 이유는 여기에 링크가 있습니다. Glenn Block의 블로그 게시물 그것은 정말로 모든 것을 말합니다. 내 경험에 관해서는, 1 년 전에 나는 ORM을 사용하려고했고 nhibernate를 선택했습니다.

나에게 지속성은 내 도메인 모델에서 관계형 데이터에 이르기까지 어떤 형태의 매핑을 넘어서 더 이상 걱정할 필요가없는 것입니다. 나는 LINQ에서 SQL을 보았지만 데이터가 내 객체에 어떻게 매핑되는지에 대한 충분한 제어를 제공하지 않았으며 엔티티 프레임 워크는 내 취향에 충분히 성숙한 곳이 없었습니다. 우리 팀 중 일부는 중고 Nettiers와 Codesmith에서 작업하고 있었고, 당신이 말했듯이, 부풀어 오른 코드 생성 (및 그 금액)이 조금 Quessy를 느끼게했습니다. 결국, 나는 NHibernate를 선택했습니다. 왜냐하면 그것은 나에게 가장 성숙한 Orm 중 하나이기 때문에 잘 알려진 객체 모델을 지원할뿐만 아니라 쿼리 시설에 내장되어 있으며 본질적으로 다른 성능 문제를 해결하는 기능을 제공했기 때문입니다. 캐싱과 같은.

그렇습니다. 학습 곡선이 꽤 가파르다는 것을 인정할 것입니다. 그러나 시간을 투자하면, 당신이 얻을 수있는 혜택은 엄청납니다. 블로그 Ayende Rahien 그리고 Fabio Maulo nhibernate에 대한 정보의 광산입니다. 이를 통해 nhibernate에 대한 LINQ 지원이 있습니다 LINQ 제공 업체 하지만 스티브 스트롱 현재 NHibernate에서 완전한 LINQ 지원을 제공 할 기능을 구성하고 있습니다. 그래서 그것은 모두 nhibernate에 대한 것이지만 하루가 끝나면 당신이 가장 편한 것에 달려 있습니다.

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