क्या एंटिटी फ्रेमवर्क उत्पादन के लिए तैयार है? [बन्द है]


10

मैं एक नए प्रोजेक्ट के लिए एंटिटी फ्रेमवर्क में देख रहा हूं जिसे मैं लेने जा रहा हूं और अपने शोध के हिस्से के रूप में मैं कुछ उद्योग पेशेवरों से पूछ रहा हूं कि क्या यह स्थिर है और 'वास्तविक दुनिया' के कार्यान्वयन के लिए तैयार है।

दौड़ में है:

  • एफई
  • NHibernate
  • DevExpress XPO

मुझे पहले से ही एक्सपीओ के साथ काफी अच्छा अनुभव है, लेकिन मैं इससे विशेष रूप से खुश नहीं हूं।

जवाबों:


8

हाँ, लेकिन कुछ चेतावनी के साथ:

  • यह पूरी तरह से Microsoft द्वारा समर्थित है, और इसमें एक बढ़ता समुदाय है - लेकिन अपने निकटतम प्रतिद्वंद्वी, nHibernate की तुलना में नया होने के बावजूद, यह अभी भी एक समुदाय के रूप में परिपक्व नहीं है।

  • कम परिपक्व समुदाय होने के साथ, ऐसे समय होंगे जहां ईएफ 4 के साथ एक सुविधा उपलब्ध है लेकिन मुश्किल से प्रलेखित है; या EF4 अपवादों को फेंक देगा जो Google आपकी सहायता नहीं कर सकता है।

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

हालांकि, मुख्य बिंदु को दोहराने के लिए, यह उत्पादन के उपयोग के लिए पर्याप्त और स्थिर है।


इंगित करने के लिए एक महत्वपूर्ण बात, जो स्पष्ट प्रतीत होती है, लेकिन अक्सर इसे अनदेखा किया जाता है जब तक कि यह दर्द का कारण नहीं बनता है, यह है कि एक ओआरएम रिलेशनल प्रतिमान से ओओ-प्रतिमान तक मैप करने के लिए काम करता है। यदि इनमें से कोई भी टीयर इसके संबंधित प्रतिमान के नियमों का पालन नहीं करता है, तो आप अतिरिक्त चोट महसूस करेंगे।

यह दोनों तरीके से जा सकते हैं - यदि आप SQL और OOP के रिलेशनल / सेट-आधारित प्रतिमान में अच्छी तरह से वाकिफ हैं तो ORM दोनों को मक्खन की तरह आपस में जोड़ देगा। यदि आपका डेटाबेस ऐसा दिखता है कि वह OO बनना चाहता है, और आपका OO- कोड ऐसा लगता है जैसे वह रिकॉर्ड-आधारित होना चाहता है, तो YMVV।


+1: जानकारी के लिए धन्यवाद। सौभाग्य से, परियोजना एक ग्रीनफ़ील्ड है जो लगभग पूरी तरह से .NET स्टैक में है (अभी भी mysql और sql सर्वर के बीच बहस कर रहा है), और मैं पहले डोमेन का मॉडलिंग करने जा रहा हूं (और उम्मीद है कि टेबल संरचना उत्पन्न कर रहा हूं)
स्टीवन एवर्स

@SnOrfus: FWIW मैंने हाल ही में MySQL के शीर्ष पर EF का उपयोग शुरू किया है, और वास्तव में इसका आनंद लें।
एरिक किंग

5

हम कई उत्पादन अनुप्रयोगों में ईएफ का उपयोग कर रहे हैं। हमारे पास कई प्रोडक्शन ऐप्स में NHibernate भी हैं। एसटीडब्ल्यू द्वारा टिप्पणी कि ईएफ सबसे अच्छा काम करता है "जब माइक्रोसॉफ्ट का इरादा होता है" निश्चित रूप से सच है। यह NHibernate के बारे में भी सच है कि जब NHibernate टीम का इरादा पैटर्न का पालन करता है तो यह सबसे अच्छा काम करता है। मुझे एक्सपीओ के साथ कोई ज्ञान या अनुभव नहीं है।

मुझे NHibernate को उत्पादन में डालने का कोई अफसोस नहीं है।
मुझे एंटिटी फ्रेमवर्क को प्रोडक्शन में डालने का अफसोस नहीं है।

EF का उपयोग करने के लिए ड्राइविंग कारकों में से एक LINQ के साथ एकीकरण था। मुझे पता है कि NHibernate ने LINQ के साथ बहुत काम किया है, लेकिन अभी तक इसकी जांच करने का समय नहीं मिला है।


दोनों के साथ काम करना एक शानदार तरीका सीखना है कैसे दोनों के साथ काम करने के लिए। यह VB.NET और C # दोनों को सीखने जैसा है - आप अंतर देखने पर सवाल पूछते हैं, और उन सवालों को पूछना अंत में आपकी समझ को बढ़ाता है।
STW

3

हम अपने वेब प्रोजेक्ट के लिए कोड फर्स्ट एप्रोच के साथ EF4.1 का उपयोग कर रहे हैं और जैसा कि पहले बताया गया है कि जैसा कि माइक्रोसॉफ्ट ने इस्तेमाल किया है, उससे यह पता चलता है कि इससे आपको बहुत सारी समस्याएं दूर होंगी।

हालांकि कोई यह नोटिस कर सकता है कि सिस्टम वास्तव में अभी तक परिपक्व नहीं है और मैं यह कहता हूं क्योंकि:

  1. व्यवहार अभी भी बहुत कुछ बदलता है (CTP5 से 4.1 की तुलना में)
  2. LINQ to Entities जनरेटर केवल बुनियादी प्रकारों को संभालने में सक्षम है (Int, String, the lot)
  3. जब आप मौजूदा डेटासेट में विलय करने की कोशिश करते हैं तो कुछ चीजें पूरी तरह से सहज रूप से काम नहीं करती हैं
    1. यह आपको कुछ डीबीसेट के लिए केवल टेबल परिभाषा बनाने की अनुमति नहीं देता है
    2. फ़ील्ड्स जैसे कि डेटेटाइम को मैप करने के लिए Googling की आवश्यकता होती है।
  4. अन्य ज्ञात मुद्दे देखें

2

मैंने वास्तव में पूर्ण स्टैक का उपयोग नहीं किया है, लेकिन हम इसे अपने उत्पाद में टुकड़ों का उपयोग करते हैं और यह काफी परिपक्व लगता है, हालांकि हमें अपनी आवश्यकताओं के लिए कुछ टुकड़ों को अनुकूलित करना पड़ा।


0

मुझे ऐसा लगता होगा। मैं एक बहु-किरायेदार वेब एप्लिकेशन विकसित करने के लिए EF4 कोड-प्रथम (CTP) का उपयोग कर रहा हूं।


+1 - हाँ, मैंने एक टीम में कुछ कोचिंग की है जो एक बहुत बड़े उद्यम प्रोजेक्ट में इसका गहनता से उपयोग करती है, और इसने बहुत अच्छा काम किया है। यह पहले संस्करण के साथ था, नवीनतम नहीं। इसलिए मुझे यकीन है कि नवीनतम संस्करण का उपयोग करना 100% सुरक्षित है।

मुझे नहीं पता कि आप किसी ऐसे सॉफ़्टवेयर के बारे में 100% कैसे सुनिश्चित कर सकते हैं जिसे आपने वास्तव में उत्पादन वातावरण में नहीं चलाया है।
जेरेमी

-1

मुझे लगता है कि आशा / आशा है ... मैं ईएफ 4 और नए मॉडल-प्रथम दृष्टिकोण के साथ एक परियोजना शुरू कर रहा हूं ...

ईएफ 4 के लिए मैंने जो देखा है वह बहुत मजबूत है और यह पूर्ण रूप से पूर्ण है कि पहला संस्करण ... मैं कहूंगा कि मैं इसके लिए जाऊंगा, मुझे पता है कि मैं जा रहा हूं :)


-1

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.