2009-11-14 3 views
2

3 단 아치에 가장 적합한 솔루션은 무엇입니까? SQL 또는 Nhibernate Linq? 특히, 2 계층 아키텍처의 시스템을 3 계층 아키텍처로 업그레이드 할 예정입니까?3 계층 아키텍처에 가장 적합합니다. SQL 또는 Nhibernate Linq?

편집 : 그리고 어디서 좋은 튜토리얼이나 동영상을 찾을 수 있습니까?

+0

Linq에 대해 nHibernate를 잊지 마세요 : http://ayende.com/Blog/archive/2009/07/26/nhibernate-linq-1.0-released.aspx – tvanfosson

+0

WHS - 질문의 세부 사항은 분명하지만 제목을 변경해야합니다. – Murph

+0

Linq to SQL은 * MSSQL ONL * 만 지원함을 기억하십시오. – UpTheCreek

답변

4

당신이 만약 '오직 하나의 DB 플랫폼 만 지원하고 데이터베이스 모델은 이미 필요합니다. LINQ-to-SQL은 의미가 있습니다.

그러나 FluentNHibernate를 사용하여 매핑을 생성 할 수도 있습니다.

매핑을 통한 다중 DB 및 세분화 된 유연한 제어가 중요한 경우 NHibernate로 이동하십시오. 그렇지 않으면 LINQ-to-SQL이 정상적으로 작동합니다. 이제는 적어도 전염병과 같은 LINQ-to-Entities를 피하십시오 (v4.0은 상황을 개선 할 수 있습니다).

+0

LINQ-to-Entities를 피할 이유를 게시하거나 게시 할 수 있습니까? – kenny

+2

체크 아웃 : http://efvote.wufoo.com/forms/ado-net-entity-framework-vote-of-no-confidence –

1

데이터베이스가 이미 내가 SQL에 LINQ와 함께 갈 것입니다있는 경우 내가 NHibernate에를 선택하는 다른 방법을 (드래그 앤 드롭으로 데이터베이스 매핑을 생성) (도움 당신은 당신의 모델을 기반으로 당신에게 데이터베이스를 생성)

1

.NET에서도 마찬가지인지는 모르겠지만 Java 및 Spring에서이 문제를 해결하려면 구현 선택을 숨길 인터페이스로 시작할 것입니다. 클라이언트는 LINQ인지 아니면 NHibernate인지를 알 필요가 없습니다. Spring은 합의 된 인터페이스를 구현하는 한 클라이언트를 방해하지 않고도 하나의 구현 또는 다른 구현을 자유롭게 삽입 할 수있게합니다.

0

필자는 Nhibernate를 사용하지 않았지만 앞으로 LINQ to SQL을 지원할 예정이지만 특정 기술에 대해서는 더 이상 개발하지 않을 것이라고 Microsoft에서 확인했습니다.

+0

그 "no further development"문구에 대한 링크를 추가 할 수도 있습니다. 그 말을하는 걸 보지 못했습니다. 예를 들어 여기에있는 모든 Microsoft 링크는 SQL에 대한 Linq의 진화라고 말합니다. http://stackoverflow.com/questions/252683/is-linq-to-sql-doa – MarkJ

+0

마크, 링크를 찾을 수 없지만 다른 곳에서 게시물을 보았습니다. MS의 사람 중의 1 명은 나갔고, 그것을 곧바로 말했다. 한편 데이비드 헤이든 (David Hayden)의 좋은 분석은 다음과 같습니다. http://codebetter.com/blogs/david.hayden/archive/2008/10/31/linq-to-sql-is-dead-read-between-the -lines.aspx 여기에 더 최근의 내용이 있습니다 - 코멘트 섹션에 계속 질문을 피하는 방법을 관찰하십시오 : http://damieng.com/blog/2009/06/01/linq-to-sql-changes-in- net-40 초점은 EF 기간입니다. – IrishChieftain

+0

@ MarkJ, Microsoft는 LinqToSql에 대한 미래의 계획과 약속을 제외하고는 모든 것이있었습니다. LinqToSql이 배송 .NET 프레임 워크의 일부인 한 LinqToSql을 계속 지원 하겠지만, 앞으로의 실제 ORM 기능 개발은 EntityFramework에 초점을 맞출 것입니다. 그러나 Microsoft와 통신하는 명확한 메시지는 하나도 없습니다. –

1

응용 프로그램이 기본 기능 만 필요한 경우 LINQ to SQL을 사용합니다. 그렇지 않으면 NHibernate를 사용합니다. 나는 LINQ의 겉 핥기를 알고 있고, NHibernate를 배우는 것을보고 있는데, NHibernate는 L2S (데이터베이스와 꽤 밀접하게 결합되어있다)보다 추상적이기 때문에 NHibernate가 더 나은 장기 솔루션이라고 말할 수 있지만 L2S는 선택하기가 더 쉽다. 신속한 솔루션을 제공합니다.

당신의 특정 문제에 대해 더 많이 알지 못한다면 SQL에 Linq보다 약간 더 "엔터프라이즈"학습 곡선이 있지만 NHibernate를 사용하면 더 유연하고 변화에 반응한다고 말할 수 있습니다. 좋은 NHibernate 자원을 위해서 나는 Steve Bohlen's "Summer of NHibernate" series을 체크 아웃하는 것이 좋습니다.

1

3tier를위한 최상의 솔루션은 무엇입니까? 선택한 모든 프레임 워크/라이브러리에는 절충점이있는 쿠키 커터 응답이 없습니다. 이 ORM 결정을 내리기 위해서는 비즈니스 요구를 살펴보고 적시에 유지할 수있는 방식으로 목표를 달성하는 데 가장 많은 도움을 줄 수있는 가능성을 결정해야합니다. 도메인 모델은 얼마나 복잡하며 linq에서 sql로 적절하게 설명 할 수 있습니다.