LINQ to SQL은 Dead 또는 Alive입니까?


95

내가 LINQ to SQL과 친구가되었을 때 MS가 그 밑에서 깔개를 빼내는 것처럼 보입니다.

http://blogs.msdn.com/adonet/archive/2008/10/29/update-on-linq-to-sql-and-linq-to-entities-roadmap.aspx

약간의 연구를 통해 EF는 단순한 작업에 너무 과잉입니다. 하지만이 발표 이후에도 LINQ to SQL을 계속 사용할 필요가 있습니까?

LINQ to SQL의 미래를 넘어서 이것은 일반적으로 잘못된 신호를 보내지 않습니까? MS가 벽에 비트를 던지는 속도를 고려할 때 새로운 비트를 일찍 사용하는 것이 합리적입니까? (그리고 그것은 친절합니다. LINQ to SQL은 아직 이르지 않았습니다!).

LINQ to SQL 작업을 위해 SubSonic으로 향하고 있다고 생각합니다!

업데이트 : 몇 가지 새로운 의견 :

http://ayende.com/Blog/archive/2008/10/31/microsoft-kills-linq-to-sql.aspx

http://codebetter.com/blogs/david.hayden/archive/2008/10/31/linq-to-sql-is-dead-read-between-the-lines.aspx


그 발표에서 LINQ 또는 LINQ to SQL이 사라지는 것에 대해 언급 한 것은 없습니다 ...?
Codewerks

5
@AugustLights 나는 무엇을 발표 말하는 것이 있다는 생각 "우리가 SQL에 LINQ를 제거 할 수 있습니다,하지만 우리는 그렇게 EF에 그것을 무시 완전히로 가고있다"
존 Limjap

Jon-- 그게 제가 읽은 방식입니다. 이 발표는 "... Entity Framework는 LINQ to 관계형 시나리오에 권장되는 데이터 액세스 솔루션이 될 것"이라고 말했습니다. 이는 작별 인사, LINQ to SQL로 해석됩니다.
rp.

4
MFC는 죽지 않았으며 선호되는 솔루션이 아닙니다. 여전히 MFC를 코딩합니까? VB6은 여전히 ​​지원됩니다. 코딩을하나요? 항상 이런 식으로 MS는 원하는 것이 아니라 원하는 것을 수행합니다.
gbjbaanb

1
@rp : 당신이 DOA에서 의미가 무슨 짓을 - Dead or AliveDead on arrival?
abatishchev 2010 년

답변:


64

1) Linq-to-SQL은 이미 .net 프레임 워크의 일부이므로 "죽일"수 없습니다. 그들이 할 수있는 일은 기능 추가를 중단하는 것입니다. 그렇다고 이미 L2S를 사용하고있는 수천 명의 개발자가 확장하고 개선하는 것을 막지는 못합니다. 일부 핵심 영역은 다루기가 까다 롭지 만 이미 견고하며 누락 된 디자이너 기능을 쉽게 추가 할 수 있습니다 .

2) PDC EF 세션 중 하나는 EFv1 실패에서 몇 가지 교훈을 배웠으며 이제 L2S의 많은 장점을 EF에 복사하여 붙여넣고 새로운 EF 항목 인 척하고 있음을 보여줍니다. 즉, L2S 버전 2는 방금 EF "재 라벨링"되었습니다.

3) LINQ (Language Integrated Query)는 슬라이스 아이스크림 이후 가장 좋은 방법이며 L2S (Linq에서 개체로, Linq에서 엔터티로, Linq에서 XML로, Linq에서 Anything으로) 이외의 많은 것들과 함께 사용할 수 있습니다. ). 따라서 DP 그룹의 [광범위한 대중] L2S 채택 자들을 [덜 인기 있고 현재 결함이있는] Entity Framework로 강제 이동하려는 시도는 Linq를 배우지 않을 이유가 아닙니다.

또한 다음 스레드 (Tim의 블로그 게시물을 부분적으로 트리거 한 것으로 생각)를 참조하십시오 . http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=4061922&SiteID=1

업데이트 1 : Roger Jennings의 Visual Studio Magazine 커버 스토리 2008 년 12 월호는 일부 L2S와 EF 비교를 통해이 주제에 대해 잘 읽었습니다. http://visualstudiomagazine.com/features/article.aspx?editorialsid=2583

업데이트 2 : Anders Hejlsberg는 Redmond Developer News 에서 " LINQ to SQL은 죽지 않았습니다. 장담 할 수 있습니다. 죽지 않았습니다. 아무것도 사라지지 않습니다. 우리는 그렇게 한 적이 없으며 결코 그렇게하지 않을 것입니다. "라고 말했습니다.

http://reddevnews.com/blogs/weblog.aspx?blog=3016


14
StackOverflow의 제작자는 Linq to SQL을 선택한 ORM으로 채택했습니다. 분명히 그들은 이익이 위험보다 더 크다고 결정했습니다.
Robert Harvey

여전히 사실입니까? StackOverflow가 L2S에서 멀어 졌다고 들었지만이 정보를 찾을 수없는 것 같습니다.
Aaron

2
@Aaron, 예, Dapper라는 자체 마이크로 ORM과 함께 손으로 작성한 SQL을 사용합니다. 사이트의 덜 인기있는 섹션에서는 여전히 LINQ-to-SQL을 사용할 수 있습니다.
CMircea

28

해결해야 할 질문에 대한 모호성이 있습니다.

LINQ! = LINQ to SQL

LINQ 기술과 공급자는 다양합니다.

  • Linq에서 SQL로;
  • Linq to Entities;
  • Linq to Objects;
  • Linq에서 XML로;

... 그리고 그것들은 Microsoft에서 제공 한 것입니다. NHibernate를 포함하여 MS가 아닌 공급자도 있습니다.

링크 한 블로그 게시물은 Linq to SQL에 대해서만 설명합니다.

LINQ의 주요 이점은 하나의 쿼리 구문을 학습 및 사용하고 여러 기술에서 재사용 할 수 있다는 것입니다.

이 점을 감안할 때 "Linq To SQL"에 대한 미래의 부족으로 인식되는 것은 무관하다고 생각합니다. LINQ 쿼리를 작성하면서 얻은 기술은 향후 다른 도구로 이전 될 수 있기 때문입니다.


LINQ 2 SQL 구문은 Entity Framework와 유사하므로 둘 사이를 매우 쉽게 이동할 수 있습니다.
Jason Short

그러나 LINQ to SQL의 실제 구현은 SQL Server에 대해 작동하는 몇 가지 특정 이점이 있기 때문에 그의 질문은 여전히 ​​유효합니다.
Tor Haugen

21

우리는 LINQ to SQL을 죽이는 것이 아닙니다. 우리는 EF를 최적화하고 있지만 LINQ to SQL은 확실히 죽지 않습니다. :)

-Scott / Microsoft.


Lol. 이것은 나를 깨뜨린 다. 이 공개 성명을 발표하려면 Microsoft의 승인을 받아야 했습니까? : p
Kolob Canyon

뭐라고? D : .NET의 제품 관리자로 ... 나는 그것을 해결했다, 그래서 문제의 팀이 최대 screwd 메시지를이었다 2009 년
스콧 반즈

13

Linq (System.Linq.Enumerable 및 System.Linq.Queryable)를 배워야 할뿐만 아니라 .net 언어에 대한 프로그래밍 언어 향상을 배워야합니다.

C # 3.0에서는 다음이 포함됩니다.

  • 확장 메서드 (첫 번째 매개 변수에 this 키워드가있는 정적 메서드)
  • 컴파일러 유추 유형 (var)
  • Lambda 구문 (컨텍스트에 따라 익명 메서드 또는 표현식 생성)
  • 이니셜 라이저
  • 속성 기본 구현 (줄임말)

여기에서 자세한 내용을 읽어보십시오 .


VB 9.0에는 인라인 XML 마법과 다른 많은 것들이 있습니다 (많은 것들이 위의 C # 목록과 유사합니다).

여기에서 자세한 내용을 읽어보십시오 .


와, 정말 문자 그대로의 하루를 보냈 나봐요. 질문 인 문장에 대한 매우 엄격한 문맥 해석을 통해서만 내 대답이 의미가 있습니까?
Amy B

@David B, 그렇습니다 .. 나는 이것이 괜찮은 대답이라고 생각했습니다.이 질문에 어떻게 대답하는지 모르겠습니다. lol
mmcdole

1
계속 upvotes를 받고 있습니다. 어떤 사람들은 링크의 정보를 볼 필요가 있다고 생각합니다 ...이 답변이 마음에 들면 여기에있는 더 나은 답변을 원할 것입니다. stackoverflow.com/questions/471502/what-is-linq/471592#471592
Amy B

8

나는 솔직히 그 기사에서 link2sql이 죽었다는 것을 읽은 곳을 이해하지 못합니다.

링크 한 블로그 게시물에 다음과 같이 표시됩니다.

우리는 LINQ to SQL에 대한 고객의 의견을 듣고 있으며 커뮤니티에서받은 피드백을 기반으로 제품을 계속 발전시킬 것입니다.

나를 위해 이것은 LINQ to SQL과 같은 읽기가 향후 개발되고 지원 될 것입니다. 왜 죽었다고 생각하십니까?


7

물론, 여기에서 LINQ to SQL, LINQ to Entities 및 LINQ to [insert 3rd Party ORM] 중에서 선택하면 소프트웨어 개발자가 선택할 수있는 데이터 액세스 레이어 방법론의 완벽하게 건전한 에코 시스템이 제공됩니다. NHibernate, LLBLGen 및 심지어 Subsonic (LINQ 공급자를 제공 할 것인지 확실하지 않음)과 같은 타사 공급자는 확실히 경쟁을 더 좋고 흥미롭게 만들 것입니다.

즉, Microsoft가 LINQ to SQL을 포기하는 것은 전적으로 슬프게 될 것입니다.


6

그것에 대한 흥미로운 블로그 게시물. 그리고 Stackoverflow 게시물에 대한 몇 가지 관련 정보 .

기본 요점 은 Entity Framework가 Visual Studio 2010 및 Dot Net 4에 대한 주요 개발자 시간을 얻는 유일한 방법 이라는 ado.net 블로그의 주석 인 것으로 보입니다 .

내 대답은-DUH. 우리는 모두 이것을 알고 있습니다. Microsoft는 PDC 2007에서 LINQ to SQL이 SQL Server에 대한 다른 LINQ 스토리가 없기 때문에 SQL Server의 단기 릴리스라고 공개적으로 말했습니다. SQL Server에서만 작동합니다. LINQ to SQL 공급자를 작성할 수 없습니다. 이에 대한 모델이 없습니다. 확장이 불가능한 일회성 기술이었습니다.

Entity Framework는 Microsoft에서 LINQ 공급자를 빌드하는 유일한 방법입니다. Entity Framework는 상당히 반박적인 것으로 판명되었지만 부분적으로는 LINQ to SQL이 오늘날 더 나은 프로그래머 경험을 가지고 있다는 사실 때문이라고 생각합니다. Entity Framework는 Microsoft의 미래 ORM / 매핑 도구이기 때문에 LINQ to SQL을 포착하고 능가합니다.

편집- 내 블로그 에 이것에 대해 약간 더 자세한 글을 작성했습니다.

EDIT2 (IQueryable Provider)는 LINQ to SQL 공급자와 동일하지 않습니다. 원하는대로 IQueryable 공급자를 직접 작성할 수 있습니다. 디자이너 지원이나 모델 생성이 없습니다. LINQ to SQL 모델 생성과 관련하여 알고있는 GUI 디자이너 모델은 없습니다.


1
Re .: "LINQ to SQL 공급자를 작성할 수 없습니다. 이에 대한 모델이 없습니다." 음, 입니다 . 그들이 EF에 우위를 제공하기 위해 마지막 순간에 필요한 회원들을 비공개로하기로 결정한 것입니다. blogs.msdn.com/mattwar/archive/2007/05/31/…
KristoferA

1
죄송합니다. 이전 링크는 blogs.msdn.com/mattwar/archive/2008/05/04/…
KristoferA

감사합니다-그 게시물을 읽지 않았습니다. 내부적으로 API가 있다는 것은 알고 있었지만 공개 된 지식이 공개 된 적이 있는지는 몰랐습니다.
Jason Short

1
동일한 블로그 ( blogs.msdn.com/mattwar )에는 제공자 작성 방법에 대한 전체 기사 시리즈 (샘플 포함) 유용 할 수있는 플러그 가능한 다운로드 가능한 L2S 제공자도 있습니다.
KristoferA

해킹 할 수 있는지는 중요하지 않습니다. MS에서 공식적으로 지원하지 않습니다. VSIP 통합이 없습니다. 앱 로고를받을 수 없습니다 ...
Jason Short

5

여기서 문제가 실제로 보이지 않는 것 같습니다. 링크 한 기사에서 :

우리는 LINQ to SQL에 대한 고객의 의견을 듣고 있으며 커뮤니티에서받은 피드백을 기반으로 제품을 계속 발전시킬 것입니다.

내가 뭔가를 놓치고 있습니까? LINQ to SQL이 도착하자마자 죽는다는 인상을주는 것은 무엇입니까?



4

누구든지 VB6를 기억합니까? 개인적으로 싫어하든 좋아하든 Microsoft는 수백만 장을 팔았고 기업은 수백만 줄의 VB6를 작성하는 데 수백만 달러를 소비했습니다. 다음에 무슨 일이 일어 났습니까?

  • 글쎄요, 마이크로 소프트는 여전히 VB6 (IDE가 아닌)을 지원합니다.
  • 그리고 마이크로 소프트는 지금도 ( 9 월 9 일 ) VB6 고객의 의견을 듣고 있다고 말합니다 .
  • 그러나 VB6 고객은 만족합니까? 2002 년 이후로 VB6 출시 4 년 후.
  • 왜 안돼? 대체 기술인 VB.Net에 대한 코드 투자를위한 업그레이드 경로는 비용많이 듭니다 .

그러니 그 교훈을 고려하십시오. 나에게 LinqToSQL 지원은 다소 마지 못해 보일 것 같습니다. 그들은하는 의무 는 현재 .NET 프레임 워크에 있기 때문에 그것을 지원합니다. 하지만 .NET 5, 6, 7에 있을까요 ...? 그게 당신에게 얼마나 중요한지 생각해보십시오 (내가 아는 한, 당신에게는 전혀 문제가되지 않습니다).


나에게 가장 좋은 것은 OracleConnection 및 SqlConnection이있는 순수한 ado.net입니다.이 공급자와 System.Data.DataSet은 절대 죽지 않기 때문입니다. 테이블 형식 데이터의 기반입니다. 개인적으로 나는 EF를 좋아하지만 전문적인 DataSet은 계속 표준입니다.
pedrofernandes

3

Linq를 SQL로 배우는 것을 귀찮게하지 말아야 할 수도 있지만, 그들이 유지할 엔티티 Linq는 여전히 있습니다.


1
현재 EF 접근 방식에는 적용되는 기본 클래스와 같은 몇 가지 심각한 문제가 있습니다. 나는 EFvNext가 장소에서 상당히 다르게 보일 것이라고 기대합니다. 그때까지는 가장 간단한 옵션을 사용하는 것이 좋습니다 : L2S-또는 nHibernate ;-p
Marc Gravell

1
LINQ에 대해 알아보고 나면 LINQ to SQL을 "학습"하는 것이 매우 간단하다고 제안합니다. 프로젝트에 LINQ to SQL 클래스 항목을 추가하고 몇 개의 테이블을 디자이너로 끌어서 놓는 경우 일뿐입니다.
Richard Ev


3

2 개의 ORM이 마이크로 소프트의 툴박스에서 일대 다라는 것은 분명하지만, 나에게는 모든 잘못된 이유로 잘못된 프레임 워크가 선택된 것 같습니다. C # 팀이 ADO.NET 팀이해야 할 일을 훨씬 더 짧은 시간에 수행하고 더 나은 작업을 수행했다는 사실은 ado.net 팀에게 삼키기 어렵습니다. 내가 두 프레임 워크의 내부 동작을 알고 있다는 것은 아니지만 linq2sql의 단점을 엔티티 프레임 워크로 업그레이드하는 것이 훨씬 더 빠를 것이라고 생각합니다.

너무 많은 정치가 관련되어있는 것 같고, Entity 프레임 워크가 Linq2sql과 동일한 사용자 친화적 인 경험을 제공 할 것이라는 신뢰가 없기 때문에 이것이 asp.net 평판을 실제로 손상시킬 것이라고 생각합니다. ado.net 팀은 문제에 대한 설명이 모호하기 때문에 asp.net mvc 팀으로부터 의사 소통 기술을 배울 수도 있습니다.

대부분의 예제가 Linq2Sql을 사용하고 있기 때문에 Scott Gu와 그의 MVC 팀이 여기에있는 것을 배우는 것은 재미있을 것입니다.


2

Linq 2 Sql과 Entity Framework에 겹치는 부분이 많다는 것은 항상 조금 이상했습니다. L2S가 .NET 3.5 릴리스에만 포함 된 유일한 이유는 EF가 빛을 볼 수있을 것이라는 큰 의심이 있었기 때문이라고 생각합니다. 이제 EF1이 출시되었으므로 모든 것이 매우 거친 v1이므로 더 이상 L2S가 필요하지 않습니다.


2

(아니요, StingyJack, LINQ to SQL은 엔터티 프레임 워크를 사용하지 않습니다.)

어쨌든 걱정하지 않겠습니다. Tim은 LINQ to SQL에 대해 고객의 의견을 듣고 있다고 말합니다. L2S에 대한 열정으로 판단하면 고객 (즉, 우리)이 자신의 마음을 말할 것입니다.

그리고 KristoferA가 지적했듯이 그들은 실제로 L2S를 '죽일'수는 없으며 단지 그것을 동결시킬뿐입니다. 그리고 L2S는 한 번 다듬어 졌기 때문에 더 이상의 개발이 필요하지 않습니다. L2S 공급자가 있으면 LINQ의 모든 발전을 L2S에서도 사용할 수 있습니다. 따라서 선택은 여전히 ​​우리의 것입니다.


글쎄, 그들은 나란히 설치 해야하는 Dot Net 4에 포함시키지 않으면 그것을 죽일 수 있습니다. 즉, 동일한 시스템에 3.5SP1을 설치하지 않으면 dot net 4 앱에 액세스 할 수 없습니다. 사실인지 아닌지 알 수 없습니다.
Jason Short

누구나 VB6를 기억하십니까? Microsoft는 여전히 VB6 (종류)을 지원합니다. 지금도 VB6 고객의 말을 듣고 있다고합니다. 하지만 우리는 행복합니까? 아니요. 코드를 대체 기술인 VB.Net으로 가져 오는 업그레이드 경로는 비용이 많이 듭니다. 따라서 그 교훈을 고려하십시오. LinqToSQL이 .NET 4, 5, 6에 포함 될지 여부와 그게 얼마나 중요한지 생각해보십시오.
MarkJ

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.