मैं अभी एक बेहद बड़ी वेब प्रोजेक्ट शुरू कर रहा हूं, और वास्तव में सबकुछ सही करने की कोशिश कर रहा हूं।मुझे एंटिटी फ्रेमवर्क कोडफर्स्ट का उपयोग क्यों करना चाहिए यदि इसे सुरक्षित रूप से उत्पादन में उपयोग नहीं किया जा सकता है और इंडेक्स जैसी चीजों का वर्णन नहीं किया जा सकता है
का उपयोग कर मेरे उपकरण अब तक
- ASP.NET MVC हैं 3
- इकाई की रूपरेखा 4.3
- Ninject 3
सभी ठीक चल रहा है, लेकिन मैं कुछ कर रहा हूँ खोजने एंटीटी फ्रेमवर्क कोड के साथ चीजें थोड़ा सा स्केची।
उदाहरण के लिए, मुझे पहले सेटअप के हिस्से के रूप में सदस्यता जानकारी सेट अप करने के लिए http://codefirstmembership.codeplex.com/ का उपयोग करना पड़ा। यह कुछ तीसरी पार्टी का उपयोग करने के लिए थोड़ा रोपी लगता है। जाहिर है, मुझे "खुद को रोल करने" के लिए पर्याप्त 1337 होना चाहिए, लेकिन मैं जाने से बहुत ज्यादा कटौती नहीं करना चाहता हूं। Aspnet_regsql चलाना भयानक लगता है, और प्रत्येक डीबी अपडेट के साथ खो जाएगा। वैसे भी, यह सब उपरोक्त पुस्तकालय के साथ काम कर रहा है और यह बहुत बुरा नहीं है। लगता है कि मचान टूट गया है।
अब यह सब से परे, अब ऐसा लगता है कि जब मैं लाइव वातावरण में दौड़ रहा हूं तो यह सामान प्रोबैमैटिक बनने जा रहा है। कोई भी स्कीमा परिवर्तन जो मैं dev db और live db के बीच बनाना चाहता हूं, उसे मैन्युअल रूप से स्क्रिप्ट के साथ प्रबंधित करना होगा, इसलिए उस बिंदु पर मैं पहले कोड का बिंदु नहीं खो रहा हूं?
मैं पिछले साल Google ऐप इंजन के साथ काम कर रहा हूं, और उम्मीद कर रहा था कि कोड पहले अनिवार्य रूप से उसी तरह काम करेगा? हां, परिवर्तन करें और वे लाइव डेटा को संशोधित करें। अब मुझे लगता है कि ऐप इंजन में गंभीर रिफैक्टरिंग नहीं होने के कारण, यह मूल रूप से उत्पादन में कुछ भी नुकसान नहीं पहुंचाता है। तो आप AppEngine के साथ कभी भी एक टेबल का नाम बदल नहीं सकते। यह हमेशा एक नई टेबल बनायेगा, और पुराना छोड़ देगा। आपको मैन्युअल रूप से डेटा पोर्ट करना होगा।
तो अब मैं सोच रहा हूं। डेटाबेस पहले क्यों नहीं जाते? मैं linq2sql के साथ 3 साल के लिए काम कर रहा हूं और पहले डीबी जाने के साथ बहुत सहज हूं। यद्यपि टीबीएच मेरा डीबी स्रोत नियंत्रण स्ट्रेटर्जी थोड़ा कम रहा है .... कमी। तो मैं उम्मीद कर रहा था कि कोड पहले उस स्थिति को बेहतर बनाने के लिए लागू करेगा, लेकिन यह वास्तव में मुझे महसूस करता है कि मुझे पहले डीबी जाना चाहिए, और इसे नियंत्रण में रखने के बारे में सख्त होना चाहिए।
मैं वास्तव में इस तरह की स्थिति पर किसी भी विचार की सराहना करता हूं, और यह भी निहिनेट का उपयोग करने की तुलना कैसे करता है?
में मदद करता है आप एक विशेष डीबी आप RavenDB की तरह कुछ को देखने के लिए चाहते हो सकता है से बंधा नहीं कर रहे हैं। –
मैं वास्तव में एमएसएसएलएल का उपयोग करने के विपरीत नहीं हूं, हम इसके बिट्स माइग्रेट करने में सक्षम होना चाहिए, इसलिए हम मानक संस्करण का उपयोग करके स्केल कर सकते हैं, जो ईसी 2 अपेक्षाकृत सभ्य दर पर समर्थन करता है। शायद रेवेन से पहले मोंगो या सोफे को देखेंगे, रेवेन के लिए पहले जाने का कोई कारण? –
विचार करने की एक बात यह है कि आप पहले कोड से बाहर निकलना चाहते हैं। क्या आप वास्तव में कोड में अपनी तालिकाओं को परिभाषित करने जा रहे हैं और यह डेटाबेस बनाते हैं, या यह ईएफ 4.3 का पॉको पहलू है जिसे आप चाहते हैं? कारण मैं पूछता हूं कि आप डाटाबेस फर्स्ट या मॉडल फर्स्ट के साथ पीओसीओ और डीबीकॉन्टेक्स्ट का उपयोग कर सकते हैं (आप अपने मॉडल से पीओसीओ जेन के लिए एक कस्टम टी 4 बना सकते हैं)। कारण मैं पूछता हूं क्योंकि मैं कभी-कभी लोगों को "कोड पहले" के बारे में लिखता हूं, जब वह चीज़ जो वास्तव में पीओसीओ/डीबीकॉन्टेक्स्ट के साथ काम करने के बाद होती है। – JMarsch