2009-02-19 17 views
8

के लिए मैं कौन सा ORM टूल उपयोग करूँगा मेरी कंपनी .NET में नए विकास के लिए ओआरएम का उपयोग करने की तलाश में है। वर्तमान में हम इसकी लोकप्रियता के कारण nHibernate को देख रहे हैं, हालांकि एलएलबीएलजेन एक और विकल्प है जिसे हम विचार कर सकते हैं। लागत प्राथमिक कारक नहीं है। हमें ऐसे समाधान की आवश्यकता है जो डेटाबेस से डोमेन मॉडल का अच्छा अलगाव प्रदान करे, एक अच्छी कैशिंग रणनीति, विकास उत्पादकता (यानी अगर मैं इसे कॉन्फ़िगरेशन फ़ाइलों के बजाय जीयूआई में संपादित कर सकता हूं), अच्छा ग्राहक समर्थन।.NET विकास

मुझे पता है कि nHibernate बहुत लोकप्रिय है, लेकिन मुझे यह भी पता है कि कीमत (यह मुफ़्त है) ओपन सोर्स प्रकारों के कारण का कारण हो सकती है। चूंकि लागत प्राथमिक कारक नहीं है (जब तक कि कीमत $ 10,000 नहीं है), आप हमारी परिस्थितियों को चुनने के लिए क्या चुनेंगे? साथ ही, मेरे द्वारा सूचीबद्ध किए गए किसी भी अन्य कारकों के अलावा, क्या आप ओआरएम चुनने में सबसे महत्वपूर्ण मानेंगे?

संकल्प

हम अंत में एक समाधान के रूप में NHibernate का फैसला किया है, तथापि मसा में, मुझे लगता है कि मैं अगर हम इसे फिर से करना था डालूँगा साथ चला गया होता। मैं सिर्फ एक्सएमएल मैपिंग फाइलों के बारे में नहीं मिला हूं। कोड जनरेटर जो मैंने NHibernate के लिए पाया था वांछित होने के लिए बहुत कुछ छोड़ दिया। मुझे फ्लुएंट एनएचबेर्नेट को एक दिलचस्प विकास के रूप में मिलता है, लेकिन मैं इसे इस्तेमाल करने से पहले परिपक्व होने की बजाय प्रतीक्षा करता हूं।

जैसा कि यह निकला, मेरी सीखने की प्रक्रिया का सबसे महत्वपूर्ण हिस्सा प्रौद्योगिकियां नहीं बन गया, लेकिन दो डिज़ाइन पैटर्न: भंडार और अलग-अलग इंटरफ़ेस पैटर्न। डेटा एक्सेस के लिए एक रिपोजिटरी इंटरफ़ेस को परिभाषित करके (जेफरी पालेर्मो में इस पर कई ब्लॉग पोस्ट हैं और दोनों Apress और Wrox MVC पुस्तकें भी इसे दिखाती हैं), हम LinqtoSQL, LLBLGen, NHibernate, आदि का उपयोग कर सकते हैं और डीएएल कार्यान्वयन को स्वैप कर सकते हैं बाद में अगर हम स्विच करते हैं। इसलिए, मेरे सहकर्मियों में से एक अपने ऐप पर एनएचबीर्नेट का उपयोग कर रहा है, मैंने अपने सबसे हालिया ऐप पर लिंककॉएसक्यूएल का उपयोग करना चुना और यह ठीक काम करता है।

उत्तर

8

यदि आपको भुगतान करने की कोई बात नहीं है, तो मैं एलएलबीएलजेन का सुझाव दूंगा।

सच डेटाबेस स्वतंत्र कोड

पूर्ण इकाई प्रकार विरासत

Linq समर्थन

टाइप सूचियों और टाइप:

सुविधाओं here.

साइट से की पूर्ण सूची विचार

संग्रहित प्रक्रियाओं का समर्थन

लचीला संगामिति तंत्र

ललित सुक्ष्म प्रमाणीकरण फ्रेमवर्क

व्युत्पन्न तालिका समर्थन

+0

रिक - हम वर्तमान में LLBLGEN का उपयोग कर रहे हैं। हम अपने नए ऐप में अधिक यूनिट परीक्षणों को शामिल करने की कोशिश कर रहे हैं, और डेटाबेस को मारने के बिना कुछ कठिनाइयों को कर रहे हैं (हम एडाप्टर मॉडल का उपयोग करते हैं)। आप यूनिट टेस्टिंग एलएलबीएल से कैसे संपर्क करते हैं? –

+0

हाय @LuckyLindy मैं http://ayende.com/projects/rhino-mocks.aspx सुझाव है और इसके बजाय डेटाबेस सीधे का उपयोग करने का नकली वस्तुओं को बनाने, मुझे लगता है कि यह एक पूर्ण हो अतः लगभग सवाल आप एक योग्य कुछ पूछ सकता है कि के बाद से कर सकता है मेरा से बेहतर जवाब :) –

2

यह पर थोड़ा निर्भर करता है कि आप क्या चाहते:

  • आप अपने खुद के डोमेन कक्षाएं, बनाना चाहते हैं आप जो ओआरएम परिभाषित बेस क्लास या इंटरफ़ेस द्वारा कुछ से प्राप्त करने की आवश्यकता नहीं है, तो NHibernate पसंदीदा समाधान है।

  • क्या आप अपने डेटाबेस-मॉडल के आधार पर इकाई-वर्गों को स्वतः उत्पन्न करना चाहते हैं, तो आपको एलएलबीएलजेन के लिए जाना चाहिए।

+0

डेटाबेस डोमेन मिलेगी। हम अनिवार्य रूप से डेटा वेयरहाउस व्यवसाय में हैं और हमारे व्यापार का मूल डेटा लोड करना है, हमारे ग्राहकों द्वारा स्थापित कस्टम नियमों के आधार पर डेटा की तुलना करना और फिर हमारे ग्राहकों को रिपोर्टिंग प्रदान करना है। यह अपने जवाब यह है कि LLBLGen प्रो सबसे अच्छा काम करेगा से लग रहा है। – John

1

हम nHibernate का बहुत उपयोग करते हैं। अब तक तो सब ठीक है।

3

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

वर्तमान संस्करण लिंकक को अपने पारंपरिक पहुंच बुनियादी ढांचे के साथ समर्थन करता है। संस्करण 3 विकास में है, लेकिन शायद 2010 तक जारी नहीं किया जाएगा।

एलएलबीजेन आपके वर्तमान डेटाबेस स्कीमा को पढ़कर शुरू होता है जो एनबीबर्ननेट की तुलना में मैपिंग ऑब्जेक्ट करने के लिए डीबी के विकास में समय बचा सकता है।

ऐसी चीजें हैं जिन्हें मैं LlblGen के साथ बेहतर बनाना चाहता हूं, लेकिन मैं बहुत लंबे समय तक उपयोगकर्ता हूं और उनका समर्थन हराया नहीं जा सकता है।

+0

अच्छा सहायक टिप्पणी m4bwav - क्यों समझाओ? – redsquare

2

एलएलबीएलजीएन के लिए एक और वोट, इसके बिना नहीं रह सका!

0

साइनमफ्रेमवर्क में full LINQ Provider है, और यह एंटीटी-संचालित दृष्टिकोण पर आधारित है। दूसरी तरफ यह है कि यह सिर्फ नए विकास के लिए ठीक है (मौजूदा डेटाबेस के लिए नहीं)।

0

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

आरडीएमएस का उपयोग करने के लिए क्या किया जाता है? हम ओरेकल के साथ एलएलबीएलजेन प्रो का उपयोग कर रहे हैं, और यह बिना किसी समस्या के डेटाबेस विशिष्ट और सामान्य संचालन को अलग करता है। इसने Inner Platform Effect पूरी तरह से बचा है। (उदाहरण के लिए ओरेकल अनुक्रमों और एसक्यूएल सर्वर पहचान फ़ील्ड के बारे में सोचें। यह एलएलबीएलजेन प्रो के साथ कोई समस्या नहीं है।)

एलएलबीएलजेन प्रो एक बहुत व्यापक कोड जनरेटर है। यह डेटाबेस में ऑब्जेक्ट्स को डेटाबेस एक्सेस लेयर में एक प्रोजेक्ट के रूप में मानचित्र करता है जिसे आसानी से आपके समाधान में जोड़ा जा सकता है। इसका एक बहुत अच्छा लाभ है जो पहली नजर में नहीं हो सकता है: यदि संग्रहीत प्रक्रिया या यहां तक ​​कि कोई फ़ील्ड बदलता/हटा दिया जाता है, तो आप संकलन समय पर त्रुटि को नोटिस करेंगे, समय नहीं चलाएंगे। इसलिए, यदि आपके पास पहले से चलने वाला डेटाबेस है, तो LLBLGen Pro के साथ जाएं।

अगर आपको एक खींचें और ड्रॉप पुरुष हैं और आसानी से डेटा बाँध दृश्य स्टूडियो के लिए अपने डेटा स्रोत घटक जोड़ सकते हैं। कुछ लोगों को यह एएसपी.नेट परियोजनाओं के लिए उपयोगी लगता है।

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

तो, मेरा सुझाव है LLBLGen प्रो भले ही एन/हाइबरनेट अधिक उपयोगकर्ता हैं।

0

छोटी परियोजनाओं के लिए मैं Sooda थे, लेकिन उस के बारे में साल पहले हुआ था। अब केवल और निश्चित रूप से NHibernate

4

DataObjects.Net (जीपीएल + वाणिज्यिक) की जाँच करें।

+0

यह भी सुनिश्चित करें कि उपरोक्त पोस्ट किए गए लिंक स्वयं को कैसे संचालित करते हैं, इस पर प्रकाश डालने वाली कई चर्चाएं देखें। ब्लॉग आपके दोस्त हैं। – nathanchere

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