LINQ to SQL डेड या अलाइव है?


95

बस जब मैं LINQ से SQL में दोस्त बनाता हूं, तो ऐसा प्रतीत होता है जैसे MS इसके नीचे से गलीचा निकाल रहा है।

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

मेरे छोटे से शोध से, ईएफ सरल काम के लिए ओवरकिल है। लेकिन इस घोषणा के बाद LINQ to SQL का उपयोग जारी रखने की बात है?

LINQ to SQL के लिए भविष्य से परे, क्या यह आमतौर पर एक बुरा संकेत नहीं भेजता है? जिस गति के साथ एमएस दीवार के खिलाफ बिट्स फेंक रहा है, उसे देखते हुए, क्या किसी नए बिट्स का जल्दी उपयोग करना तर्कसंगत है? (और यह दयालु है, यह LINQ से SQL के लिए मुश्किल है!)।

SQL कार्य करने के लिए मेरे LINQ के लिए, मुझे लगता है कि मैं 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


उस घोषणा में कुछ नहीं कहा कि SQL के लिए LINQ या LINQ के बारे में कुछ भी कहा जाए ...?
कोडवर्ड

5
@AugustLights मुझे लगता है कि घोषणा यह कहती है कि "हम LINQ को SQL में नहीं निकालेंगे, लेकिन हम इसे EF पर पूरी तरह से नजरअंदाज करने जा रहे हैं"
जॉन लीमजप

जॉन - यही तरीका है कि मैंने इसे पढ़ा। घोषणा में कहा गया है, "... LINQ से संबंधपरक परिदृश्यों के लिए एंटिटी फ्रेमवर्क हमारा अनुशंसित डेटा एक्सेस समाधान होगा।" यह अलविदा, LINQ SQL में अनुवाद करता है।
आर.पी.

4
MFC मृत नहीं है, इसका पसंदीदा समाधान नहीं है। क्या आप अभी भी MFC कोड करते हैं? VB6 अभी भी समर्थित है, क्या आप इसे कोड करते हैं? इसका हमेशा यही तरीका रहा है, एमएस वही करता है जो वह चाहता है, न कि वह जो आप चाहते हैं।
gbjbaanb 22

1
@ आरपी: आपको DOA के तहत क्या मतलब था - Dead or Aliveया Dead on arrival?
abatishchev

जवाबों:


64

1) वे Linq-to-SQL को "मार" नहीं सकते क्योंकि यह पहले से ही .net फ्रेमवर्क का हिस्सा है। वे जो कर सकते हैं, उसमें सुविधाओं को जोड़ना बंद कर दिया है। यह हजारों डेवलपर्स को बाहर नहीं रोकता है जो पहले से ही एल 2 एस का उपयोग कर रहे हैं, इसे विस्तारित करने और इसे सुधारने से। कुछ मुख्य क्षेत्र स्पर्श करने के लिए मुश्किल हैं, लेकिन वे पहले से ही ठोस हैं और लापता डिजाइनर सुविधाओं को आसानी से बढ़ाया जा सकता है

2) पीडीसी ईएफ सत्रों में से एक यह दर्शाता है कि उन्होंने EFv1 फियास्को से कुछ सबक सीखे हैं और वे अब L2S से EF में बहुत सारी अच्छाइयों की नकल कर रहे हैं और दिखावा कर रहे हैं कि यह नया EF सामान है। दूसरे शब्दों में, L2S संस्करण दो को केवल "रिलेबल" EF किया गया है।

3) LINQ जैसे (लैंग्वेज इंटीग्रेटेड क्वेरी) कटी हुई आइसक्रीम के बाद से सबसे अच्छी चीज है और इसे L2S (ऑब्जेक्ट्स के लिए लाइनक, ऑब्जेक्ट्स पर Linq, XML को Linq, Linq-to-something) के अलावा अन्य कई चीजों के साथ इस्तेमाल किया जा सकता है )। इसलिए डीपी समूह के प्रयास [L2S को अपनाने वाले [कम लोकप्रिय और वर्तमान में त्रुटिपूर्ण] के विशाल जनसमूह को मजबूर करने के लिए है। एंटिटी फ्रेमवर्क लाइनक को नहीं सीखने का कोई कारण नहीं है।

इस थ्रेड को भी देखें (जो मैं मानता हूं कि आंशिक रूप से टिम के ब्लॉग पोस्ट को ट्रिगर किया गया है): http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=4061922&SiteID=1

अपडेट 1: रोजर जेनिंग्स द्वारा विज़ुअल स्टूडियो मैगज़ीन कवर स्टोरी का दिसंबर 2008 का अंक इस विषय पर अच्छा पढ़ा गया है, जिसमें कुछ एल 2 एस बनाम ईएफ की तुलना है: http://visualstudiomagazine.com/features/article.aspx?ititorialsid=2583

अपडेट 2: रेडर्स डेवलपर न्यूज़ में एंडर्स हेजलबर्ग को उद्धृत किया गया था, " LINQ to SQL मृत नहीं है। मैं आपको आश्वस्त कर सकता हूं, यह मृत नहीं है। कुछ भी कभी नहीं जाता है। हमने कभी ऐसा नहीं किया है और हम कभी नहीं करेंगे। "

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


14
StackOverflow के रचनाकारों ने अपनी पसंद के ORM के रूप में Linq को SQL में अपनाया। जाहिरा तौर पर वे लाभ का फैसला किया जोखिम perweighed।
रॉबर्ट हार्वे

क्या यह अभी भी सच है? मैंने सुना है कि स्टैकऑवरफ्लो एल 2 एस से दूर चला गया लेकिन यह जानकारी नहीं मिल सकती है।
हारून

2
@ एरॉन, हाँ, वे अपने स्वयं के माइक्रो-ओआरएम के साथ हाथ से लिखी एसक्यूएल का उपयोग करते हैं जिसे डैपर कहा जाता है। वे अभी भी साइट के कम लोकप्रिय वर्गों पर LINQ-to-SQL का उपयोग कर सकते हैं।
CMircea

28

आपके प्रश्न की अस्पष्टता है जिसे हल करने की आवश्यकता है।

LINQ! = LINQ to SQL

LINQ प्रौद्योगिकियों और प्रदाताओं का एक पूरा समूह हैं:

  • Linq to SQL;
  • इकाइयों को Linq;
  • वस्तुओं को Linq;
  • Linq to XML;

... और वे केवल Microsoft से हैं। गैर-MS प्रदाता भी हैं, जिनमें NHibernate भी शामिल है।

आप जिस पोस्ट को लिंक करते हैं, वह ब्लॉग केवल Linq से SQL के बारे में जुड़ा हुआ है।

LINQ का मुख्य लाभ यह है कि आप एक क्वेरी सिंटैक्स को सीख और उपयोग कर सकते हैं और इसे कई तकनीकों में पुन: उपयोग कर सकते हैं।

इसे देखते हुए, मेरा सुझाव है कि "लाइनक टू एसक्यूएल" के लिए भविष्य की कोई कथित कमी अप्रासंगिक है, क्योंकि लिनेक क्वेरी लिखने में आपको जो कौशल हासिल होता है, वह भविष्य में अन्य उपकरणों के लिए हस्तांतरणीय होगा।


LINQ 2 SQL सिंटेक्स एंटिटी फ्रेमवर्क के समान पर्याप्त है जिसे आप दो सुंदर के बीच आसानी से चला सकते हैं।
जेसन शॉर्ट

उसका प्रश्न अभी भी मान्य है, हालांकि, LINQ to SQL के वास्तविक कार्यान्वयन के रूप में SQL सर्वर के खिलाफ काम करने वाले कुछ विशिष्ट फायदे हैं।
टोर हौगेन

21

हम LINQ को SQL में नहीं मार रहे हैं। हम EF के लिए अनुकूलन कर रहे हैं, लेकिन LINQ to SQL निश्चित रूप से नहीं मारा जा रहा है :)

- स्कॉट / माइक्रोसॉफ्ट।


जबरदस्त हंसी। यह मुझे दरार। क्या आपको सार्वजनिक बयान देने के लिए Microsoft से अनुमोदन प्राप्त करना होगा? : पी
कोलोब कैनियन

एह? 2009 में यह एक संदेश था, जिसमें टीम ने सवाल किया था कि मुझे इसे ठीक करना था ... .net के उत्पाद प्रबंधक के रूप में: D
स्कॉट बार्न्स

13

न केवल आपको Linq (System.Linq.Enumerable और System.Linq.Queryable) सीखना चाहिए, आपको अपनी .net भाषा के लिए प्रोग्रामिंग भाषा संवर्द्धन सीखने की आवश्यकता होगी।

C # 3.0 में ये शामिल हैं:

  • विस्तार विधियाँ (पहले पैरामीटर पर इस खोजशब्द के साथ स्थैतिक विधियाँ)
  • संकलक अनुमान प्रकार (var)
  • लैम्ब्डा सिंटैक्स (जो संदर्भ के आधार पर एक अनाम विधि या एक अभिव्यक्ति उत्पन्न करता है)
  • initializers
  • संपत्ति डिफ़ॉल्ट कार्यान्वयन (एक आशुलिपि)

और अधिक पढ़ें यहाँ


VB 9.0 में कुछ इनलाइन XML मैजिक, और कई अन्य चीजें हैं (कई सी # के लिए उपरोक्त सूची के समान हैं)।

और अधिक पढ़ें यहाँ


वाह, मैं वास्तव में शाब्दिक दिन रहा होगा। केवल वाक्य की वास्तव में सख्त आउट-ऑफ-रेफरेंस व्याख्या के साथ जो सवाल है - क्या मेरा जवाब भी समझ में आता है।
एमी बी

@ डेविड बी, हाँ .. मैं पसंद था, यह एक ठीक जवाब है, मैं अभी नहीं देखता कि यह इस सवाल का जवाब कैसे देता है। lol
mmcdole

1
यह उठता रहता है। मुझे लगता है कि कुछ लोगों को लिंक में जानकारी देखने की आवश्यकता है ... यदि आपको यह उत्तर पसंद आया है, तो आप मेरे बेहतर उत्तर को यहां पसंद कर सकते हैं: stackoverflow.com/questions/471502/what-is-linq/471592#471592
एमी बी

8

मुझे ईमानदारी से समझ नहीं आ रहा है कि उस लेख में आपने पढ़ा कि link2sql मर चुका है।

आप जिस ब्लॉग पोस्ट से जुड़े हैं, वह कहता है:

हम LINQ से SQL के बारे में ग्राहकों को सुन रहे हैं और हम समुदाय से भी प्राप्त होने वाले फीडबैक के आधार पर उत्पाद विकसित करना जारी रखेंगे।

मेरे लिए यह पढ़ता है कि LINQ to SQL को भविष्य में विकसित और समर्थित किया जाएगा। मुझे आश्चर्य है कि आपको क्यों लगता है कि यह मर चुका है?


7

दी, मुझे लगता है कि LINQ से SQL, LINQ से एंटिटीज़ और LINQ से लेकर [थर्ड पार्टी ORM] सम्मिलित करने का विकल्प यहाँ डेटा एक्सेस लेयर मेथडोलोजी का एक बिल्कुल स्वस्थ इको-सिस्टम प्रदान करता है, जिसे एक सॉफ्टवेयर डेवलपर चुन सकता है। तीसरे पक्ष के प्रदाता जैसे NHibernate, LLBLGen और यहां तक ​​कि सबसोनिक (यकीन नहीं है कि अगर वे LINQ प्रदाताओं की पेशकश करने जा रहे हैं) निश्चित रूप से प्रतियोगिता को बेहतर और अधिक दिलचस्प बना देगा।

यह कहा जा रहा है, यह Microsoft के लिए पूरी तरह से LINQ SQL को त्यागने के लिए दुख की बात होगी, खासकर जब से यह एक अच्छा निम्नलिखित है - यहां तक ​​कि StackOverflow पर बनाया गया है।


6

इसके बारे में रोचक ब्लॉग पोस्ट। और Stackoverflow पोस्ट पर कुछ संबंधित जानकारी ।

बेसिक जिट ado.net ब्लॉग पर की गई टिप्पणियों से प्रतीत होता है कि स्टेट्स फ्रेमवर्क केवल वही है जो विजुअल स्टूडियो 2010 और डॉट नेट 4 के लिए प्रमुख डेवलपर समय प्राप्त कर रहा है।

मेरी प्रतिक्रिया है - DUH। यह हम सब जान चुके हैं। Microsoft ने PDC 2007 में सार्वजनिक रूप से कहा कि LINQ to SQL, SQL सर्वर के लिए एक छोटी अवधि की रिलीज़ थी क्योंकि SQL सर्वर के लिए कोई अन्य LINQ कहानी नहीं थी। यह केवल SQL सर्वर के साथ काम करता है। आप LINQ to SQL प्रदाता नहीं लिख सकते - इसके लिए कोई मॉडल नहीं है। यह एक बंद तकनीक थी, एक्सटेंसिबल नहीं।

LINQ प्रदाता बनाने के लिए Microsoft से केवल एंटिटी फ्रेमवर्क है। इकाई फ्रेमवर्क काफी विपरीत हो गया है, लेकिन मुझे लगता है कि इस तथ्य के कारण आंशिक रूप से है कि LINQ to SQL का आज बेहतर प्रोग्रामर अनुभव है। इकाई फ्रेमवर्क SQL में LINQ को पकड़ और पार कर लेगा क्योंकि यह Microsoft से भविष्य का ORM / मैपिंग टूल है।

EDIT - मैंने अभी अपने ब्लॉग पर इस बारे में थोड़ा और विस्तृत लिखा

EDIT2 - IQueryable प्रदाता - LINQ से SQL प्रदाता के समान नहीं है। आप अपनी पसंद के लिए अपना खुद का IQueryable प्रदाता लिख ​​सकते हैं। आपको कोई डिजाइनर समर्थन या मॉडल पीढ़ी नहीं मिलती है। कोई gui डिज़ाइनर मॉडल नहीं है जिसे मैं LINQ में SQL मॉडल जनरेशन में बांधने के लिए जानता हूँ।


1
पुन: "आप SQL प्रदाता को LINQ नहीं लिख सकते - इसके लिए कोई मॉडल नहीं है।" खैर, वहाँ है । यह सिर्फ इतना है कि उन्होंने ईएफ को बढ़त देने के लिए आवश्यक सदस्यों को निजी अंतिम-मिनट में बनाने का फैसला किया। ब्लॉगs.msdn.com/mattwar/archive/2007/05/31/… पर
KristoferA

1
क्षमा करें, पिछला लिंक blogs.msdn.com/mattwar/archive/2008/05/04/…
क्रिस्टोफ़र

धन्यवाद - उस पोस्ट को नहीं पढ़ा था। मुझे पता था कि आंतरिक रूप से एक एपीआई था, लेकिन यह नहीं पता था कि क्या कभी सार्वजनिक ज्ञान जारी किया गया था।
जेसन शॉर्ट

1
एक ही ब्लॉग ( blogs.msdn.com/mattwar ) में प्रदाताओं को लिखने के तरीके पर एक पूरा लेख सीरीज़ (नमूने के साथ), और एक प्लग करने योग्य डाउनलोड करने योग्य L2S प्रदाता है जो आपको उपयोगी लग सकता है।
क्रिस्टोफर

इससे कोई फर्क नहीं पड़ता कि आप इसे हैक कर सकते हैं - यह आधिकारिक तौर पर एमएस द्वारा समर्थित नहीं है। आपके पास इसके लिए कोई वीएसआईपी एकीकरण नहीं है। आपको ऐप के लिए लोगो नहीं मिल सकता है ...
जेसन शॉर्ट

5

मुझे लगता है कि मैं वास्तव में यहाँ समस्या नहीं देख रहा हूँ। आपके द्वारा जुड़े लेख से:

हम LINQ से SQL के बारे में ग्राहकों को सुन रहे हैं और हम समुदाय से भी प्राप्त होने वाले फीडबैक के आधार पर उत्पाद विकसित करना जारी रखेंगे।

क्या मैं कुछ भूल रहा हूँ? LINQ SQL में आने पर मृत होने का क्या आभास देता है?



4

किसी को VB6 याद है? चाहे आप व्यक्तिगत रूप से इसे घृणा करते हैं या इसे प्यार करते हैं, Microsoft ने लाखों प्रतियां बेचीं, और व्यवसायों ने लाखों डॉलर खर्च करके VB6 की लाखों लाइनें लिखीं। आगे क्या हुआ?

तो बस उस पाठ पर विचार करें। मेरे लिए, ऐसा लगता है कि LinqToSQL समर्थन बल्कि गंभीर होगा। वे इसका समर्थन करने के लिए बाध्य हैं क्योंकि यह वर्तमान .NET फ्रेमवर्क में है। लेकिन क्या यह .NET 5, 6, 7 में होगा ...? जरा सोचिए कि आपके लिए यह कितना मायने रखता है (क्योंकि मैं जानता हूं, यह आपके लिए बिल्कुल भी मायने नहीं रखता)।


मेरे लिए सबसे अच्छा OracleConnection और SqlConnection के साथ शुद्ध ado.net है क्योंकि यह प्रदाता और System.Data.DataSet कभी नहीं मरते हैं। टैब्यूलर डेटा का आधार है। व्यक्तिगत मैं ईएफ पसंद करता हूं लेकिन पेशेवर डेटासेट एक मानक होना जारी है।
पीडोफ़रनेंडेस

3

हो सकता है कि आप SQL को Linq सीखने से परेशान न करें, लेकिन अभी भी Entities Linq है जो वे रखेंगे।


1
वर्तमान ईएफ दृष्टिकोण में कुछ गंभीर मुद्दे हैं, कम से कम लागू आधार वर्ग। मुझे उम्मीद है कि EFvNext स्थानों में काफी भिन्न दिखाई देगा; L2S - या nHibernate ;-p: तब तक, मैं सबसे आसान विकल्प का उपयोग कर होगा की सलाह देते हैं
मार्क Gravell

1
एक बार जब आप LINQ के चारों ओर अपना सिर रख लेते हैं, तो मैं सुझाव दूंगा कि LINQ को SQL में "सीखना" बहुत तुच्छ है। यह सिर्फ अपनी परियोजना के लिए SQL वर्ग आइटम में एक LINQ जोड़ने और डिजाइनर पर कुछ तालिकाओं को खींचने का मामला है।
रिचर्ड ईवी


3

यह स्पष्ट है कि 2 ओआरएम माइक्रोसॉफ्ट के टूलबॉक्स में कई में से एक है, लेकिन मुझे लगता है कि यह गलत फ्रेमवर्क सभी गलत कारणों के लिए चुना गया है। तथ्य यह है कि C # टीम ने वह काम किया जो ADO.NET टीम को बहुत कम समय में करना था और ado.net टीम के लिए काम करने के तरीके को बेहतर तरीके से पूरा करना कठिन था। ऐसा नहीं है कि मैं 2 चौखटे के आंतरिक कामकाज को जानता हूं, लेकिन मुझे लगता है कि कमियों को उन्नत करने के लिए यह बहुत तेज होगा linq2sql को इकाई ढांचे के लिए है।

ऐसा लगता है कि इसमें बहुत अधिक राजनीति शामिल है और मुझे लगता है कि यह वास्तव में asp.net प्रतिष्ठा को चोट पहुंचाने वाला है, क्योंकि मुझे इस बात पर कोई भरोसा नहीं है कि Entity फ्रेमवर्क हमें Linq2sql के समान उपयोगकर्ता के अनुकूल अनुभव देगा। Ado.net टीम asp.net mvc टीम से कुछ संचार कौशल भी सीख सकती है क्योंकि समस्या पर स्पष्टीकरण सबसे अच्छा अस्पष्ट है।

यह सीखना मजेदार होगा कि स्कॉट गु और उनकी एमवीसी टीम यहां क्या करती है क्योंकि उनके अधिकांश उदाहरण Linq2Sql का उपयोग कर रहे हैं।


2

यह हमेशा थोड़ा अजीब था कि लिनक 2 एसक्यूएल और एंटिटी फ्रेमवर्क के साथ ओवरलैप के बड़े क्षेत्र थे। मुझे लगता है कि केवल कारण L2S ने इसे कभी भी .NET 3.5 रिलीज में बनाया था क्योंकि एक बड़ा संदेह था कि EF कभी दिन का प्रकाश देखेगा। अब जब EF1 बाहर है, तो सभी इसे बहुत ही कठिन v1 मानें, अब L2S की कोई आवश्यकता नहीं थी।


2

(नहीं, StingyJack, LINQ to SQL इकाई ढांचे का उपयोग नहीं करता है)

वैसे भी, मुझे चिंता नहीं होगी। टिम बताता है कि वे LINQ से SQL के बारे में ग्राहकों को सुन रहे हैं। L2S के लिए मैंने जो उत्साह देखा है, उसे देखते हुए, ग्राहक (जो हम हैं) अपने मन की बात कहेंगे।

और, जैसा कि क्रिस्टोफर कहते हैं, वे वास्तव में 'एल 2 एस' को नहीं मार सकते, केवल इसे फ्रीज कर सकते हैं। और L2S, एक बार पॉलिश होने पर, वास्तव में बहुत अधिक विकास की आवश्यकता नहीं होती है। L2S प्रदाता के स्थान पर, LINQ में कोई भी अग्रिम L2S में भी उपलब्ध होना चाहिए। तो चुनाव अभी भी हमारा होगा।


खैर, वे इसे डॉट नेट 4 में शामिल नहीं करके मार सकते हैं, जो कि साइड इन्स्टॉल होना चाहिए। इसका मतलब होगा कि डॉट नेट 4 एप्स के पास एक ही मशीन पर 3.5SP1 इंस्टॉल किए बिना एक्सेस नहीं होगा - पता नहीं कि यह सच है या नहीं।
जेसन शॉर्ट

किसी को VB6 याद है? Microsoft अभी भी VB6 (तरह) का समर्थन करता है। वे अभी भी कहते हैं कि वे अभी भी VB6 ग्राहकों को सुन रहे हैं। लेकिन क्या हम खुश हैं? नहीं। हमारे कोड को प्रतिस्थापन प्रौद्योगिकी, VB.Net पर लाने के लिए अपग्रेड पथ महंगे हैं। तो बस उस पाठ पर विचार करें: और यह सोचें कि क्या LinqToSQL .NET 4, 5, 6 में होगा ... और यह आपके लिए कितना मायने रखता है।
MarkJ

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.