7

द्वारा एंटरप्राइज़ लाइब्रेरी डेटा एक्सेस ब्लॉक को बदलने पर सलाह कुछ साल पहले, हमने एक बड़ा एएसपी.Net एप्लिकेशन (सी #/.NET 3.5) विकसित किया था जिसे "डेटाबेस इंजन" गैर-निर्भर होना था (जिसका अर्थ है कि यह एप्लिकेशन या तो SQL सर्वर, ओरेकल, MySQL ... डीबी इंजन के रूप में उपयोग करें)। इसके लिए, हमने एंटरप्राइज़ लाइब्रेरी डेटा एक्सेस ब्लॉक 4.1 का उपयोग किया।एंटीटी फ्रेमवर्क

लेकिन अब, जैसा कि हम "प्रदर्शन/स्केलेबिलिटी सुधार" चरण पर हैं, हम प्रौद्योगिकी अपग्रेड या हमारे आवेदन नींव के पुन: डिज़ाइन के बारे में सोच रहे हैं।

तो, सवाल यह है: क्या इकाई फ्रेमवर्क में जाने के लिए कोई फायदा है? क्या ईएफ हमारे गैर-निर्भर "डेटाबेस इंजन" मानदंडों को बनाए रखेगा? या क्या हमें अपना एंटीलिब डीएएबी कार्यान्वयन रखना चाहिए लेकिन नवीनतम संस्करण (5.0) में अपग्रेड करना चाहिए?

धन्यवाद

+1

यदि एंटरप्राइज़ लाइब्रेरी डेटा एक्सेस ब्लॉक आपके लिए बहुत अच्छा काम करता है, तो क्यों परेशान हो रहा है। एमएस और समुदाय से अधिकांश इकाई फ्रेमवर्क उदाहरण एसक्यूएल सर्वर पर आधारित हैं, मुझे यकीन नहीं है कि अन्य ढांचे कितने मजबूत हैं। –

उत्तर

0

Oracle (Devart dotConnect for Oracle, DataDirect) और MySQL (Devart dotConnect for MySQL, MySQL Connector /NET) के लिए एफई प्रदाताओं की एक संख्या है, और Microsoft SQL सर्वर के लिए एक इकाई की रूपरेखा प्रदाता प्रदान करता है, इसलिए वहाँ के साथ कोई समस्या नहीं होनी चाहिए डेटाबेस स्वतंत्रता।

+0

मैं उत्तर की सराहना करता हूं लेकिन एफएक्यू से: [आपको अपने उत्तरों में अपने संबद्धता का खुलासा करना होगा] (http://stackoverflow.com/faq#promotion)। –

12

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

दूसरी तरफ, इकाई फ्रेमवर्क डेटा मॉडलिंग और ऑब्जेक्ट-रिलेशनल मैपिंग के बारे में है। यह डीएएबी की तुलना में उच्च स्तर पर काम करता है; आप डेटा कोड या डेटा रीडर के संदर्भ में नहीं, अपने ऑब्जेक्ट्स के संदर्भ में अपना कोड लिखते हैं। यह डेटाबेस से ऑब्जेक्ट्स के "भौतिककरण" को स्वचालित करता है, इसलिए आपको उस कोड को लिखने की आवश्यकता नहीं है, उनके बीच संबंध बनाए रखता है, आदि। यह डेटाबेस के साथ काम करने का एक और अधिक पूर्ण रूप से प्रदर्शित, लेकिन काफी अलग है।

आपको यह विचार करने की आवश्यकता है कि क्या आप पहले डेटा एक्सेस की ओआरएम शैली में जा रहे हैं। वहां से आप तय कर सकते हैं कि .NET स्थान में ईएफ या कई अन्य ओआरएम में से एक आपकी आवश्यकताओं को सर्वोत्तम तरीके से अनुरूप करेगा या नहीं।

ईएफ के लिए बहुत सारे प्रदाता उपलब्ध हैं (सूची के लिए देवता के उत्तर देखें) लेकिन वे सभी बाहरी/अतिरिक्त लागत हैं। बॉक्स में केवल एक एसक्यूएल सर्वर के लिए है। हालांकि मैं जोड़ दूंगा कि डीएएबी वास्तव में "डेटाबेस स्वतंत्रता" चीज़ को पूरी तरह से कवर नहीं करता है - अगर आपके पास अपने डीएएबी कॉल में कोई वास्तविक एसक्यूएल है, तो यह एसक्यूएल बोलियों में अंतर के साथ आपकी मदद नहीं करता है। ईएफ होगा।

0

क्या एंटिटी फ्रेमवर्क में जाने के लिए कोई फायदा है?

आम तौर पर आपके डेटा एक्सेस काम को प्राप्त करने के लिए तेज़ी से तेज़ी से। लिंक वाक्यविन्यास महान है और एसक्यूएल पूछ सकता है।

क्या ईएफ हमारे गैर-निर्भर "डेटाबेस इंजन" मानदंडों को बनाए रखेगा?

कुछ 3rd party समर्थन के बिना नहीं। हालांकि मैंने किसी भी डेवलपर्स में भाग नहीं लिया है, जिसने वास्तव में एक कार्यशील अनुप्रयोग लिया और एसक्यूएल से या डेटाबेस डेटाबेस को स्विच किया।

या क्या हमें अपना एंटीलिब डीएएबी कार्यान्वयन रखना चाहिए, लेकिन नवीनतम संस्करण (5.0) में अपग्रेड करना चाहिए?

डीएएबी कमाल है !! मैंने इसके लिए एक कोड generator लिखा था .. बहुत ही पीओआर रिलेशनल स्कीमा के साथ बड़े डेटाबेस के लिए ईएफ को लागू करने के बाद भी मुझे पता चला कि ईएफ 'विज़ार्ड' ने 110 एसक्यूएल टेबल (लगभग) के लिए 3 मिनट अपडेट करने का रास्ता तय किया है। यह बहुत धीमी थी और मैं वापस डेब गया ... मैं कहूंगा कि ईएफ हालांकि आगे बढ़ने का तरीका है। मैं इसे संग्रहीत प्रक्रियाओं के साथ उपयोग करने का प्रयास करता हूं और performance के लिए कोई ट्रैकिंग नहीं करता हूं। ईएफ के बारे में जागरूक होने वाली दूसरी बात विवादों को विलय कर रही है जब दो लोग अलग-अलग प्रवेश करते हैं। यह भ्रमित हो सकता है।

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