2008-09-17 7 views
9

This answer says कि Linq NHibernate, कैसल से डेवलपर्स की एक अलग समूह पर लक्षित है, आदिNHibernate, Castle, Linq के बीच मतभेद - उनका उद्देश्य किसके लिए है?

बल्कि सी # करने के लिए नए होने के नाते, कोई बात नहीं सब डीबी सामान इसके आसपास:

  • वहाँ अन्य प्रमुख हैं, एक बेहतर अवधि की कमी के लिए, एनएचबीर्नेट, कैसल, लिंक से एसक्यूएल रैपर?
  • उनके बीच अंतर क्या हैं?
  • वे किस तरह के डेवलपर्स या विकास का लक्ष्य रखते हैं?

-Adam

उत्तर

17

जब आप कैसल कहना मुझे लगता है आप कैसल सक्रिय रिकॉर्ड मतलब है?

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

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

एक OR/M आवश्यक नहीं है 'जाने का एक सही तरीका'। यह आपके पर्यावरण पर निर्भर करता है, आपके विकास और आपकी टीम का आवेदन करता है।

आप SubSonic को भी देखना चाहते हैं। यह सक्रिय रिकॉर्ड के लिए बहुत अच्छा है लेकिन यह प्रोजेक्ट के लिए नहीं है जहां आप मुख्य रूप से अपने डोमेन पर ध्यान केंद्रित करना चाहते हैं। परियोजना के आधार पर, मैं आमतौर पर या तो NHibernate या सबसोनिक

1

LINQ (कैसल सक्रिय रिकॉर्ड के साथ) को बिल्कुल नए सी # सुविधाओं का एक सेट है: विस्तार के तरीकों, लैम्ब्डा अभिव्यक्ति, वस्तु initializers, अनाम प्रकार, आदि

दूसरी ओर "LINQ से SQL" कुछ ऐसा है जो आप अन्य SQL wrappers की तुलना कर सकते हैं।

1

एनएचबेर्नेट और लिंक टू एसक्यूएल ऑब्जेक्ट/रिलेशनल मैपर हैं जो ऑब्जेक्ट्स और आरडीबीएमएस के बीच पाए गए बाधा मेल खाने से निपटने में आसानी लाने के लिए डिज़ाइन किए गए हैं। यदि आप एक टेस्टेबल, लगातार अज्ञानी आवेदन प्राप्त करना चाहते हैं, तो NHibernate जाने का रास्ता है। मैं हमेशा लिंक से एसक्यूएल पर एनएचबेर्नेट की सिफारिश करता हूं। दोनों टूल्स का उद्देश्य डेटा एक्सेस से निपटने को दूर करना है। आपको डेटा एक्सेस कोड को कितनी बार लिखना होगा?

कैसल एक अनुप्रयोग ढांचा और नियंत्रण कंटेनर का उलटा है और डेटा पहुंच प्रदान नहीं करता है। यह एनएचबर्ननेट का उपयोग करने के लिए सुविधाओं की आपूर्ति करता है, जो कम घर्षण के लिए बनाता है, और यह एनएचबीर्नेट का उपयोग करके एक्ट्यूव रिकॉर्ड पैटर्न का एक कार्यान्वयन भी प्रदान करता है।

1

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