2008-11-04 5 views
1

캐슬 액티브 레코드? 일반 NHibernate? 아음속? 엔티티? Nettier와 (과) 비슷한가요?어떤 ORM을 사용할 지 어떻게 결정합니까?

하나를 사용하고 싶지만 결정하기에 충분하지 않습니다. Nhibernate는 죽이고 복잡한 것처럼 보이지만 광범위하게 사용됩니다. 아음속은 청초하고 쉬운 것처럼 보입니다. 그러나 안정적입니까? 나는 CodeSmith를 가지고 있으며 Nettiers도 지적했다. 다른 사람들은 어떻게 평가하고 무엇을 사용할 지 결정합니까? 각각의 기능을 볼 수있는 작은 간단한 프로젝트를 만드나요? Eeeny, Meenie, Miney, Moe?

답변

1

나도 NHibernate를 선호하며, 학습에 약간의 노력을 기울인다면, 처음 나타난 것처럼 복잡하지 않다는 것을 알게 될 것임에 동의한다. 모든 기능을 알 필요없이 먼 길을 갈 수 있습니다.

그러나 작업 할 때 항상 올바른 도구를 선택해야합니다. 진정한 도메인 모델에 접근 할 수있는 앱을 개발한다면 NHibernate는 자동 선택이 될 것입니다. 언급 한 다른 것들은 진정한 객체 관계형 매퍼가 아니라 코드 생성기입니다. 그 자체가 반드시 나쁜 것은 아니지만 어느 한 방법이 다른 것보다 더 적합한 지 평가해야합니다.

+0

나는 코드 생성기를 찾고 있다고 생각한다. 거기에 nhibernate 쉽게 매핑을 만들기위한 괜찮은 도구가 있습니까? – nportelli

2

나는 NHibernate를 좋아한다. 실제로 그렇게 복잡하지는 않습니다. 놀랍지 만 융통성이 있으며, 속성과 기타 펑키 한 것들로 객체 모델을 오염시키지 않아야합니다.

액티브 레코드 패턴은 조롱을 더 복잡하게 만들 수 있으므로 도메인 패턴만큼 C#과 같은 정적 형식의 언어에 잘 맞지 않습니다.

+0

그러나 다른 한편으로는, OP가 일반적으로 ORM에 처음이라면, 나는 그의 첫 번째 침략이 어쨌든 공간은 ActiveRecord처럼 보일 것입니다. Castle.ActiveRecord는 nhibernate에 대한보다 부드러운 소개를 제공하기 때문에 간단하게 고려할 가치가 있습니다. 나를 위해 잘 일했다! –

0

질문은 "내가 어떻게 선택해야합니까?"가 아니기 때문에 "내가 무엇을 선택해야합니까?":

먼저 사용하기 쉬운 것으로 선택하십시오. 그런 다음 Google에서 조금 안정적으로 보이는지 조사하겠습니다. 그런 다음 여러 스레드 유형의 장점과 서로 다른 유형의 관계와 상속 관계가있는 도메인 구조를 사용하여 직접 스트레스 테스트를 해보겠습니다.

또한 http://polepos.sourceforge.net/ 에서 영감을 얻을 수도 있습니다. 이는 데이터베이스 성능 벤치 마크이지만 대부분 자바 프레임 워크 용입니다. 당신이 그것을 위해 있다면, 당신은 소스 코드를 .net에 맞출 수 있습니다, 그것은 굉장히 복잡하지 않습니다.

즉, 현재 즐겨 찾기는 ActiveRecord 및 LINQ입니다.

0

하나를으로 결정하고 평가할 ORM에 해결책이있는 일반적인 문제를 찾으려면 가장 좋은 방법이라고 생각합니다. 당신은 프로그래밍 패러다임, 스타일, 코드의 양, 복잡성 및 그런 종류의 것들에 관해서 아이디어를 얻을 것입니다.

관련 문제