कौन फ्रॅन्सकैसे MVC में काम की यूनिट को लागू करने: जिम्मेदारी
जिम्मेदारी शुरू करने और एक MVC वास्तुकला में काम की यूनिट खत्म करने के लिए है कौन है?
कौन फ्रॅन्सकैसे MVC में काम की यूनिट को लागू करने: जिम्मेदारी
जिम्मेदारी शुरू करने और एक MVC वास्तुकला में काम की यूनिट खत्म करने के लिए है कौन है?
यह नियंत्रक की ज़िम्मेदारी नहीं है, यह SRP का उल्लंघन करता है। नियंत्रक को यूओडब्ल्यू के बारे में भी पता नहीं होना चाहिए। वेब में, सर्वर पर प्रति अनुरोध एक यूओडब्ल्यू आमतौर पर उपयोग किया जाता है। इस मामले में यूओडब्ल्यू को अनुरोध के अंत में निपटाया जाना चाहिए और अनुरोध की शुरुआत के बाद कहीं शुरू किया जाना चाहिए (आदर्श रूप से यूओडब्ल्यू की आलसी आलसी होना चाहिए)। ऐसा करने के लिए सबसे अच्छी जगह Global_asax (या आपकी Http अनुप्रयोग वर्ग) Application_EndRequest और Application_BeginRequest हैंडलर का उपयोग कर है।
इसे आसानी से आईओसी ढांचे (मेरा पसंदीदा विंडसर) के साथ हासिल किया जा सकता है, कार्यान्वयन विवरण के लिए this question देखें।
नियंत्रक। यह संदर्भ प्राप्त करता है, ताकि आप काम की इकाई शुरू और खत्म कर सकें। उदाहरण के लिए प्रति अनुरोध एक nHibernate सत्र आपको यह जानने की आवश्यकता होगी कि अनुरोध कब शुरू हुआ और समाप्त हुआ, इसलिए आपको अनुरोध देने के लिए संदर्भ की आवश्यकता है।
+1 धन्यवाद मार्क! वैसे भी मैं इसके बारे में अधिक राय के लिए इंतजार कर रहा हूं:) – SDReyes
यह अच्छा है, यह कहना मुश्किल है कि आप क्या जवाब चाहते हैं, क्योंकि काम की इकाई को देखने के एक से अधिक तरीके हैं। कुछ poeple इसे एक पृष्ठ प्रतिपादन के लिए पूरे काम के रूप में है, दूसरों के पास लेनदेन के क्षेत्र हैं जो अन्य वर्गों द्वारा संभाला जा सकता है। यहां तक कि अधिक दानेदार मामलों के लिए, मुझे लगता है कि संसाधनों के प्रभारी नियंत्रक होना अच्छा होता है जो अंततः इसे वापस दे सकता है (निपटान या जो कुछ भी)। शायद आप अधिक पोस्ट कर सकते हैं और मैं कोशिश कर सकता हूं और एक बेहतर जवाब दे सकता हूं। धन्यवाद :) –
उत्तर के लिए धन्यवाद मार्क:) ठीक है, एक यूनिट-ऑफ-वर्क अनुरोध उन्मुख में। मेरे विचार से आप सही है। मुझे विश्वास है कि कुछ ऐसा नहीं माना जा सकता है। :) -i.e. हालांकि लेनदेन उन्मुख यूओडब्ल्यू में नहीं था: पी - धन्यवाद फिर से – SDReyes
जैसा कि जिहोटकी ने कहा था कि यदि आप नियंत्रक को यह ज़िम्मेदारी देते हैं तो आप एसआरपी का उल्लंघन करेंगे। यह एक डेटा मैनिपुलेशन उन्मुख पैटर्न है, और इस तरह नियंत्रक के लिए चिंता नहीं होनी चाहिए ... इससे दो उल्लंघन हो जाएंगे: एसओपी के लिए एक और एसओसी सिद्धांत के लिए anothrt।
किसके लिए जिम्मेदारी है, यह आपके वास्तुकला द्वारा परिभाषित किया जाने वाला कुछ है। StartRequest/EndRequest सुझाव पर्याप्त ठोस लगता है।
धन्यवाद जोस +1 मैं StartRequest/EndRequest से भी सहमत हूं। – SDReyes
मैं कमजोर युग्मित आर्किटेक्चर में आस्तिक हूं। मेरा नियंत्रक भंडार, संदर्भ या इकाई कार्य के बारे में कुछ भी नहीं जानता है। मैंने एक सेवा परत बनाई है (सुनिश्चित नहीं है कि सही शब्द है) कि नियंत्रक कॉल करता है। यह सेवा तब सभी डेटा को जारी रखने के लिए भंडार (डीएल) के साथ काम करती है।
+1 सही होने के लिए! : पी –
+1 आपके दृष्टिकोण Zihotki के लिए धन्यवाद। – SDReyes
@zihotki - आपके डिजाइन में, कार्य इकाई के लिए आदेश क्या जोड़ता है? –