वर्तमान में हम ऐसी स्थिति में हैं जहाँ हमारे पास आउट-ऑफ-द-बॉक्स ऑब्जेक्ट-रिलेशनल मैपर का उपयोग करने या अपना स्वयं का रोल करने के बीच एक विकल्प है
हमारे पास एक विरासत एप्लिकेशन (ASP.NET + SQL सर्वर) है जहां डेटा-लेयर और बिजनेस-लेयर दुर्भाग्य से एक साथ मैश किए हुए हैं। डेटा एक्सेस के संदर्भ में सिस्टम विशेष रूप से जटिल नहीं है। यह अंतर-संबंधित तालिकाओं के एक बड़े समूह (35-40) से डेटा पढ़ता है, इसे मेमोरी में हेरफेर करता है और इसे सारांश प्रारूप में कुछ अन्य तालिकाओं में वापस बचाता है। अब हमारे पास कुछ रीफैक्टरिंग के लिए अवसर हैं और हमारे डेटा एक्सेस को अलग और ठीक से उपयोग करने के लिए उम्मीदवार प्रौद्योगिकियों को देख रहे हैं।
हम जो भी तकनीक तय करेंगे, हम उसे पसंद करेंगे:
- हमारे डोमेन मॉडल में POCO ऑब्जेक्ट हैं जो दृढ़ता इग्नोरेंट हैं
- हमारे डोमेन मॉडल ऑब्जेक्ट को अंतर्निहित डेटा स्रोत के साथ मॉकडाउन करने के लिए यूनिट टेस्ट की अनुमति देने के लिए एक अमूर्त परत है
वहाँ स्पष्ट रूप से इस पर बहुत सारे सामान हैं पैटर्न और फ्रेमवर्क आदि के संदर्भ में।
व्यक्तिगत रूप से मैं ADO.NET यूनिट टेस्टेबल रिपोजिटरी जनरेटर / POCO इकाई जनरेटर के साथ संयोजन के रूप में EF का उपयोग करने के लिए जोर दे रहा हूं । यह हमारी सभी आवश्यकताओं को पूरा करता है, आसानी से रेपो / यूनिटऑफवर्क्स पैटर्न के अंदर बांधा जा सकता है और हमारा डीबी स्ट्रक्चर यथोचित रूप से परिपक्व है (पहले से ही एक रिफ्लेक्टर से गुजर रहा है) जैसे कि हम मॉडल में दैनिक परिवर्तन नहीं करेंगे।
हालाँकि समूह के अन्य लोग हमारे DAL को पूरी तरह से खरोंचने का काम कर रहे हैं। (कस्टम DataMappers, DataContexts, रिपोजिटरी, इंटरफेसेस हर जगह, डिपेंडेंसी इंजेक्शन कंक्रीट ऑब्जेक्ट बनाने के लिए ओवरक्लिल करता है, कस्टम LINQ-to-Under क्वेरी क्वेरी ट्रांसलेशन, कस्टम कैशिंग इंप्लीमेंटेशन, कस्टम फेटिशियल इंप्लीमेंटेशन ...) लिस्ट चलती है और फ्रैंक होने के लिए स्ट्राइक है। मैं पागलपन के रूप में।
इस बारे में कुछ तर्क दिए गए हैं कि "कम से कम हम अपने कोड के नियंत्रण में रहेंगे" या "ओह मैंने पिछले प्रोजेक्ट में L2S / EF का उपयोग किया है और यह सिरदर्द के अलावा कुछ भी नहीं था"। (हालांकि मैंने पहले दोनों प्रोडक्शन में उपयोग किया है और पाया है कि कोई भी मुद्दा कुछ और दूर और बहुत प्रबंधनीय है)
तो अपने किसी भी uber- अनुभवी देवों / वास्तुकारों के पास कोई भी ज्ञान का शब्द है जो मुझे इस उत्पाद को दूर करने में मदद कर सकता है जो मुझे ऐसा लगता है जैसे यह एक पूर्ण आपदा होने जा रहा है। मैं मदद नहीं कर सकता, लेकिन यह सोचता हूं कि ईएफ मुद्दों को चकमा देने से प्राप्त किसी भी लाभ को पहिया को फिर से आविष्कार करने के प्रयास से खो दिया जाएगा।