अपने प्रशिक्षुता के दौरान, मैंने कुछ छोटी परियोजनाओं के लिए NHibernate का उपयोग किया है जिन्हें मैंने ज्यादातर कोडित किया और अपने दम पर डिजाइन किया। अब, कुछ बड़ी परियोजना शुरू करने से पहले, इस बात पर चर्चा हुई कि डेटा एक्सेस को कैसे डिज़ाइन किया जाए और ORM परत का उपयोग किया जाए या नहीं। जैसा कि मैं अभी भी अपने प्रशिक्षुता में हूं और अभी भी खुद को उद्यम प्रोग्रामिंग में एक शुरुआत मानता हूं, मैंने वास्तव में मेरी राय में धक्का देने की कोशिश नहीं की, जो यह है कि डेटाबेस के लिए एक वस्तु संबंधपरक मैपर का उपयोग करके विकास को काफी कम कर सकते हैं। विकास टीम में अन्य कोडर मेरे मुकाबले बहुत अधिक अनुभवी हैं, इसलिए मुझे लगता है कि मैं वही करूंगा जो वे कहते हैं। :-)
हालाँकि, मैं NHibernate या इसी तरह की परियोजना का उपयोग नहीं करने के दो मुख्य कारणों को पूरी तरह से नहीं समझता:
- कोई बस SQL प्रश्नों के साथ अपने डेटा एक्सेस ऑब्जेक्ट का निर्माण कर सकता है और उन प्रश्नों को Microsoft SQL सर्वर प्रबंधन स्टूडियो से बाहर कर सकता है।
- एक ORM डीबग करना कठिन हो सकता है।
इसलिए, निश्चित रूप से मैं अपने डेटा एक्सेस लेयर का निर्माण बहुत सारे SELECTएस आदि के साथ कर सकता हूं , लेकिन यहां मुझे ऑटोमैटिक जॉन्स, आलसी-लोडिंग प्रॉक्सी क्लासेस और कम रखरखाव के प्रयास का फायदा मिलता है, अगर किसी टेबल को नया कॉलम या कॉलम मिल जाता है नाम दिया। (कई अद्यतन करना SELECT, INSERTऔर UPDATEक्वेरीज़ बनाम मैपिंग कॉन्फ़िगरेशन को अद्यतन करना और संभवतः व्यावसायिक वर्गों और डीटीओ को फिर से भरना।)
इसके अलावा, NHibernate का उपयोग करके आप अप्रत्याशित समस्याओं में भाग सकते हैं यदि आप रूपरेखा को अच्छी तरह से नहीं जानते हैं। उदाहरण के लिए, Table.hbm.xml पर भरोसा करना, जहां आप एक स्ट्रिंग की लंबाई को स्वचालित रूप से मान्य किया जा सकता है। हालाँकि, मैं "साधारण" SqlConnection क्वेरी आधारित डेटा एक्सेस लेयर में समान बग्स की कल्पना भी कर सकता हूँ।
अंत में, क्या उन तर्कों का उल्लेख किया गया है जो वास्तव में एक गैर-तुच्छ डेटाबेस आधारित उद्यम अनुप्रयोग के लिए ओआरएम का उपयोग नहीं करने का एक अच्छा कारण है? वहाँ शायद अन्य तर्क वे / मैं याद किया हो सकता है?
(मुझे शायद यह जोड़ना चाहिए कि मुझे लगता है कि यह पहले "बड़े" .NET / C # आधारित अनुप्रयोग की तरह है जिसे टीमवर्क की आवश्यकता होगी। अच्छा अभ्यास, जिसे स्टैक ओवरफ्लो पर बहुत सामान्य के रूप में देखा जाता है, जैसे कि यूनिट परीक्षण या निरंतर एकीकरण, गैर हैं। -अभी तक यहां मौजूद है।)