2011-05-07 4 views
0

질문 : 기업용 웹 앱의 프런트 엔드를 구축 중입니다. 기존 구조는 저장 프로 시저 (SQL 2008 db)에 의해 구동됩니다. 저장된 proc는 궁극적으로 실행을 처리하는 클래스로 구현되며 결과는 객체로 반환됩니다. 저는이 게임을 처음 사용하고 제 시간이 어떻게 가장 잘 될지에 대한 설명을 환영합니다 ... 저장소 패턴을 읽는 것이 가장 좋은 방법이지만, 읽은 모든 예제는 Entity Framework 또는 Linq 등을 구현합니다. ORM이 필요합니까? 그 이유는 무엇? 나는 사용자가 그 결과 세트로 놀 수 있도록 최대 성능 환경을 가질 수 있기를 원합니다. 미리 감사드립니다데이터 액세스 mvc3

답변

1

글쎄, 나는 당신의 유스 케이스에 대한 결정을 제안 할 것이다.

nHibernate 수/ORM의 일반적으로 좋지 않은 것을 것들 중 일부는 다음과 같습니다

  1. 일괄 작업. 보고

그래서 작업은 주로 그 중 하나를 포함하는 경우 다음있어 가장 ... 여러 전략을 갖는 도메인 모델을 구축 아무 문제 위대가 없습니다 말했다되고 있음을, 시간을 낭비하지 해제 복잡한 비즈니스 규칙을 간소화하기 위해 일반적으로 성능도 일반적으로 매우 좋습니다 ...보고 작업과 일괄 작업을 별도로 구축 할 수 있기 때문에 다른 전략이 공존 할 수없는 이유는 없습니다 ...하지만 계속 유지해야합니다. 디커플링 ...

만약 당신이 커다란 털이 많은 비즈니스 로직 레이어를 가지고 있다면, 스토어드 프로 시저에서 데이터 세트/데이터 액세스 코드와 비즈니스 로직으로 흩어져 있습니다. ORM에 투자 할 가치는 있지만 ORM에 다시 투자하는 것이 좋습니다. 기존 코드를 개선하고이를 확장하기 전에 테스트 할 수있게 만드는 것이 좋습니다 ...

어쨌든 아무도 '최고의'대답, 내가 이전 회사에서 한 똑똑한 일은 기능에 이해가가는 것으로 보이는 데이터 액세스 패턴에서 새로운 기능 (물론 테스트 중심)을 구축하는 것이 었습니다 ... 인터페이스를 깨끗하고 분리 된 상태로 유지하십시오 ... 잠시 동안 그렇게 한 후에는 일반적으로 어떤 전략/패턴이 애플리케이션 전반에 가장 적합한 지 명확 해집니다. ...

행운을 빌어 요

1

귀하의 질문에 다소 불분명합니다. 저장 프로 시저는 데이터와 상호 작용하는 데 사용되는 데이터베이스에 저장된 SQL 쿼리입니다. 그러나 저장된 프로 시저를 사용하고 함께 재생할 개체를 반환하는 기존 데이터 액세스 계층 (DAL)이 이미있는 것 같습니다. 이 경우 전체 데이터 액세스 레이어를 버리고 EF 또는 다른 ORM으로 바꾸지 않을 것입니다. 기존 DAL이 설계 또는 성능상의 이유로 당신을 위해 작동하지 않는 한, 바퀴를 재발견 할 이유가 없습니다.