एन-टियर समाधान का उपयोग करने के लिए कोई नकारात्मक कारण हैं?

मैं अपनी कंपनी (2 सप्ताह) में काफी नया हूं और हम डॉटनेटनेट से .NET 3.5 टीम फाउंडेशन का उपयोग करके हमारे सिस्टम के लिए एक नया मंच शुरू कर रहे हैं। हमारा "वास्तुकार" सुझाव दे रहा है कि हम एक वर्ग परियोजना का उपयोग करें। बेशक, मैं एक "3-स्तरीय" वास्तुकला (व्यापार, डेटा, वेब वर्ग परियोजनाओं) के साथ वापस झुकता हूं।

क्या इस वास्तुकला का उपयोग करने के लिए कोई नुकसान है? प्रो डेटा से कोड को अलग करेगा, कक्षा वस्तुओं को आपके कोड से दूर रखेगा आदि।

0
ro fr bn

6 उत्तर

जैसा कि कुछ भी अमूर्तता जटिलता पैदा करती है, और इसलिए एन-टियर करने की जटिलता को उचित रूप से उचित ठहराया जाना चाहिए, उदाहरण के लिए, एन-टियर वास्तव में सिस्टम को लाभान्वित करता है? वहां होगा छोटे सिस्टम होंगे जो एन-टियर के साथ सबसे अच्छा काम करेंगे, हालांकि उनमें से बहुत से नहीं होंगे।

इसके अलावा, भले ही आपका सिस्टम इस समय छोटा हो, फिर भी आप इसे बाद में और अधिक सुविधाएं जोड़ना चाहेंगे - एन-टियर शायद आपके हिस्से पर तकनीकी ऋण का एक प्रकार नहीं है, इसलिए आपके पास सावधान रहने के लिए।

0
जोड़ा

मुझे लगता है कि काफी बड़ा नकारात्मक पक्ष यह है कि कोड की अतिरिक्त मात्रा जिसे आपको छोटी प्रोजेक्ट के लिए लिखना, प्रबंधित करना और बनाए रखना है, वह अधिक हो सकता है।

परियोजना के आकार, अंतिम परियोजना और बजट की अपेक्षित जिंदगी के लिए यह उचित है! कभी-कभी, चीजें 'ठीक से' करने के दौरान आकर्षक लग रहा है, कुछ और हल्का वजन कम करने का सही व्यावसायिक निर्णय हो सकता है!

0
जोड़ा

मैं एन टायर दृष्टिकोण के लिए कड़ी मेहनत कर रहा हूं भले ही यह एक छोटी परियोजना है। यदि आप कोडरमिथ + नेटटीर्स जैसे ओआरएम टूल का उपयोग करते हैं तो आप परियोजनाओं को जल्दी से स्थापित करने और कोड विकसित करने में सक्षम होंगे जो आपकी व्यावसायिक समस्याओं को जल्दी हल करता है।

जब आप एक नई परियोजना शुरू करते हैं तो यह मुझे मारता है और आप कताई पहियों के चारों ओर बैठे दिन बिताते हैं कि कैसे "वास्तुकला" को आर्किटेक्टेड किया जाना चाहिए। आप व्यवसाय की समस्या को हल करने में समय बिताना चाहते हैं, अन्य लोगों ने आपके लिए हल की समस्याओं को हल नहीं किया है। प्रारंभिक कर्षण प्राप्त करने में आपकी सहायता के लिए एक ओआरएम का उपयोग करना (यह वास्तव में कोई फर्क नहीं पड़ता है, केवल एक चुनें और इससे चिपके रहें) आपको परियोजना के लक्ष्यों पर ध्यान केंद्रित करने में मदद करेगा और आपको "आर्किटेक्चर" मुद्दों को हल करने की कोशिश करने में विचलित नहीं होगा।

यदि, दिन के अंत में, आर्किटेक्ट एक प्रोजेक्ट दृष्टिकोण जाना चाहता है, तो कोई कारण नहीं है कि आप एक बीएलएल और डीएएल फ़ोल्डर के साथ एक एपकोड फ़ोल्डर नहीं बना सकते हैं ताकि कोड को अलग कर सकें जो आपको एक स्थानांतरित करने में मदद करेगा बाद में एन-टियर समाधान।

0
जोड़ा

यह 3-टाइयर बनाने के लिए एक अनुभवहीन टीम को अधिक समय लेता है। यह अधिक कोड है, और अधिक कीड़े। मैं सिर्फ शैतान के वकील को खेल रहा हूं।

0
जोड़ा

क्योंकि आप अलग-अलग भौतिक स्तरों पर परतों को वितरित करने में सक्षम होने की क्षमता चाहते हैं (मैं हमेशा भौतिक के लिए "स्तर" और तार्किक के लिए "परत" का उपयोग करता हूं), आपको बस सबकुछ डालने से पहले दो बार सोचना चाहिए एक वर्ग क्योंकि अगर आपको वितरण शुरू करने की आवश्यकता होती है तो आपको करने के लिए प्रमुख रिफैक्टरिंग मिलती है।

0
जोड़ा

एकमात्र नुकसान जटिलता है लेकिन वास्तव में कुछ डोमेन ऑब्जेक्ट्स जोड़ने और डेटासेट का उपयोग करने के विरोध में उनकी सूची में बाध्य करना कितना मुश्किल है। आपको तीन अलग-अलग परियोजनाओं को भी बनाने की ज़रूरत नहीं है, आप वेब ऐप के भीतर केवल 3 अलग-अलग फ़ोल्डर्स बना सकते हैं और प्रत्येक को नामस्थान जैसे आपका कॉम्पैनी.YourApp.Domain, YourCompany.YourApp.Data, आदि दे सकते हैं।

बड़ा फायदा एक और अधिक लचीला समाधान है। यदि आप डेटा एप्रीक एप्लिकेशन के रूप में अपना ऐप लिखना शुरू करते हैं, तो अपने वेब फॉर्म पेजों को डेटासेट में दृढ़ता से जोड़ते हुए, आप अधिक डोमेन कामकाजी मॉडल में माइग्रेट करने के बाद बहुत अधिक काम करने जा रहे हैं क्योंकि आपका व्यावसायिक तर्क जटिलता में बढ़ता है।

हो सकता है कि अल्प अवधि में आप बहुत ही सरल डोमेन ऑब्जेक्ट्स बनाकर और डेटासेट से पॉप्युलेट करके एक साधारण समाधान पर ध्यान केंद्रित करें, फिर आप आवश्यकतानुसार व्यवसाय तर्क जोड़ सकते हैं और आवश्यकतानुसार एक अधिक परिष्कृत ओआरएम बना सकते हैं, या निबर्ननेट का उपयोग कर सकते हैं।

0
जोड़ा