2008-09-18 13 views
17

के लिए लाइटवेट विकल्प सभी निर्भरताओं के कारण एनएचबर्ननेट वास्तव में हमारे पर्यावरण के लिए उपयुक्त नहीं है। (कैसल, log4net आदि)NHibernate

क्या कोई अच्छा हल्का विकल्प है?

सरल फ़ाइल आधारित डेटाबेस जैसे एक्सेस/SQLite/VistaDB के लिए समर्थन आवश्यक है।

आदर्श रूप से, एक ऐसी असेंबली में निहित कुछ जो केवल .NET असेंबली का संदर्भ देता है। अगर इसे केवल .NET Framework 2.0 या 3.0 की आवश्यकता है जो बोनस है।

उत्तर

2

आम तौर पर, आपके डेटाबेस बैकएंड के लिए .NET के साथ काम करने के लिए, आपको इसके लिए ADO.Net प्रदाता की आवश्यकता है।

एमएस एक्सेस (जेट) के लिए, प्रदाता को .NET के साथ भेज दिया जाता है। SQLite के लिए, एक आत्मनिर्भर ADO.Net प्रदाता है।

डेटा का उपयोग परत lib का सवाल है, आप ADO.Net पर कुछ अमूर्त चाहते हैं:

सभी उन काम से ADOTemplate अच्छी तरह से ढांचा 2.0 और ऊपर के साथ शुरू।

असल में, आप चुनते (और विकल्प की एक बहुत कुछ नहीं है)

8

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

एनएचबर्ननेट की निर्भरताओं के नापसंद होने के कारण ऐसा लगता है कि आपको लॉगिंग फ्रेमवर्क या किसी भी महल प्रोजेक्ट पहलुओं यानी आईओसी, मोनोरेल इत्यादि की आवश्यकता नहीं है। क्या आपने शायद न्यूनतम एनएचबीरनेट आवश्यकताओं को ले लिया है (लॉग 4नेट और आईसी संग्रह मैं मानता हूं, और महल परियोजना से गतिशील प्रॉक्सी?) और उन्हें एक एकल असेंबली में मजबूत करने के लिए आईएलएमर्ज चला रहा है - थोड़ा सा झुकाव ले सकता है, लेकिन यह बहुत कठिन नहीं है - या वैकल्पिक रूप से आप खींच सकते हैं इन परियोजनाओं में से प्रत्येक के लिए स्रोत कोड NHBernate के कस्टम निर्माण में आपके संगठन के लिए बनाए रखा है जो आपके प्रोजेक्ट/संगठन द्वारा आवश्यक सुविधाओं को ट्रिम करता है - यह उतना कठिन/अजीब नहीं है जितना लगता है और मैंने इन पंक्तियों के साथ कुछ किया है एक परियोजना के लिए जहां हम एक ओआरएम का लाभ उठाना चाहते थे, लेकिन वितरित एफ के आकार को कम करने की आवश्यकता थी Iles/संस्थापक।

इसके अलावा - क्या आप शायद यह समझाने में सक्षम हैं कि आपको क्या लगता है कि एक निबर्ननेट आधारित समाधान के बारे में "भारी" है ... मेरे अनुभव में कुछ की तुलना में इसका एक हल्का हल्का ओआरएम ढांचा है।

2

कुछ विकल्प:
- ActiveRecord - यह पृष्ठभूमि में nhibernate.dll का उपयोग करता है, लेकिन कॉन्फ़िगरेशन गुणों के माध्यम से किया जाता है।यह nhibernate के लाइट संस्करण की तरह है
- Subsonic
- CoolStorage.NET - मैंने इसे छोटी परियोजनाओं के साथ बहुत उपयोग किया। डीबीएस

0

LINQ से SQL के लिए अच्छी तरह से काम करता है यदि आप इसे ठीक से उपयोग करेंगे तो "हेव" ओआरएम सिस्टम के लिए LINQ से SQL विकल्प अच्छा विकल्प हो सकता है।

+3

एसक्यूएल को LINQ केवल एसक्यूएल सर्वर का समर्थन करता है - पोस्टर में कहा गया है कि फाइल आधारित डीबीएस के लिए समर्थन महत्वपूर्ण है। एसक्यूएल को –

+0

LINQ फ़ाइल आधारित डेटाबेस का समर्थन करता है - Microsoft SQL सर्वर कॉम्पैक्ट, सबूत: http://pietschsoft.com/post/2009/01/Using-LINQ-to-SQL-with-SQL-Server-Compact-Edition.aspx – too

1

यहाँ विकल्पों की big list है, लोगों को मैं सलाह देते हैं:

  • Coolstorage
  • Sooda
  • ODX
  • Lightspeed

उन (8 वस्तुओं या उससे कम के लिए मुफ्त) 4 सबसे हल्के हैं। Subsonic, ActiveRecord और अन्य बड़े सिस्टम के लिए लक्षित हैं। वे छोटे सिस्टम पर ठीक काम करते हैं लेकिन (ActiveRecord के लिए कम से कम) निर्भरता की एक बड़ी सूची और एक छोटी प्रणाली के लिए ओवरकिल के साथ आते हैं। मैं लाइटस्पीड के साथ जाऊंगा और कहूंगा कि 8 ऑब्जेक्ट्स के तहत कुछ भी एक छोटी सी प्रणाली है, और केवल एनएचबीर्नेट का उपयोग कर रही है क्योंकि इसे व्यापक रूप से अपनाया जाता है स्केलिंग के लिए अच्छा है लेकिन अल्प अवधि में कोई मतलब नहीं है - और ओआरएम और आपके उपभोक्ताओं के बीच एक परत होने पर काम कर सकता है वैसे भी इसके आसपास।

+0

यही कारण है कि लिंक समाप्त हो गया है, नए स्थान http://shrinkrays.net/articles/a-look-at-net-object-relational-mapper-orms.aspx है –

+0

यूआरएल –

18

बड़े पैमाने पर - https://github.com/robconery/massive

या

PetaPoco - https://github.com/toptensoftware/petapoco

दोनों एक एकल .cs क्या GAC में छोड़कर कोई निर्भरता के साथ फाइल कर रहे हैं।

+4

Simple.Data एक नज़र भी लायक हो सकता है अपडेट किया गया। सादगी एक खो कला रूप है - – asgerhallas

+1

किसी भी ORM फ़ाइल – nawfal

7

इस सूची में जोड़ा जा रहा है (पूर्ण प्रकटीकरण, PetaPoco कुछ मैंने लिखा है), तो आप भी Dapper पर एक नज़र (के लिए लिखा और StackOverflow से ही प्रयोग किया जाता) हो सकता था।

+0

बहुत अच्छा पुस्तकालय एक भी .cs में बनाया जा सकता है! –

0

यदि आपको पूरी तरह से कार्यात्मक ओआरएम की आवश्यकता नहीं है और केवल ADO.NET पर तेज़ डेटाबेस स्वतंत्र डेटा परत की आवश्यकता है तो ओपन-सोर्स NI.Data library (V2) देखें। यह बहुत हल्के (सिर्फ एक छोटे से विधानसभा, कोई अन्य निर्भरता) है सभी मानक डेटा परत बुनियादी सुविधाओं को प्रदान करता है: "किताबें (रेटिंग =:

  • क्वेरी अमूर्त और पार्सर अपने स्ट्रिंग प्रतिनिधित्व के लिए 'relex' कहा जाता है (यह की तरह लग रहा 5) [शीर्षक, id] "- करने के लिए Linq करने वाली एसक्यूएल और भाव जटिल डीबी वाक्य रचना निर्भर एसक्यूएल encapsulating के लिए मक्खी पर बना जा सकता है)
  • 'दृश्य' अवधारणा बहुत अच्छा विकल्प प्रश्नों
  • डेटा चलाता है
  • चुनिंदा/अद्यतन/हटाए गए प्रश्नों के लिए डेटा लेयर अनुमतियां
  • बी से बैल एमएस एसक्यूएल, एसक्यूएलआईटी, माईएसक्यूएल, ओडीबीसी/ओलेडीबी प्रदाताओं (एमएस एक्सेस) का समर्थन करता है। अन्य एसक्यूएल डेटाबेस के लिए समर्थन आसानी से जोड़ा जा सकता है।

    var dalc = new DbDalc(new SqlClientDalcFactory(), connectionStr); 
    

    सब है कि:

इसका मुख्य घटक (DALC) सिर्फ कोड की एक लाइन के साथ प्रारंभ। यदि आपको .NET 2.0 रनटाइम समर्थन की आवश्यकता है तो आप 2.0 रनटाइम के तहत नवीनतम V2 संस्करण को संकलित करने या पिछले विरासत संस्करण (NI.Data.Dalc, V1) का उपयोग करने का प्रयास कर सकते हैं।