저는 CSharp 클래스를 데이터베이스 테이블에 매핑하는 단계에 있습니다. 다른 도구와 비교 한 후에 ORM 도구로 NHibernate를 사용하기로 결정했습니다. 나는 NHibernate로 실제 프로젝트를 한 번도 해본 적이 없으며 매핑의 대안을 고려 중이다.NHibernate 또는 FluentNHibernate 또는 ActiveRecord?
ActiveRecord : ActiveRecord를 사용하면 ActiveRecord를 사용하여 생산성을 크게 높일 수있다. 그러나 나는 CSHARP 클래스에 속성을 추가하는 아이디어를 좋아하지 않는다. 결국, 수업에는 데이터베이스 관계에 대한 지식이 없어야합니다. ActiveRecord를 사용하면 내 분리 된 클래스를 ActiveRecord에 바인딩 할 것이고 나중에 언더 라인 DAO 레이어 구현을 전환하고 싶다면 힘든 시간을 갖게 될 것입니다.
FluentNHibernate : 매핑을 시작할 때 FluentNhibernate가 내 첫 시도였습니다. 그러나이 접근 방식에는 몇 가지 문제가 있습니다. 1) 매핑 전략이 바이너리 파일로 컴파일 된 것을 좋아하지 않습니다. xml 파일을 수정하여 매핑을 변경하고 싶습니다. 2) FluentNHibernate의 완성도. NHibernate는 오랫동안 사용되어 왔고 사용자가 아주 많기 때문에 성숙함에 대해 상당히 편안합니다. 대조적으로 FluentNhibernate는 비교적 젊으며 많은 사용자가 테스트하지 않았습니다. 어떤 문제가 생겨도 문제를 해결할 수있는 근원지로 잠수 할 수는 있지만 저수준 구현을 다룰 수있는 기술이 마음에 들지 않습니다. 3) FluentNHibernate에 대한 문서의 가용성은 NHibernate의 것보다 훨씬 큽니다. 나는 단단한 벽에 부딪 칠 때 갈 곳을 갖고 싶다.
NHibernate : 현재 Naked Nhibernate xml을 사용하여 매핑을 수행하고 있습니다. 솔직히 XML을 사용하면 큰 골치 거리가 있습니다. 사실, .hbm.xml 파일을 버리고 ActiveRecord 또는 FluentNHibernate를 하루에 여러 번 가져 오는 충동에서 벗어나야합니다.
여기 내 딜레마가 있습니다. "이 지저분한 일을 끝내자!" 또는, 지금 고통스러워하고 나중에 비교적 쉬운 시간을 갖기 위해 "Good practice guideline"을 따라야합니까?
의견이 있으십니까?
답장을 보내 주셔서 감사합니다. 나는 지금 ActiveRecord로 갈 것이다. –