LINQ to SQL डेड है?


17

क्या लाइनक को एसक्यूएल का उपयोग करते रहने का कोई कारण है, या क्या ओआरएम तकनीकों जैसे ईएफ, एनएचबर्नेट आदि के लिए स्थानांतरित करना बेहतर है।

हम लाइनक को SQL में एक नए बड़े एंटरप्राइज़ एप्लिकेशन में उपयोग कर रहे हैं जो लंबे समय तक मौजूद रहेगा। इस नए एंटरप्राइज़ एप्लिकेशन के लिए प्रेरणा यह है कि विज़ुअल बेसिक में एप्लिकेशन साधारण लिखा गया था और चूंकि Microsoft ने समर्थन को रोक दिया था, जहां हमने एप्लिकेशन को फिर से लिखने के लिए मजबूर किया था। ऐसा लगता है कि हम पहले से ही वहां हैं लेकिन इस बार हमारे डीएएल (डेटा एक्सेस लेयर) के साथ।

मैंने पहले ही इस लेख को पढ़ा है , लेकिन यह केवल ईएफ की कमजोरी की तुलना करता है।


+1 महान Q. यह मेरे लिए आकर्षक है, मैं अपनी संग्रहित प्रक्रियाओं को आगे बढ़ाता रहा हूं और बेहतर पठनीयता के लिए SQL क्वेरी को LINQ से SQL में परमार्थीकृत किया गया है, मुझे नहीं पता कि यह अब विकसित नहीं हो रहा था।
अक्टूबर

MS में थोड़ी सी .NET 4 स्लाइड शो टाइप होती है जिसमें कहा गया है कि यह मृत नहीं है - लेकिन इसका मतलब कई चीजें हो सकती हैं। उन्होंने इसे .NET 4.0 में सुधार किया: damieng.com/blog/2009/06/01/linq-to-sql-changes-in-net-40
MetalMikester

फिर से नहीं। इस प्रश्न पर StackOverflow पर विज्ञापन-nauseum पर बहस की गई है । क्या आप FUD कह सकते हैं?
रॉबर्ट हार्वे

जवाबों:


11

यदि आप पहले से ही इसका उपयोग कर रहे हैं और किसी भी कठिनाइयों का सामना नहीं कर रहे हैं, तो मैं मौजूदा परियोजनाओं पर इसके साथ रहना चाहूंगा।

Linq2SQL काफी अच्छा है, लेकिन सीमित है, ORM - यदि आप अपनी वस्तुओं को Linq2SQL द्वारा उपलब्ध कराए गए बुनियादी की तुलना में अधिक जटिल तरीकों से मैप करना चाहते हैं तो आप फंस जाएंगे। Microsoft ने .net 4 के साथ बाहर आने पर कुछ बग्स को ठीक किया था लेकिन कहा है कि वे इसे विस्तारित करने के लिए संसाधनों को समर्पित नहीं करेंगे।

मैं कहूंगा कि यदि आपके पास एक काफी सरल परियोजना है, जिसमें संभवतः एक सीमित जीवनकाल है, तो Linq2SQL एक सभ्य हल्का विकल्प है, जब तक कि आप सावधान रहें कि आप सभी जगह Linq2SQL पर निर्भरता लीक न करें। अधिक के लिए मैं कुछ और के साथ (उदाहरण के लिए NHibernate या EF) जाना होगा क्योंकि Linq2SQL बहुत ज्यादा एक मृत अंत है।


मैं केवल सहमत हो सकता हूं, वास्तव में मृत नहीं है लेकिन यह किसी तरह से ट्राइएज में मेज पर है। अगर सामान काम कर रहा है और इसे बदलने के लिए यह बहुत बड़ा प्रभाव है ... तो आप थोड़ी देर बैठ सकते हैं और रूपांतरण के लिए EF / NHibernate में एक अच्छा समय तलाश सकते हैं, एक वित्तपोषित उन्नयन परियोजना हो सकती है (अंत में हम सभी एक नौकरी चाहते हैं, मेज पर रोटी और मक्खन)।
साइबर

@ बर्बर: यह अनावश्यक काम के लिए एक अच्छा बहाना की तरह लगता है।
रॉबर्ट हार्वे

12

यह मृत नहीं है, लेकिन माइक्रोसॉफ्ट अब एंटिटी फ्रेमवर्क पर केंद्रित है।

मैंने छोटे प्रोजेक्ट्स पर LINQ to SQL का उपयोग किया है, और यह एक हल्के डेटा-लेयर के रूप में काफी अच्छा है और मैं इसे इसी तरह के आकार के प्रोजेक्ट्स पर फिर से उपयोग करने पर विचार करूँगा। LINQ कार्यान्वयन में ही वास्तव में अच्छा है और हाल ही में जब तक है बहुत NHibernate LINQ परियोजना की तुलना में बेहतर। जिस बड़े प्रोजेक्ट पर मैंने L2S का उपयोग किया है, मैंने L2S 'DataContext' वर्ग के साथ सीमाओं के कारण, एक यूनिट-ऑफ़-वर्क-वर्क पैटर्न के साथ आना मुश्किल समझा। L2S के साथ 'सेशन प्रति अनुरोध' जैसा कुछ लागू करने की कोशिश या तो बहुत कठिन या असंभव लगती है।

मैं भी वास्तव में L2S को एक सच्चा ORM नहीं मानता, क्योंकि यह वास्तव में आपको कई मैपिंग विकल्प नहीं देता है। आपके वर्ग के डिजाइन को वास्तव में आपके डेटाबेस स्कीमा (तालिका-प्रति-वर्ग) का पालन करने की आवश्यकता है अन्यथा यह आपके साथ हर कदम पर संघर्ष करेगा। L2S के बारे में एक और चीज जो मुझे पसंद नहीं है, वह है संग्रह, संदर्भ और आलसी-लोडिंग को संभालने के लिए विशिष्ट प्रकार ( EntitySetऔर EntityRef) का उपयोग करने की आवश्यकता । इसका मतलब यह है कि अमूर्त की एक और परत जोड़े बिना अपने डोमेन मॉडल ORM अज्ञेय को रखना संभव नहीं है।

L2S के साथ मेरा अन्य मुद्दा प्रश्नों को उत्पन्न करने के लिए LINQ पर एकमात्र निर्भरता है। LINQ प्रदाता बहुत अच्छी तरह से लिखा गया है और आम तौर पर प्रश्नों के बहुमत के लिए सभ्य SQL बनाता है, लेकिन मेरी चिंताएं हैं कि अधिक जटिल प्रश्न हैं जिन्हें LINQ के साथ अच्छी तरह से व्यक्त नहीं किया जा सकता है। मूल रूप से इन मामलों में संग्रहीत प्रक्रियाओं को कॉल करने के लिए आपको L2S का उपयोग करना पड़ता है, जबकि (उदाहरण के लिए) NHibernate में कई API (LINQ प्रदाता, QueryOver, HQL आदि) हैं जिनका उपयोग तब किया जा सकता है जब आप उत्पन्न SQL पर अधिक नियंत्रण चाहते हैं।

NH2nate पर L2S के बचाव में, इसे प्रोजेक्ट पर लाने और चलाने में बहुत कम ओवरहेड होता है।


2

यह मृत नहीं है क्योंकि यह अभी भी काम करता है, लेकिन अगर इसे और विकसित नहीं किया जा रहा है तो यह कुछ और करने के लिए समझ में आ सकता है।

हालाँकि, अगर यह आपके एप्लिकेशन के लिए काम करता है तो बदलने के लिए बदलने का कोई मतलब नहीं है।


2

मृत इमहो से अधिक स्थिर:

http://www.thinqlinq.com/default/LINQ-to-SQL-enhancements-for-2010.aspx

http://jonkruger.com/blog/2009/06/06/linq-to-sql-is-not-dead/

उन्होंने अपने सुधार के प्रयास को एंटिटी फ्रेमवर्क पर स्थानांतरित कर दिया है जहां वास्तव में जरूरत है अगर उस उत्पाद को सफल होना है। कुछ समय के लिए linq2sql पर नई लेकिन अनुकूलता और बग फिक्स के अलावा कुछ नहीं की अपेक्षा करें।

अगर मैं गलत नहीं हूं तो यह साइट पूरी तरह से linq2sql के साथ चलती है।


"स्थिर" के लिए +1 L2S, imho देखने का सबसे अच्छा तरीका है। स्थिर और अब विस्तारित / परिवर्तित नहीं किया जा रहा है।
क्वेंटिन-स्टारिन

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

एक बड़े उद्यम के दृष्टिकोण से तथ्य यह है कि कोर को अब संशोधित नहीं किया जा रहा है इसका मतलब यह है कि यह अंततः कई मामलों में अनुमोदित तकनीकों की सूची पर जा सकता है। मेरे काम की लाइन में हम कुछ समय से इसके लिए इंतजार कर रहे थे। ईएफ अभी भी अभी तक कूदने के लिए अस्थिर है और एल 2 एस हमेशा उन परिस्थितियों में रुचि को आकर्षित करने वाला है जहां ईएफ का ओवरहेड नहीं चाहता है।
बिल

@ जेरेमी क्या लोग अभी भी TeX का उपयोग करते हैं?
वैकल्पिक

1

यह अजीब है, लेकिन मैंने इस वाक्यांश को बहुत देखा है ("LINQ2SQL मृत है") और मुझे यकीन नहीं है कि यह कहाँ से उपजा है। यह विंडोज एक्सपी की तरह ही मृत है। Microsoft ने समर्थन बंद कर दिया है और कुछ नया (और मेरी नज़र में बेहतर) बनाया है फिर भी लोग अभी भी XP का उपयोग करने के लिए स्वतंत्र हैं क्योंकि वे Linq2SQL का उपयोग करने के लिए स्वतंत्र हैं। निस्संदेह, मैं कस्टम DotNetNuke मॉड्यूल बनाते समय Linq2SQL का उपयोग करता हूं। हालाँकि, EF4 में नई सुविधाओं के साथ जैसे कोड-प्रथम-विकास ( http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx) ) Linq2SQL के साथ छड़ी करने के कारणों को खोजना मुश्किल है। मुझे कोड के माध्यम से जाने और अपडेट करने का कोई कारण नहीं दिखता है लेकिन नए कोड के लिए मुझे नहीं पता कि आप EF4 का उपयोग क्यों नहीं करना चाहते हैं।

* सभी ईमानदारी में हालांकि, मैं बहुत ... शब्दार्थ पर जुनूनी हूँ! मैं माफी माँगता हूँ अगर यह दूसरों के लिए कष्टप्रद है :)

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