2011-09-01 17 views
19

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

प्रबंधन की तरह किसी विशिष्ट अनुभाग के लिए नियंत्रक को कितना बड़ा होना चाहिए इससे पहले कि आप इसे किसी क्षेत्र में तोड़ने और व्यक्तिगत प्रबंधन संचालन के लिए नियंत्रक बनाने का निर्णय लें?

साथ ही, क्षेत्रों का उपयोग करते समय, क्या मुझे सबकुछ के लिए क्षेत्रों का उपयोग करने के लिए या केवल उन वर्गों के लिए उपयोग करना चाहिए जिन्हें क्षेत्र की आवश्यकता है?

उत्तर

19

डेवलपर्स के रूप में इसे व्यवस्थित करने के बारे में कई राय हैं, लेकिन मेरे विचार इस प्रकार हैं;

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

क्षेत्र मैं उप-अनुप्रयोगों में एप्लिकेशन को तोड़ने के लिए क्षेत्रों का उपयोग करता हूं। उदाहरण के लिए, एक साइट है, एक चर्चा मंच, उत्पाद सूची, कंपनी की जानकारी, समर्थन डेटाबेस, आदि हो सकता है जो सभी के अलग अलग क्षेत्रों होगा:

/areas/forum/... 
/areas/product/... 
/areas/company/... 
/areas/support/... 

फिर, प्रत्येक क्षेत्र में, आप हो सकता है

/areas/support/{views|controllers} 
/areas/support/search/ 
/areas/support/contact/ 
/areas/support/knowledgebase/ 

आदि

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

+0

विस्तृत उत्तर के लिए धन्यवाद। यह सहायक है और मुझे लगता है कि मैं अगले पुनरावृत्ति में क्षेत्रों को लागू करने जा रहा हूं। – shuniar

0

यह सबसे व्यावहारिक है जब आपको अलग नियंत्रण और नियंत्रक नामों का पुन: उपयोग करने की आवश्यकता होती है। जैसे आप इसे प्रशासन साइट, ब्लॉग ब्लॉग इत्यादि के लिए उपयोग कर सकते हैं।

8

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

यह कोड को अलग करने में भी मदद करता है; एरिया ए में कोड एरियाबी में कोड के साथ कुछ लेना देना नहीं है, लेकिन कभी-कभी क्षेत्र ए और एरियाबी परियोजना की जड़ में पाए जाने वाले सामान्य कोड का उपयोग करता है।

साइट के गैर-क्षेत्रीय हिस्सों में उपयोगकर्ता-लॉगिन, त्रुटि पृष्ठ (404, आदि) जैसी चीजें हैं, मुख्य "लॉन्चर" क्षेत्र मॉड्यूल में प्रवेश करने के लिए, अपवाद हैंडिंग, और अन्य शामिल चीजें जो क्रॉस-कट किसी भी एमवीसी क्षेत्रों में।

संबंधित मुद्दे