2009-05-27 2 views
1

nhibernate 1.2와 2.0 사이의 실제 차이점에 대한 정보를 찾을 수없는 것 같습니다. 업그레이드와 관련된 잠재적 인 문제에 관한 정보를 찾았지만 새 기능이 포함되어 있는지 또는 성능 차이에 관한 정보는 없습니다.nhibernate 1.2와 2.0의 차이

둘 사이에 큰 차이가있어 개발을보다 효율적으로 또는 쉽게 수행 할 수 있다면 상사에게 업그레이드를 권하고 싶습니다. 거기에 아무 가치가 없다면 그때 나는 현재 안정적인 라이브러리를 업그레이 드하는 지점을 볼 수 없습니다.

나는 이미 검토 한 정보에 대한 링크를 게시하려고했으나 새로운 사용자로 간주되어서 허용되지 않았습니다.

답변

4

저는 6 개월 동안 저의 작업을 업그레이드로 보냈습니다. 우리가 알아 낸 몇 가지 이점을 간단히 말하면 다음과 같은 능력을 보여줄 수 있습니다.

  • 세션 시작 시간이 크게 단축되었습니다. 이것은 시작시 SessionFactory가 초기화되는 데 걸리는 시간입니다. 시간은 ~ 45 초 였고, 지금은 ~ 5 초입니다. 프로덕션에서는별로 문제가되지 않지만 개발자에게는 번거로운 문제입니다. 대략 200 개의 도메인 객체가 있음을 기억하십시오.
  • 우리는 기본값 인 업그레이드시에 지연로드 (lazy loading) (이점은 콜렉션이 아니라 클래스)를 이용했습니다. 1.2에서 2.0으로 변경되었습니다. 그러나 우리는 완전히로드되지 않은 세션에서 연결이 끊어진 개체에 문제가 발생했습니다. 그것들은 찾기 쉽지 않지만 해결하기 쉽습니다.
  • 우리는 새로운 것이라고 생각하는 일괄 처리를 이용했습니다. NH가 실제로 의도하지 않은 일괄 업데이트 작업에는 큰 개선이있었습니다.
  • 위의 2 가지 개선 사항을 통해 야간 작업을 30 % 단축 할 수있었습니다.
  • 이전 프레임 워크에 대한 가장 큰 불만 중 하나는 1.2에 대한 지원 및 최신 정보를 찾는 것이 어려워 졌기 때문입니다.
  • 페이징 및 카운트와 같은 항목에 대한 향상된 조건 쿼리 지원이 있습니다. 기준 쿼리는 1 차 수준의 캐시를 사용하기 때문에 좋습니다.
  • 강력한 형식의 컬렉션은 작업하기에 매우 즐겁습니다. 때때로 복잡한 SQL 대신 LINQ를 도메인 개체에 사용하고 강력하게 형식화 된 컬렉션을 사용하는 것이 좋습니다.
  • 현재 Ayende의 프로파일 러를 사용하고 있습니다. 현재 2.0+를 위해 구축되었습니다.
  • 다른 것들이 있지만 요컨대 우리의 마이그레이션 경험은 우리가 생각한 것만 큼 무서운 것이 아닙니다. 그리고 우리는 NH 사람들을 떨게 할 수있는 유산을 가지고 있습니다. 구성 설정을 변경하고 일부 사용되지 않는 인터페이스를 업그레이드해야하지만 (솔루션에서는 30 개 미만이라고 생각합니다), 가장 큰 어려움은 도메인 객체의 모든 속성/메소드를 가상으로 만드는 것입니다. 실제로 우리의 도메인 객체를 빗 맞 춥니 다.