c# - Whats कैसल सक्रिय रिकॉर्ड बनाम सीधे NHibernate के पेशेवरों और विपक्ष?




castle-activerecord (2)

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

दूसरी बार मैंने NHibernate का इस्तेमाल किया, मैं मैपिंग फाइलों और कक्षाओं को सिर्फ मेरे डाटाबेस में देखने के लिए ही अपनी जेब का इस्तेमाल करता था। कि खुद को बहुत समय बचाया, और मुझे (एक बार फिर) कैसल सक्रिय रिकॉर्ड के बारे में चिंता नहीं करने की अनुमति दी

वास्तविकता में, आपके ज्यादातर समय कस्टम क्वेरी बनाने में खर्च किए जा रहे हैं, और कैसल एक्टिव रिकार्ड जरूरी इसके साथ मदद नहीं करेगा - यदि आप NHibernate के साथ मेरी जेनरेशन का उपयोग कर रहे थे, तो आप अपने द्वारा किए गए अधिकांश कार्य को छोड़कर वैसे भी करने की ज़रूरत है

संपादित करें: मैं या तो मेरे जेनरेशन या NHibernate के लिए एक जयजयकार की तरह दिखना नहीं चाहता मैं सिर्फ उपकरण का उपयोग करता हूं जो मुझे अपने काम को जल्दी और आसानी से प्राप्त करने की अनुमति देता है कम समय में मुझे डाटा एक्सेस कोड लिखना खर्च करना होगा, बेहतर होगा इसका मतलब यह नहीं है कि मैं ऐसा नहीं कर सकता - लेकिन हर बार जब आप एक नया आवेदन लिखते हैं, तब पहिया की फिर से खोज में थोड़ा सा मतलब होता है एसक्यूएल प्रश्नों और संग्रहित प्रक्रियाओं को जहां आवश्यक है, और नहीं कहां और कहाँ लिखें यदि आप सीआरयूडी संचालन कर रहे हैं, तो एक ओआरएम जाने का रास्ता है।

# 2 संपादित करें: कैसल एक्टिव रिकॉर्ड्स मेज़ पर अधिक ला सकता है जो मुझे पता है - मुझे उनकी वेबसाइट पर जो कुछ पता है उससे ज्यादा नहीं पता है, लेकिन यदि यह तालिका में अधिक लाए, तो यह संभावित अपनाने वालों को सक्षम करने में मदद करेगा आसानी से देखना है कि उनकी साइट पर।

यह मानते हुए कि मैपिंग फाइलों को लिखना एक बड़ा मुद्दा नहीं है .... या गुणों के साथ अपने डोमेन ऑब्जेक्ट्स को प्रदूषित करना एक बड़ा मुद्दा नहीं है ....

पक्ष और विपक्ष क्या होते हैं?

क्या कोई मौलिक तकनीकी मुद्दे हैं? क्या लोगों की पसंद को प्रभावित करने की प्रवृत्ति है?

पूरी तरह से नहीं यकीन है कि सभी tradeoffs क्या हैं


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

मेरी राय समर्थक और विपक्ष में हैं:

पेशेवरों

  • आपको हाथ में समस्या पर ध्यान केंद्रित करने देता है, क्योंकि आपके लिए कई निर्णय किए गए हैं
  • परिपक्व, बहुत उपयोगी अवसंरचना वर्ग (रिपॉजिटरी, वैधीकरण आदि) शामिल हैं
  • एआर एट्रिब्यूट लिखना XML या NHibernate लिखने से तेज़ हैं। मैपिंग। गुण आईएमएचओ
  • अच्छा दस्तावेज और समुदाय सहायता
  • इसके साथ अन्य NHibernate सुविधाओं का उपयोग करना काफी आसान है
  • एक सुरक्षित शुरुआत आपके पास एक आउट-आउट क्लॉज है यदि आप एआर के साथ दीवारों को मारते हैं, तो आप धीरे-धीरे पूर्ववर्ती NHibernate समाधान में वापस आ सकते हैं।
  • डोमेन-प्रथम विकास के लिए महान (डीबी उत्पन्न करना)
  • आप ActiveRecord पैटर्न के लाभ और कमियां देख सकते हैं

विपक्ष

  • आप का नाटक नहीं कर सकते हैं NHibernate वहाँ नहीं है - आपको अभी भी यह जानने की जरूरत है
  • यदि आपके पास पहले से ही काम करने के लिए एक विरासत डेटाबेस है तो ऐसा उत्पादक नहीं हो सकता है
  • पारदर्शी दृढ़ता नहीं।
  • इन-निर्मित मैपिंग व्यापक हैं, लेकिन कुछ परियोजनाओं के लिए आपको स्थानों पर NHibernate मैपिंग पर वापस लौटने की आवश्यकता हो सकती है मुझे इस समस्या नहीं हुई है, लेकिन सिर्फ एक सोचा था।

सामान्य तौर पर, मैं वास्तव में ActiveRecord पसंद करता हूं और यह हमेशा एक समय बचाने वाला होता है, मुख्यतः क्योंकि मुझे लगता है कि पुस्तकालय में पकाया जाने वाले निर्णयों और टूल को खुशी से स्वीकार करते हैं , और बाद में इस समस्या पर ध्यान केंद्रित करने में और अधिक समय व्यतीत करते हैं।

मैं इसे कुछ परियोजनाओं पर कोशिश करूँगा और देखूँगा कि आप क्या सोचते हैं।





castle-activerecord