2008-12-08 16 views
10

मैं ओआरएम चुनते समय अपने नए एप्लिकेशन के लिए कुछ दिशानिर्देश ढूंढ रहा हूं। मैं एनएचबर्ननेट और LINQ से एसक्यूएल पर ईएफ का मूल्यांकन करना चाहता हूं। मुझे इस अद्भुत समुदाय से कुछ विशेषज्ञ आवाज चाहिए। आप निम्न बिंदु पर मूल्यांकन कर सकते हैं।एडीओ.NET इकाई फ्रेमवर्क: ओआरएम समाधान के बीच निर्णय बनाना

  1. अनुमापकता
  2. सीखना वक्र
  3. आसान
  4. प्रदर्शन आदि का उपयोग करने के

उत्तर

11

ठीक है, आपने सूचीबद्ध तीनों में से, NHibernate सबसे लंबे समय तक रहा है। यदि आप किसी ऐसे चीज़ के साथ काम करना चाहते हैं जिसमें एक सिद्ध ट्रैक रिकॉर्ड है, तो शायद यह शुरू करने के लिए एक सुरक्षित स्थान है।

यह चार मीट्रिक (स्केल/सीखने की वक्र/उपयोग और प्रदर्शन की आसानी) में भी सुंदर है, हालांकि आपको लगता है कि यह दो अन्य लोगों की तुलना में अधिक जानकारी के कारण उपलब्ध है।

LINQ से SQL को इकाई फ्रेमवर्क से अधिक समय तक रिलीज़ किया गया है, लेकिन केवल SQL सर्वर स्वाद के विरुद्ध चलता है। यह एक उपयुक्त उद्देश्य के लिए ओआरएम के रूप में बहुत अच्छी तरह से काम करता है, लेकिन एंटिटी फ्रेमवर्क के रूप में एक फीचर समृद्ध नहीं है (जो अन्य चीजों के साथ ईएसक्ल प्रदान करता है)।

LINQ से SQL को समझना बहुत आसान है (LINQ के आपके ज्ञान के आधार पर) और हाल ही में जेनरेट किए गए प्रश्नों की गुणवत्ता में सुधार हुआ है (पहले बीटा के बाद से)। मुझे यकीन नहीं है कि यह कितना अच्छा है, या प्रदर्शन करता है, लेकिन आपको लगता है कि यह औसत डेवलपर के हस्तलिखित टी-एसक्यूएल के बराबर है (ठीक है अब यह जंगली धारणा है!)। यह बहुत सरल है, और विजुअल स्टूडियो के भीतर आपके लिए एक बहुत अच्छा मॉडल उत्पन्न करता है।

गैर एसक्यूएल सर्वर डेटाबेस के लिए अन्य (2) alternatives समर्थन

इकाई की रूपरेखा तीन के नवीनतम है और इसके परिणामस्वरूप, अभी भी कुछ मुद्दों को ठीक करना है (उम्मीद अगले संस्करण में) कर रहे हैं। यह कई प्रदाताओं (यह SQL सर्वर तक सीमित नहीं है) के साथ काम करेगा और इसमें अतिरिक्त भलाई जैसे ईएसक्यूएल और (1) Table-Per-Type inheritance है। पहले सीखना थोड़ा मुश्किल हो सकता है, लेकिन एक बार जब आप इसके साथ एक या दो समाधान कर लेते हैं, तो यह अनुमान लगाने योग्य और लागू करने में आसान हो जाता है।

यह नवीनतम होने के कारण, सीखने की अवस्था के मामले में थोड़ा और अधिक ले जाएगा (सीखने के लिए और भी कुछ है), और प्रदर्शन .. वांछनीय (वर्तमान में) से कम है लेकिन यह कुछ दिलचस्प ऑफर करता है लाभ (विशेष रूप से एकाधिक प्रदाताओं के लिए समर्थन)।

मुझे लगता है कि उत्तर में मेरा प्रश्न है - क्या आप सिर्फ मूल्यांकन कर रहे हैं या आपको एक व्यावहारिक (उत्पादन-तैयार) ओआरएम समाधान तैयार करने की आवश्यकता है?

एंटिटी फ्रेमवर्क शायद गंभीर उत्पादन कार्य (छोटे समाधानों के बाहर) के लिए तैयार नहीं है जो आपको LINQ से SQL या NHibernate के साथ छोड़ देता है। यदि आप केवल SQL सर्वर डेटाबेस के साथ काम करने जा रहे हैं, LINQ से SQL एक दिलचस्प विकल्प है। अन्यथा, गंभीर काम के लिए एनएचबेर्नेट शायद सबसे अच्छा शर्त है।

(1) [http://msdn.microsoft.com/en-us/data/cc765425.aspx] (2) [http://www.devart.com/dotconnect/linq.html]

+1

1. Linq विरासत 2. समर्थन करता है MySQL, Oracle और PostgreSQL के लिए LINQ प्रदाताओं रहे हैं। – graffic

+0

एसक्यूएल से लिंक तालिका-प्रति-प्रकार का समर्थन करता है? – RobS

+0

....एंटिटी फ्रेमवर्क डेटा और फ्रंट-एंड –

संबंधित मुद्दे