2010-07-03 12 views
11

का उपयोग करते हैं, मैं सोच रहा हूं कि आपके द्वारा उपयोग किए जाने वाले ओआरएम फ्रेमवर्क की सबसे अच्छी सुविधा क्या है और आप सबसे अधिक सुविधाओं का उपयोग करके खुद को क्या ढूंढते हैं?क्या आप ओआरएम फ्रेमवर्क का सबसे अच्छा फीचर

आपके द्वारा उपयोग किए जाने वाले ढांचे का कारण क्या है?

मैं बस उनकी तुलना करने की कोशिश कर रहा हूं और सोच रहा हूं कि क्या कोई अन्य पर लाभ प्रदान करता है। (यह सब बहुत अच्छी तरह से गुगल रहा है लेकिन आप पहले हाथ उपयोगकर्ता अनुभवों को हरा नहीं सकते हैं!)

विशेष रूप से मैं एक नेट फ्रेमवर्क की तलाश में हूं लेकिन अभी भी अन्य लैंगुग में ओआरएम/सुविधाओं के बारे में उत्सुक हूं।

अग्रिम धन्यवाद!

उत्तर

4

हम हाल ही में एंटीटी फ्रेमवर्क और एनएचबेर्नेट के बीच निर्णय लेने की प्रक्रिया के माध्यम से गए। यद्यपि मेरी शुरुआती प्रवृत्ति एनएचबीर्नेट की ओर झुकना था, बशर्ते कि माइक्रोसॉफ्ट का वास्तव में एक तकनीक के साथ चिपकने का ट्रैक रिकॉर्ड पिछले कुछ वर्षों में तारकीय से भी कम रहा है (उदा: लिंक टू एसक्यूएल, संस्करण 1 पर मृत, या हालिया उदाहरण के लिए एमएस ने एएसपी.नेट अजाक्स लाइब्रेरी क्लाइंट टेम्पलेट्स को हटाने का फैसला किया था, this देखें), हमने अभी भी एंटिटी फ्रेमवर्क के साथ जाने का फैसला किया है।

हम इसे निम्नलिखित कारणों के लिए चुना है:

  1. हम एक माइक्रोसॉफ्ट केवल दुकान है, तो यह अपने मौजूदा उपकरण सेट के साथ अच्छी तरह से एकीकृत।
  2. हम तथ्य यह है कि यह दृश्य स्टूडियो 2010
  3. हम एक इकाई के डेटा मॉडल में एक DB स्कीमा के इंजीनियर को बदलने के लिए सक्षम होने की क्षमता पसंद आया इसके साथ निर्मित मॉडलिंग क्षमता थी (यह वास्तव में बहुत अच्छा था) को पसंद किया ।
  4. हम तथ्य यह है कि सब कुछ हम की जरूरत काफी बॉक्स से बाहर उपलब्ध था, NHibernate के साथ जहां हम दृश्य मॉडलिंग करने के लिए विभिन्न उपकरणों का उपयोग करने के लिए होता है के विपरीत, मानचित्रण फ़ाइलें समय पर से निपटने के लिए एक दर्द हो सकता है पसंद आया) और यह विजुअल स्टूडियो के साथ अच्छी तरह से एकीकृत नहीं किया गया था।

इकाई फ्रेमवर्क के साथ जाना या नहीं जाना सही विकल्प देखा जाना बाकी था। माइक्रोसॉफ्ट एक और "लिंक टू एसक्यूएल" खींच सकता है और कहता है, "अरे, हम एंटिटी फ्रेमवर्क फेंक रहे हैं, इसके बारे में खेद है, आपको एनएचबीर्नेट के साथ जाना चाहिए था"। लेकिन हमने फैसला किया कि चूंकि यह 2.0 पर वीएस 2010 के साथ है, कम से कम एक अच्छा मौका है कि यह कुछ सालों से आसपास होगा।

तो भले ही हम NHibernate के सिद्ध ट्रैक रिकॉर्ड बहुत इकाई की रूपरेखा से बेहतर पसंद है, हम कारणों मैं उपर्युक्त के लिए इकाई की रूपरेखा के साथ चला गया।

मुझे लगता है कि तुम सिर्फ, पेशेवरों और प्रत्येक उपकरण की विपक्ष को देखने के सभी विकल्पों की जांच, और सबसे अच्छा निर्णय आप कर सकते हैं बनाने की कोशिश करने के लिए है।

+0

यह हमेशा संभव है, मुझे लगता है कि यह बहुत संभावना नहीं है कि माइक्रोसॉफ्ट एफई पर प्लग खींच लेंगे है (भीतर वर्षों के)। वे ईएफ में भारी निवेश कर रहे हैं। – Steven

+0

@ स्टेवन - समय बताएगा :), लेकिन मैं सहमत हूं और वास्तव में आशा करता हूं कि हम दोनों सही हैं। – dcp

+0

एनबीबेर्नेट का उपयोग डीबी स्कीमा रिवर्स इंजीनियरिंग परिदृश्य में किया जा सकता है। –

3

मैं अपाचे द्वारा empire-db का उपयोग करता हूं।

मुख्य कारण यह है कि मैं डेटाबेस योजनाओं को परिभाषित करने के लिए एक्सएमएल या एनोटेशन से छुटकारा पाता हूं। मैं वास्तव में xml विन्यास फाइलों के ट्रिलियन से निपटने के लिए कॉन्फ़िगर करने के लिए कोडिंग से जटिलता को स्थानांतरित करने से नफरत करता हूं और यहां तक ​​कि बदतर - एनोटेशन का उपयोग करके वितरित विन्यास।

+0

मेरा मानना ​​है कि फ्लुएंट एनएचबर्ननेट या कोड प्रथम इकाई फ्रेमवर्क 4, उदाहरण के लिए, .NET समतुल्य होगा। –

4

मैं सोच रहा हूं कि आपके द्वारा उपयोग किए जाने वाले ओआरएम फ्रेमवर्क की सबसे अच्छी सुविधा क्या है और आप सबसे अधिक सुविधाओं का उपयोग करके खुद को क्या ढूंढते हैं?

मैंने अपना स्वयं का ओआरएम लिखा। सुविधाएँ शामिल हैं:

  • मशीन-उत्पन्न प्रत्येक तालिका के लिए कोड, सार तालिका परिभाषाओं

  • एक पुस्तकालय/ढांचा है, जो तालिका परिभाषा और रन-टाइम डेटा पर कार्य करता है, आदेश को लागू करने में के आधार पर जैसे ueful कार्य:

    • बनाएं तालिकाओं (या अद्यतन तालिका परिभाषाओं)
    • CRUD
    • उत्प्रेरित संग्रहीत procedu रेस जो इतिहास रिकॉर्ड बनाने के लिए जब एक तालिका की सामग्री भी एसक्यूएल डेटा रिकॉर्ड करने के लिए पेड़ की तरह डेटा (नेस्टेड सेट का उपयोग कर)
    • बदलने आवेदन प्रकार (सी # वर्ग उदाहरण) के लिए बदल रहे हैं
    • समर्थन और इसके विपरीत

आपके द्वारा उपयोग किए जाने वाले ढांचे को चुनने का कारण क्या है?

मैं क्योंकि मुझे डर था मैं अभी या बाद में दिखाई दे सकता है कि यह कुछ विशेषता यह है कि मैं चाहता था लागू नहीं समझे, एक मौजूदा ORM उपयोग करने के लिए नहीं करना चाहता था, और मैं तो यह मुश्किल जोड़ने के लिए पाते हैं कि वह सुविधा

मैं एक ओआरएम का उपयोग करना चाहता था, क्योंकि मैं प्रत्येक व्यक्तिगत तालिका के लिए कोड लिखना और बनाए रखना नहीं चाहता था।

+3

http://staynalive.com/files/2010/03/wheel.jpeg –

3

मैं Object Data Blocks लिखा निम्नलिखित बकाया सुविधाओं

  • .net कक्षाओं का उपयोग करता है डाटाबेस स्कीमा का वर्णन करने की पेशकश करने - कोई मानचित्रण फ़ाइलें
  • सभी db पहुँच
  • दोनों वर्गों और प्रश्नों के समर्थन के लिए procs संग्रहीत बनाता है विरासत
  • स्वचालित तैनाती या एसक्यूएल स्क्रिप्ट पीढ़ी के लिए डीबीए के

इसका सबसे अच्छा ऑब्जेक्ट दृढ़ता शैली ओआरएम के रूप में समझाया गया है।

2

मैंने अपना ओआरएम लिखा है क्योंकि यह डिवाइस पर .NET कॉम्पैक्ट फ्रेमवर्क के साथ-साथ पूर्ण .NET Framework के साथ पुन: संकलन के बिना काम करता है।

आपने फ्रेमवर्क का उपयोग करने का कारण क्या चुना है?

  • यह वर्ग से की आवश्यकता नहीं है निर्दिष्ट आधार प्रकार से विरासत में मिली या इंटरफेस के किसी भी प्रकार को लागू किया जाना है।

  • यह नेस्टेड लेनदेन स्कॉप्स का समर्थन करता है जो .NET कॉम्पैक्ट फ्रेमवर्क में प्रस्तुत नहीं किए जाते हैं।

  • यह मुझे डोमेन मॉडल के साथ डेटा एक्सेस लेयर बनाने की अनुमति देता है, दोनों डिवाइस और डेस्कटॉप या वेब एप्लिकेशन पर क्रॉस-संकलन या डुप्लिकेशन के बिना उपयोग किया जा सकता है।

2

मैं सोच रहा हूँ क्या सर्वश्रेष्ठ फीचर (रों) ORM ढांचे आपके द्वारा उपयोग की और क्या सुविधाओं आप अपने आप को खोजने के सबसे का उपयोग कर?

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

आपने फ्रेमवर्क का उपयोग करने का कारण क्या चुना है?

इस विषय पर अन्य प्रश्न और उत्तर के बहुत सारे हैं:

NHibernate, Entity Framework, active records or linq2sql

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