은 Codesmith 가능한 ORM 도구(또는 해야 나는 진정한 ORM)[마감]

StackOverflow https://stackoverflow.com/questions/583232

  •  06-09-2019
  •  | 
  •  

문제

저는 쇼핑을 위해 ORM 도구입니다.나는 괴로운 구매하거나 CodeSmith(현재 사용에 상당한 할인 혜택)대 ORM 도구입니다.

LINQ to SQL 는 내 목록아음속 2.x 은 목록 떨어져(나는 원하지 않는에 투자하는 것을 막는 것을 알고 음속 3.0 오고 있습니다.NHibernate 잔인한 것 같다로가 LLBLGEN.나는 단지 짧게 평가 EF 지 신속하게 얻을 수 따뜻하고 정을 느끼다.

내가 미친 사고는 CodeSmith 은 합리적인 대안을 off-the-shelf ORMs?이 CodeSmith 자체에 대한 지불하는 다른 방법?

참고로 나는 어떠한 방식으로 관련된 어떤 업체고 이지 저렴한 사용자 질문이 단지의 이익을 위해성 제품을 소음!내가 찾는 것은 정직한 조언과 의견에 대한 CodeSmith 로 ORM 도구는(그것의 제공,커뮤니티 가능)템플릿이 있습니다.

도움이 되었습니까?

해결책

사실,최대 절전 모드는 좋은 ORM 도구입니다.하지만 그것은 거기서 멈춘!

코드 스미스 기능을 수 있는 이상형 매핑 직원들!내가 사용하는 코드 스미스를 생성하는 일부 UI 형태,비즈니스 층(템플릿),데이터 액세스를 레이어와 패턴,니다.하지만 작업 코드 스미스,필요할 수 있는 좋은 경험으로 시스템 디자인을 사용하거나 그들의 템플릿에는 사용하고 싶지 않지만 나는 예를 들어 있습니다.

코드 스미스 접근 방식은 하나의 특별한 단점;이 있을 디자인하는 시스템 고려하여 데이터베이스 구현을 처음이다.요즘에는 개체 분석 방법,사람들은 성공을 구현하는 비즈니스 및 엔터티를 사용하기 전에 모든 데이터베이스 구현–그들은 잊습니다.

결정을 어렵다;나는 지속적으로 읽는 중요한 이름이 등 Scott W.앰 블러,켄트 벡,로버트 C.마틴 및에서 사람들의 실제적인 프로그래머 시리즈는 것이 좋 ORM 도구를 개발 속도.그들은 말했다 ORM 도구 개발자들이 관심을 가진 모든 데이터베이스에 문제(풀링,연결,데이터베이스를 공급 업체 세부 사항,etc.).그렇게 할 때 우리는 디자인을 데이터 액세스를 레이어 우리가 고려해야 이러한 모든 측면 너무입니다.

나를 믿는 이러한 ORM 도구와 함께 가는 과적.나는 아직 알지 못하는 방법 이러한 도구는 것이 동작에서는 프로젝트(내 말은 좋지 않은 호스팅 서버는 어떤 종류의 공유 자).본 경험이지 않는 개발자이 계정으로 그들려고 불러일으키신의 사랑하는 도구입니다.그러나 자바 프로젝트,최대 절전 모드는 이미 광범위하고 잘 알려진 도구입니다.의심의 여지가있는 큰 프로젝트에 전달되었습이 기술을 사용하지만 본 사람이 그리고 다시 자바 개발자가 필요할 수 있습을 우리에게 가르치(.net 개발자)을 구축하는 방법 위대한 솔루션이 있습니다.(안,우리는 인정합니다.)

의 추천을 고려하는 것이 좋다.을 하고 있는 새로운 시스템?야 할 작업에서 패턴을 가지고 있는가?당신은 이제까지 고려하려고 그러한 코드를 생성 및 ORM 도구 모두?

내가 선호하는 코드 스미스 때문에 나는 생성하는 전체 솔루션을,한 번에 단지 데이터 액세스를 계층입니다.코드 생성은 매우 중요하며,그것은 덜 마이크로소프트는 모방 코드 스미스 접근 방식에 visual studio.net 2008 년과니다.

행운

다른 팁

Code Smith는 ORM이 아니라 Code Generator IDE 일뿐입니다.

데이터베이스를 기반으로 Code Smith를 사용하여 DAL을 생성 할 수 있지만 기본적으로 DAL을 동적으로 생성하는 ORM을 사용하는 목적 (중 하나)을 패배시켜 코드를 작성할 필요가 없습니다.

실제로 두 가지를 비교하려면 Code Smith를 사용하여 생성되는 코드를 절대적으로 제어 할 수 있기 때문에 Code Smith를 사용하는 혜택을 얻을 수 있지만, 이익이 혜택을 누릴 수 있는지에 대한 단점을 강급 할 것입니다. 코드 스미스 템플릿을 작성하기 위해 몇 달을 소비하여 데이터베이스를 기반으로 DAL을 생성합니다.

그런 다음 데이터베이스를 변경할 때 어떤 일이 발생하는지 고려해야합니다. 그렇게 할 때마다 코드 스미스를 실행하고 빌드해야 할 가능성이 높습니다. 좋은 ORM을 사용하면 스키마의 데이터베이스 변경 사항을 구성 할 수있게되면 동적으로 생성되므로 데이터베이스를 변경하는 것에 대해 걱정할 필요가 없습니다.

nhibernate 갈 길입니다. 엔터프라이즈 등급 ORM입니다. 그리고 컨벤션 기반 자동 구성과 함께 fluentnhibernate 라이브러리, 구성은 단일 컨벤션을 고수하는 경우 엄청나게 간단합니다 (규칙을 지정하거나 기본값이있는 경우).

nhibernate를 사용하면 도메인 객체는 순수한 C# 객체입니다. 이상한 기본 클래스가 없습니다. 변경하기로 결정할 때마다 새로 고침 해야하는 CodeGenned 파일이 없습니다.

나는 매일 Nettiers를 사용하고 그것을 좋아합니다. 그것에 대한 문서는 짜증나지만 사무실에서 나에게는 그런 시간을 절약했습니다. 많은 사람들이 생성하는 코드의 양에 대해 그립하지만, 내가 본 코드에서는 그것이 생성 한 코드가 많은 부분을 손으로 코딩하는 것보다 훨씬 빠릅니다. 또한 기본 CRUD 물건에 필요한 모든 스프로크를 생성합니다. 그것이 생성하는 액세스 방법은 매우 훌륭합니다. 모든 고유 키, 외국 키 및 기본 키로 얻을 수 있습니다.

코드 메스미의 사용은 실행 가능하다고 생각합니다. 그러나 그것을 사용하는 프레임 워크를 조사해야합니다. 순 층 좋은 dal을 제압하기 위해 구축 할 수있는 응용 프로그램 프레임 워크입니다.

왜 llblgen과 같은 것이 과잉일까요? 우리는 직장에서 그것을 사용하고 다소 가파른 학습 곡선 후에는 매우 좋습니다 :). 당신은 적어도 그것을주고 nhibernate에게 시도해야합니다.

Codesmith와 어떤 관련이 있는지 잘 모르겠습니다. 코드 게이너이지만 자신의 ORM을 굴릴 수 있지만 이미 좋은 것들이 있기 때문에 학습 목적으로하고 싶지 않다면 시간과 노력의 가치가 있다고 생각하지 않습니다. .

Nettiers 및 .NETMVP와 함께 이동하십시오. Nettiers는 매우 멋진 DAL이며 .NETMVP는 UI 수준에서 추상화를 지원하기 위해 방금 발표 한 프레임 워크입니다. :)

http://community.codesmithtools.com/codesmith/m/templates/42499.aspx

나는 몇 년 전에 llblgen을 사용했습니다. 내가 본 것이 고정 되었기를 바랍니다. 우리는 생성 된 인라인 SQL을 보았고, 기본 키가 전달 된 상태에서 한 줄의 데이터를 선택하여 다음과 같이 보았습니다.

SELECT DISTINCT * FROM TABLE WHERE primark_key_id = @primarykey.

정말 뚜렷한가요? 나는 항상 대신에 Procs를 저장하는 것을 간청했지만 프로젝트 리더가 격추했습니다. 비효율적 인 코드를 작성하여 몇 시간이 저장되었는지 잘 모르겠습니다.

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