2010-06-14 39 views
50

Quay lại cuối năm 2008 đã có rất nhiều cuộc tranh luận về tương lai của LINQ to SQL. Nhiều người cho rằng các khoản đầu tư của Microsoft vào Entity Framework trong .NET 4.0 là một dấu hiệu cho thấy LINQ to SQL không có tương lai. Tôi nghĩ rằng tôi sẽ chờ đợi trước khi đưa ra quyết định của riêng tôi vì mọi người không đồng ý.LINQ to SQL có bị phản đối không?

Tua nhanh 18 tháng và tôi có các nhà cung cấp cung cấp các giải pháp dựa trên LINQ to SQL và cá nhân tôi đã thử và thực sự thích làm việc với nó. Tôi nghĩ rằng nó đã ở đây để ở.

Nhưng tôi đang đọc một cuốn sách mới (C# 4.0 How-To bởi Ben Watson) và trong chương 21 (LINQ), ông cho rằng nó "ít nhiều bị Microsoft từ chối" và gợi ý sử dụng LINQ to Entity Khung.

Câu hỏi của tôi cho bạn là liệu LINQ to SQL có được chính thức không dùng nữa và/hoặc các thực thể có thẩm quyền (Microsoft, Scott Gu, v.v.) chính thức đề xuất sử dụng LINQ to Entities thay vì LINQ to SQL.

+3

+1 Tôi là một trong số những người tin rằng nó sẽ không được chấp nhận và buồn. Tôi cũng thích nó. – jsmith

+0

Nếu nó vẫn được hỗ trợ đầy đủ nhưng không được mở rộng rất nhiều, điều đó có nghĩa là tôi nên chuyển sang cái gì khác? Điều gì sẽ là tốt để sử dụng thay cho nó? – BigOmega

Trả lời

58

Đối với tất cả các folks "LINQ-to-SQL là chết": Scott Guthrie mình nêu rõ tại TechEd Châu Âu mà LINQ-to-SQL là hỗ trợ đầy đủ trong .NET 4, và Damien Guard đăng tải một blog post vào những gì những thay đổi và cải tiến đã được thực hiện cho LINQ-to-SQL trong .NET 4.

để báo Mark Twain: "báo cáo về cái chết của tôi đã được thổi phồng quá đáng" ......

+7

Thêm vào đó những gì Hejlsberg nói trong một cuộc phỏng vấn Redmond Dev News: _ "LINQ to SQL không chết. Tôi có thể đảm bảo với bạn, nó không phải là chết. Không có gì bao giờ biến mất. Chúng tôi chưa bao giờ làm điều đó và chúng tôi sẽ không bao giờ". http://reddevnews.com/blogs/desmond-file/2008/12/digital-darwinism.aspx – KristoferA

+2

Trong khi nó không chết hoặc chết, nó không được chấp nhận. Đó là câu hỏi chính. Có những bài viết của Microsoft nói rằng động thái này là đẩy mạnh ORM - EF của họ. L2S được hỗ trợ đầy đủ và quan trọng đối với mọi người biết/tìm hiểu ... tuy nhiên, sự tập trung vào nó thực sự đã thay đổi, tương tự như Silverlight/html5 và mvc/webforms .. Không có công nghệ nào trước đây "chết" ở cùng một tốc độ hoặc hướng như những thứ khác. Không được chấp nhận có thể là một chút mạnh mẽ của một từ như vậy sẽ làm nổi bật rằng nó cuối cùng sẽ không được hỗ trợ, hoặc mạnh mẽ bị từ chối. –

+3

những gì Hejlsberg nói là một tuyên bố sai sự thật thay đổi và họ biến mất hoặc cửa sổ 3.1 vẫn sẽ được hỗ trợ .net 1.1 sẽ được hỗ trợ chính thức trên máy chủ 2008 và microsoft vẫn sẽ hỗ trợ các ngôn ngữ sắt và như tom đã chết! không được dùng nữa nhưng nó vẫn đang được sử dụng và được hỗ trợ, tuy nhiên nó không còn được phát triển tích cực nữa, tôi khuyên bạn nên hỗ trợ linq để sql hoạt động nhưng bắt đầu tiến vào công việc khung thực thể để phát triển hiện tại và tương lai –

8

Không, không. Nhóm nghiên cứu vẫn đang nỗ lực cải thiện nó.

4

Hãy chắc chắn để có hãy xem this article được đăng trên InfoQ.com - đó thực sự là một điều thú vị. Kết luận của nó: "[O] ver dài LINQ to SQL và LINQ to Entities sẽ hợp nhất. Trong thời gian đó, công việc phát triển trên LINQ to SQL sẽ không kết thúc hoàn toàn."

0

tôi đoán không thể tránh khỏi việc chúng sẽ hợp nhất. EF thực sự là một doanh nghiệp thực hiện cấp LINQ trên các đối tượng db. linq2sql là để tất cả các ý định một bằng chứng về khái niệm (và nhiều hơn nữa) mà thực sự phát triển chân nhưng thúc đẩy nhiều ý tưởng mà chúng ta bây giờ nhìn thấy trong EF. vào cuối ngày, lớp DAL (nhibernate, EF, l2s, subsonic vv) nên được khá xa xuống chuỗi để phủ nhận bất kỳ sự khác biệt trong mã khách hàng BO ngụ ý các dịch vụ LINQ - hot swappable sẽ là kết thúc trò chơi qua DI.

12

Cuối cùng tôi đã kiểm tra, trang web này sử dụng (hoặc sử dụng để sử dụng) LINQ to SQL. Joel Spolsky đề cập đến điều này trong GoogleTechTalk của mình: http://www.youtube.com/watch?v=NWHfY_lvKIQ.

Khi nói phần mềm, "chết" là công cụ sửa đổi hình tượng (phần mềm không chết theo nghĩa đen, sinh học), vì vậy cuộc tranh luận này có thể nán lại miễn là các bên liên quan từ chối xác định theo nghĩa đen nó có nghĩa là "Linq To Die". Hoặc, LTD cho ngắn. Do đó, tính đến thời điểm này, cuộc tranh luận LTD đã kéo dài trong hai năm. Tất cả vì một chút mơ hồ về ngôn ngữ.

Những người nói rằng "L2S đã chết" thường đề cập đến thực tế là L2S sẽ không nhận được quá nhiều (nếu có) tính năng mới. Các bản cập nhật cho LINQ (như các cập nhật được đề cập trong Damien Guard's post) có thể bị giới hạn trong các bản cập nhật về hiệu suất, khả năng sử dụng và tính ổn định. Tất nhiên, một số nhà phát triển thực sự có thể lập luận rằng đây là một điều tốt (có lẽ các nhà phát triển tương tự là một chút giận dữ về new dynamic type).

Những người nói rằng "L2S không chết" thường đề cập đến thực tế là L2S sẽ không bị cắt hoàn toàn khỏi .Net (ít nhất là không sớm). Hãy suy nghĩ: ADO.Nó có thể mất một số lực kéo của nó giữa các nhà phát triển thực hành (và đó có thể là mong muốn bất thành của những người xảo quyệt ở Microsoft), nhưng điều đó không có nghĩa là bạn sẽ không thể sử dụng L2S ​​nếu bạn muốn. Nó chỉ có nghĩa là Microsoft không cố gắng để trêu ngươi quần chúng với nó.

Khi bắt đầu dự án, tôi thực sự nghĩ rằng thật tuyệt khi tôi có lựa chọn giữa EF và L2S. Như Bill Wagner points out , có thời gian và địa điểm cho cả hai.

8

Tôi muộn để thảo luận này, nhưng tôi muốn chỉ ra rằng như xa trở lại như năm 2008, Liên kết với SQL Project Manager (Tim Mallalieu) đã thông báo này trong blog post mình,

"Tính đến .NET 4.0, LINQ to Entities [thay vì LINQ to SQL] sẽ là giải pháp truy cập dữ liệu được đề xuất cho LINQ cho các kịch bản quan hệ. "

Tôi không tìm thấy thông báo nào khác gần đây ngược lại.