/ / एएसपी एमवीसी में एक ViewModel और नियंत्रक के बीच क्या अंतर है - asp.net-mvc, wpf, सिल्वरलाइट, mvvm

एएसपी एमवीसी में एक व्यूमोडेल और कंट्रोलर के बीच क्या अंतर है - asp.net-mvc, wpf, silverlight, mvvm

एक बनाम दूसरे की जिम्मेदारियां क्या हैं? एक बनाम दूसरे में किस तरह का तर्क जाना चाहिए? कौन सी सेवाओं और डेटाबेस को हिट करता है? मैं यह कैसे तय करूं कि मेरा कोड व्यूमोडेल या कंट्रोलर में जाना चाहिए?

रिकॉर्ड के लिए, मैं एस्प पीवीसी का उपयोग कर रहा हूं

उत्तर:

जवाब के लिए 3 № 1

ऐसा नहीं है कि ViewModels के साथ नियंत्रकों को मिश्रण करने के लिए असामान्य नहीं है। ऐसे परिदृश्य में आप भूमिकाओं के लिए निम्नलिखित जिम्मेदारियां सौंप सकते हैं:

ViewModel प्रस्तुति की स्थिति और व्यवहार का प्रतिनिधित्व करता है।

नियंत्रक अनुप्रयोग के वर्कफ़्लो के लिए ज़िम्मेदार है। इसके अलावा, यह ViewModels के बीच मध्यस्थता करता है। तो यह स्पष्ट रूप से एक दूसरे का संदर्भ देने से ViewModels रखकर ढीली युग्मन को बढ़ावा देता है।

इन भूमिकाओं के बारे में अधिक जानकारी: संपर्क


जवाब के लिए 2 № 2

खैर, MVVM वास्तव में एक WPF और सिल्वरलाइट विशिष्ट डिजाइन पैटर्न है। यह विशेष रूप से निर्भर करता है और इन तकनीकों की डेटा बाइंडिंग, कमांडिंग और टेम्प्लेटिंग क्षमताओं की आवश्यकता होती है।

यदि आप ASP.NET MVC का उपयोग कर रहे हैं, तो MVVM एक लागू वास्तुकला नहीं है। यह परिभाषा के अनुसार, मॉडल-व्यू-कंट्रोलर (इसलिए ASP.NET) के आसपास बनाया गया है MVC), और उस वास्तुशिल्प डिजाइन पैटर्न का उपयोग करता है।


उत्तर № 3 के लिए 1

मैं रीड के साथ सहमत हूं, हालांकि, हंसेलमिन्यूट्स परहाल ही में फिल हाक ने asp.net MVC 2 के बारे में बात की, और "ViewModel" के लिए कई संदर्भ बनाए - इसलिए मैंने अनुमान लगाया कि VM "MVC का उपयोग करते हुए भी बनाया जा सकता है"

इसके अलावा - मुझे हमेशा लगता है कि एमवीवीएम ऐप कम से कम एक वीएम से लाभान्वित होता है जिसमें एप्लिकेशन-वाइड चिंताएं होती हैं, जैसे कि नेविगेशन, जो मुझे एक ViewModel से अधिक नियंत्रक के रूप में लगता है ...


जवाब के लिए 0 № 4

मैं आप दोनों से सहमत हूं लेकिन बस जोड़ना पसंद करता हूंएक अन्य पैटर्न MVP (मॉडल व्यू प्रेजेंटर) जो ASP.Net और विंडोज फॉर्म के लिए सबसे उपयुक्त है, लेकिन "WP और सिल्वरलाइट के लिए उपयोग नहीं कर सकता है। MVVM WPF और सिल्वरलाइट अनुप्रयोगों के लिए विशेष रूप से डिजाइन है।