2008-11-05 3 views
7

एएसपी.नेट एमवीसी में, हमें सभी नियंत्रकों के लिए प्रत्यय "नियंत्रक" का उपयोग करने की आवश्यकता है। यह अनावश्यक रूप से प्रतिबंधित लगता है - क्या इसके लिए कोई तकनीकी कारण है?एएसपी.नेट एमवीसी नाम-आधारित पर नियंत्रक क्यों हैं?

मैं अधिकतर उत्सुक हूं, लेकिन ऐसी स्थितियों को देख सकता हूं जहां अधिक लचीला नामकरण नियम कोड संगठन में सुधार कर सकते हैं। संभावित नियंत्रक कक्षाओं की खोज Controller व्युत्पन्न कक्षाओं की खोज के लिए प्रतिबिंब का उपयोग करके आसानी से की जा सकती है? या आवश्यकता है कि नियंत्रक कक्षाओं को ControllerAttribute के साथ चिह्नित किया जाए?

+0

@ shog9: साक्षरता में सुधार के लिए धन्यवाद। –

+0

@Augusto: कोई समस्या नहीं है। – Shog9

उत्तर

14

एमवीसी समुदाय Ruby on Rails से काफी प्रभावित है, जो "convention over configuration" मानता है। चीजों को लगातार नाम देकर, एप्लिकेशन शून्य विन्यास के साथ चलाया जा सकता है।

+0

आपने मुझे इसे हराया! यहां एक लिंक दिया गया है: http://en.wikipedia.org/wiki/Convention_over_configuration –

+0

हाँ; धन्यवाद। मैंने भी उसे पकड़ लिया। –

3

इस सम्मेलन के लाभों में से एक यह है कि यूआरएल सेगमेंट, कंट्रोलर और मॉडल क्लास के समान होना समान है।

यूआरएल:/उत्पाद/ नियंत्रक: उत्पाद: नियंत्रक मॉडल: उत्पाद

यह एक नामकरण संघर्ष का कारण होगा। इसलिए हमने इस संघर्ष से बचने के लिए "नियंत्रक" के साथ कंट्रोलर नामों को प्रत्यय रखने के लिए एक सम्मेलन किया। हालांकि, आप हमारे व्यवहारशीलता एपीआई के माध्यम से इस व्यवहार को ओवरराइड कर सकते हैं।

+0

असल में फिल ... आरईएसटी द्वारा उन यूआरएल सेगमेंट को संग्रह का नाम देना चाहिए जिसका मतलब है कि नियंत्रक आमतौर पर 'उत्पाद नियंत्रक' (/ उत्पादों/1) में बहुवचन होते हैं जबकि मॉडल इकाई 'उत्पाद' के रूप में एकवचन होती है क्योंकि संग्रह प्रदर्शित करने वाले विचार मॉडल 'IENumerable का उपयोग करेंगे '। तो वैसे भी कोई संघर्ष नहीं होगा। लेकिन सम्मेलन अच्छा है, क्योंकि इसका उपयोग विशेष रूप से (लोगों की शिकायत किए बिना) गुणों, संग्रहों, शब्दकोशों, सूचियों आदि के रूप में किया जाता है। इन प्रकारों * पारंपरिक रूप से * प्रत्यय का उपयोग करते हैं। पाठ्यक्रम के प्रयोज्य उपयोगिता कारणों के लिए। –

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