OR- 맵퍼를 사용하는 것이 합리적입니까?OR 매퍼를 사용하는 것이 합리적입니까?
스택 오버플로에 대한이 질문은 내가 알고있는 스마트 개발자가 도움과 의견을 기꺼이 제공 할 수있는 가장 좋은 장소이기 때문에이 질문을 스택 오버플로에 넣고 있습니다.
내 논리는 다음과 같습니다.
1.) SQL은 어디에 속하는가?
). 내가 작업 한 모든 전문 프로젝트에서 데이터 보안이 핵심 요구 사항이었습니다. 저장 프로시 듀어는 액세스 W 감사를 제어하기위한 고유 게이트웨이를 제공합니다.
b.) 프로덕션 환경에서 응용 프로그램 관련 문제는 새 빌드를 내보내지 않고 테이블과 저장 프로 시저간에 해결 될 수 있습니다.
2.) 생성 된 SQL을 어떻게 제어합니까? 나는 효율적인 SQL을 생성하기 위해 구문 분석 트리를 신뢰하고있다. SQL-Server와 Oracle에서 SQL을 최적화하는 데 경험이 많았지 만, 다시는 할 필요가 없다면 부정 행위를하지 않을 것입니다. :)
3.) 스토어드 프로 시저에서 데이터를 가져 오는 경우 OR-Mapper를 사용하는 것이 무엇입니까?
저는 자체 개발 한 일반 데이터 액세스 레이어로 저장소 패턴을 사용했습니다. 컬렉션을 캐시해야하는 경우이를 캐시합니다. 또한 작은 CRUD 어플리케이션에서 EF를 사용하고 성능 문제가 발생한 NHibernate 애플리케이션을 튜닝하는 데 경험이있는 경험이 있습니다. 그래서 나는 조금 편향되어 있지만 기꺼이 배울 것입니다.
지난 수년 동안 우리는 특정 OR 매퍼 (엔티티 프레임 워크, NHibernate 등)의 사용을지지하는 존경할만한 개발자를 많이 들었습니다.
누군가가 주요 프로젝트의 주류 개발을 위해 ORM으로 이동해야하는 이유는 누구에게 말해 줄 수 있습니까?
편집 : http://www.codinghorror.com/blog/2006/06/object-relational-mapping-is-the-vietnam-of-computer-science.html이 토픽에 대해 강하게 토론을하고 있지만 오래되었습니다.
또 다른 편집 : 성능상의 이점과 프로그래밍 로직을 데이터에 더 가깝게 추가 할 수 있기 때문에 저장 프로 시저가 견고한 엔터프라이즈 응용 프로그램에 사용된다는 데 모두 동의하는 것으로 보입니다.
나는 OR 매퍼를지지하는 가장 강력한 논쟁이 개발자 생산성이라는 것을 알고 있습니다.
ORM 이동에 대한 큰 동기는 개발자가 계속 지속성을 잃지 않을 것으로 생각됩니다 (데이터가 캐싱이 아닌 경우 또는 데이터베이스에있는 경우 상관하지 않음).
로컬 및 소규모 웹 응용 프로그램의 경우 ORM이 뛰어난 시간 절약형 서비스 인 것으로 보입니다.
내가보기에 가장 좋은 조언은 client09에서 나온 것일 수 있습니다. ORM 설정을 사용하지만 데이터베이스 집약적 인 작업 (예 : ORM이 불충분 한 것으로 보이는 경우)을 위해 저장 프로 시저를 사용하십시오.
CSLA는 OR-Mapper가 아닙니다.이것은 일반적인 오해입니다. –
어쩌면 이것은 당신에게 더 많은 현재 일 것입니다. http://stackoverflow.com/questions/404083/is-orm-still-the-vietnam-of-computer-science – dkretz