2011-05-25 17 views
9

हाल ही में काम पर एक चर्चा हुई कि क्यों एएसपी.नेट एमवीसी अपने नियंत्रक तरीकों के लिए स्थिर तरीकों का उपयोग नहीं करता है। जबकि मैं बाड़ के पक्ष में स्थिर तरीकों का उपयोग करके के खिलाफ था, केवल 2 तर्क जो मैं गैर स्थैतिक क्रिया विधियों के लिए सोच सकता था वे विरासत और नकली करने की क्षमता (जो विरासत आपको देता है)।एएसपी.नेट एमवीसी नियंत्रक स्थिर तरीके

स्थिर पर गैर स्थैतिक क्रियाओं/विधियों के लिए माइक्रोसॉफ्ट के डिजाइन विकल्प क्या था?

एक उदाहरण नियंत्रक अनुरोध के अनुसार एक बार instantiated है, एक से अधिक अनुरोध एक साथ हो रहा जा सकता है:

उत्तर

26

जब मैं उन है कि ASP.NET MVC फ्रेमवर्क यहाँ डिज़ाइन किया गया के मन पता नहीं है मेरे लिए बड़ा एक है। यदि नियंत्रक स्थिर है तो नियंत्रक पर किसी भी राज्य को सभी अनुरोधों पर एक साथ साझा किया जाता है। आप शायद यह नहीं चाहते हैं। यह साझा करना कि साझा किया गया राज्य अद्यतन करना लॉकिंग विवाद, संभव डेडलॉक्स और लॉकिंग को ठीक से लागू नहीं किया गया है, तो बग को ट्रैक करने के लिए बहुत मुश्किल है।

संक्षेप में, एक स्थिर नियंत्रक के साथ काम करने के लिए एक दुःस्वप्न होगा।

+0

मुझे सच में यकीन नहीं है कि आपने वास्तव में किसी भी कारण को परिभाषित किया है। आपने केवल समझाया कि क्यों वेब वातावरण में statics अप्रत्याशित व्यवहार हो सकता है। –

+10

निश्चित रूप से यह तथ्य कि "अप्रत्याशित व्यवहार में परिणाम" एएसपी.नेट एमवीसी ढांचे के हिस्से के रूप में उनका उपयोग न करने का एक वैध कारण है। मेरा जवाब निश्चित रूप से है और जैसा कि मैंने संकेत दिया है, सट्टा है क्योंकि मैं ढांचे को बनाने वाले लोगों के दिमाग को नहीं जानता। हालांकि, यह अभी भी एक संभावित कारण है। –

+1

+1 यह जगह पर है। – Fenton