문제

에서 무엇을 도메인을 각각의 이러한 소프트웨어 아키텍처 빛나 실패하는가?

는 주요 요구 사항을 것 중 하나를 선택하라는 메시지를 통해 다른?

십시오 있다고 가정 개발자가 사용할 수 있는 사람은 좋은 일을 할 수 있습 객체 지향적 코드뿐만 아니라 좋은 데이터베이스의 개발이다.

또한,피해 주세요 거룩한 전쟁:)모든 세 가지 기술는 장점과 단점을 가지고,내가 관심이있는 곳에서는 가장 적절한 사용할 수 있다.

도움이 되었습니까?

해결책

모든 하나의 이러한 도구를 제공하는 서로 다른 추상화 계층과 함께,서로 다른 지점을 재정의 동작입니다.이는 건축,선택과 모든 건축의 선택에 따라 달라집 trade-offs between 기술,제어와 조직 모두 응용 프로그램 자체와 환경에서 배포됩니다.

  • 만약 당신이 다루는 문화 Dba'규칙을 휴식처',그리고 저장 프로시저의 기반 아키텍처는 것이 쉽게 배포할 수 있습니다.다른 한편으로,그것은 매우 어려울 수 있습을 관리하고 버전을 저장합니다.

  • 발전기 코드 빛을 사용할 때는 정적으로 입력한 언어하기 때문에 잡을 수 있는 오류를 컴파일 타임에서의 대니다.

  • ORMs 는 이상적인 통합을 위한 도구가 필요할 수 있습을 다루는 다른 RDBMSes 및 스키마에서 설치를 설치 기준입니다.중 하나를 변경지도과 응용 프로그램에서 작업 PeopleSoft Oracle 작업은 Microsoft Dynamics 에 SQL Server.

본 어플리케이션 생성된 코드를 사용하여 인터페이스와 절차를 저장하기 때문에,저장된 절차를 수정하여 주위에 얻을 제한 코드의 생성기입니다.

궁극적으로 올바른 답변에 따라 달라집니다 문제를 해결하려고 환경 솔루션을 요구를 실행할 수 있습니다.다른 것입니다 논쟁의 정확한 발음'감자'.

다른 팁

나는 내 두 개의 센트:

저장 프로시저

  • 쉽게 사용할 수 있도록 최적화
  • 추상적인 기본적인 비즈니스 규칙을 강화하는 데이터 무결성
  • 제공하는 보안 모델이(필요가 없을 부여 읽거나 쓰기 권한을 향해 앞 db 사용자)
  • 빛나는 경우가 많은 응용 프로그램이 동일한 데이터에 액세스

ORMs

  • 자에만 집중하는 도메인과 더 많은"순수한"오브젝트 중심의 접근 방식을 개발
  • 빛날 때 응용 프로그램해야할 십자가는 db 호환성
  • 빛날 때 응용 프로그램은 대부분에 의해 구동된 행동 대신 데이터

발전기 코드

  • 을 제공할 유사한 혜택을 ORMs,더 높은 유지보수 비용,하지만 더 나은 사용자.
  • 일반적으로 우수한 ORMs 에서는 ORMs 하는 경향이 거래 컴파일간의 오류에 대한 런타임 오류는 일반적으로 피할

나도 동의가 있다는 장점과 단점을 모두고에 따라 많은 귀하의 건물입니다.즉,사용하려고 시도하 ORM 그 의미가 있습니다.의 많은 기능은 이미 있고 일반적으로 그들을 방지하 SQL Injection(플러스 그리는 데 도움이 다시 피하기 위해서 바퀴).

참조하시기 바랍 이러한 다른 두 개의 게시물에 항목(dynamic SQL 에 대 저장 프로시저를 대 ORM)에 대한 더 많은 정보

Dynamic SQL 에 대저장 프로시저
는 것이 더 낫다:임시 또는 저장된 절차를 거쳐야 합니까?

ORMs 대저장 프로시저
왜 매개 변수가 있는 SQL 의해 생성된 NHibernate 빠르고 저장 프로시저는?

ORMs 및 발전기 코드는 종류의 한 측면에서의 현장,그리고 저장 프로시저는 다른에 있습니다.일반적으로,그것은 쉽게 사용할 ORMs 및 발전기 코드에서는 프로젝트이기 때문에,당신할 수 있는 거리에 데이터베이스의 스키마와 일치하는 도메인 모델을 만듭니다.그것은 훨씬 더 어렵습니다 그들을 사용하는 기존 프로젝트 한 번 있기 때문에,소프트웨어로 작성된"데이터 첫 번째"mindset,그것은 어렵 포장 도메인 모델입니다.

즉,모두의 세 가지 방식이 가치가있다.저장 프로시저를 쉽게 할 수 있습을 최적화하는지만,그것은 유혹을 넣어 비즈니스에서 논리들이 반복될 수 있는 응용 프로그램에 자체입니다.ORMs 잘 작동하는 경우에 당신의 스키마와 일치하의 개념 ORM 지만,어려울 수 있습니다 경우 사용자 정의하지 않습니다.기 있는 중이기 때문에,그들이 제공하는 혜택의 일부는 ORM 만 허용할 사용자 정의의 코드를 생성-그러나,당신이 얻을 습관으로 바꾸는 생성된 코드에,당신은 다음 두 가지 문제이기 때문에,당신은 그것을 변경하는 각 시간을 다시 생성습니다.

이 없다 하나의 진정한 대답하지만,저는 경향이 있으로 더 ORM 측면을 믿기 때문에 그것이 더 많은 의미가 생각하는 객체 최초 사고 방식이다.

저장 프로시저

  • 장점: 캡슐화하는 데이터에 액세스 코드가 있는 응용 프로그램-독립
  • 단점: 할 수 있습 RDBMS-특정 및 증가 개발 시간

ORM

적어도 일부 ORMs 허용한 매핑을 저장 프로시저

  • 장점: 초록 데이터에 액세스 코드 및 수 있습 entity 체에서 작성한 도메인별 방법
  • 단점: 가능성능 오버헤드 제한 매핑 기능

Code generation

  • 장점: 를 생성하는 데 사용할 수 있습니다 저장된 프로세서 기반으로 코드 또는 ORM 또는 이들의 혼합
  • 단점: 코드 생성기층이 있을 수 있습 유지에 대한 이해뿐만 아니라 생성된 코드

당신이 잊고 중요한 옵션에 가치가 있는 카테고리의 자체:하이브리드 데이터를 매핑 framework 등 iBatis.

나와 함께 기뻐 iBatis 수 있기 때문에 당신의 OO 코드를 유지 OO 자연 속에서,데이터베이스에 유지 관계에서는 자연,그리고 해결합 임피던스 불일치를 추가하여 세 번째는 추상(매핑 레이어 사물과의 관계)는 책임을 매핑하기 위한 두 가지하려고 하기 보다는 힘에 맞는 하나의 패러다임이다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top