2012-09-15 14 views
11

मैंने विंडोज 8 स्टोर ऐप के बारे में सीखना शुरू कर दिया है।विंडोज 8 स्टोर ऐप में एमवीवीएम मृत है?

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

मैं GalaSoft.MvvmLight के लिए एक संदर्भ जोड़ा गया है और एक ViewModel बनाया है और के रूप में द्वारा सुझाए गए मेरी XAML करने के लिए यह कहा:

DataContext="{Binding Source={StaticResource Locator}, Path=Welcome}" 

ऐसा लगता है कि माइक्रोसॉफ्ट LayoutAwarePage में ModelView कार्यान्वयन के कुछ प्रकार में शामिल हैं:

protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState) 
{ 
    // TODO: Assign a bindable collection of items to this.DefaultViewModel["Items"] 
    // DefaultViewModel["WelcomeTiles"] = WelcomeTiles; 
} 

जिसे डेटाैकॉन्टेक्स्ट सेट करने के बाद एक्सेस किया जा सकता है।

<DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}" /> 

तो अब मैं अनिश्चित हूं अगर मैं ModelViews बनाना चाहिए जैसा कि मैंने उन्हें याद, MVVMLight का उपयोग करके या सिर्फ DefaultViewModel करने के लिए कोड-पीछे फ़ाइलों में डेटा जोड़ें।

दोनों के साथ लोगों का अनुभव क्या है? मैंने अभी शुरू किया है और मेरा अगला लक्ष्य हैडलर को जोड़ना है जब ग्रिड व्यू में कोई आइटम क्लिक किया जाता है - उपरोक्त पथों में से कौन सा आसान तरीके से ऐसा करने देगा?

उत्तर

15

नहीं, एमवीवीएम कभी मर नहीं जाएगा!

मॉडल-व्यू-व्यू मॉडेल एक डिज़ाइन पैटर्न है, इसलिए यह किसी विशिष्ट ढांचे या कार्यान्वयन पर निर्भर नहीं है। हालांकि, यह एक यूआई डिज़ाइन पैटर्न है जो यूआई फ्रेमवर्क के साथ उपयोग करने के लिए सबसे सुविधाजनक है जो डेटा-बाइंडिंग का समर्थन करता है।

विंडोज 8 मेट्रो ऐप्स में एक्सएएमएल और एक बाध्यकारी ढांचा शामिल है जो सिल्वरलाइट और डब्ल्यूपीएफ की तरह है। इस कारण से, एमवीवीएम आपके कोड के प्रबंधन के लिए उत्कृष्ट विकल्प है।

LayoutAwarePage में आपके द्वारा खोजे गए कोड को this blog post में वर्णित किया गया है। यह विभिन्न स्टब-कार्यान्वयन प्रदान करके विंडोज 8 मेट्रो ऐप विकास को आसान बनाने का प्रयास है। इस पृष्ठ में DefaultViewModel शामिल है, जो एक देखने योग्य शब्दकोश है।

व्यक्तिगत रूप से, मैं इसका उपयोग नहीं करता!

+1

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

3

विंडोज 8 मेट्रो ऐप्स में एमवीवीएम मर नहीं गया है।

हमने हमारे ऐप में एमवीएमएमलाइट का उपयोग नहीं किया है, लेकिन व्यूमोडेल गुणों में आईएनओएमएंड्स का उपयोग करते हुए व्यूमोडेल गुणों के लिए बाध्यकारी जैसे बुनियादी घटकों की आवश्यकता है, इन्हें बहुत मामूली परिवर्तन (यदि कोई हो) के साथ उपलब्ध हैं।

माइक्रोसॉफ्ट ने हाल ही में nice sample प्रकाशित किया। यह स्पष्ट रूप से एमवीवीएम नहीं कहता है, लेकिन इसके पास आपको आरंभ करने की आवश्यकता है। और जोश स्मिथ का article निश्चित रूप से अभी भी उपयोगी है।

2

मैं http://stylemvvm.codeplex.com की अनुशंसा करता हूं, यह मेट्रो परियोजनाओं (सी #, सी ++/सीएक्स, एचटीएमएल/जेएस) का समर्थन करने के लिए जमीन से लिखा गया है। इसमें एक पूर्ण आईओसी, आईसीओएमएंड & संलग्न कमांड व्यवहार, टाइल्स, बैज, टोस्ट्स और आकर्षण के लिए सेवाएं शामिल हैं। इसमें एक अच्छी मध्यस्थ वर्ग भी शामिल है जो प्रेषक को अवगत कराती है। इसके अलावा आपको शुरू करने में सहायता के लिए कई दृश्य स्टूडियो टेम्पलेट्स।

नोट: मैं पक्षपाती हो सकता है के बाद से मैं ने लिखा कि यह :)

+1

मैं आपको अभी के लिए एक उपेक्षा दूंगा और इसे बाद में देख सकता हूं :) –

4

नहीं MVVM मरा नहीं है और अभी भी बहुत जीवित है !!!

एमवीवीएम का कॉलिनई परिभाषा इसे बहुत अच्छी तरह से शुरू करता है। वास्तव में एमवीवीएम मूल रूप से एक डिजाइन पैटर्न है, और यह एक विशिष्ट ढांचे पर निर्भर नहीं है।

MVVM का उपयोग करते हुए एक हठधर्मिता नहीं है ..., हालांकि ज्यादातर जो XAML एप्लिकेशन प्रोग्रामिंग के साथ एक बहुत काम किया [WPF, Silverlight, WP 7 और WinRT ...] सहमत होंगे कि MVVM वास्तव में चिंता का एक स्पष्ट एसओसी जुदाई की सुविधा , जीयूआई और बैक एंड लॉजिक के विकास के बीच ।

मैंने व्यक्तिगत रूप से WinRT के संयोजन में Nuget से लॉरेन बग्नियन के एमवीवीएमलाइट पैकेज का उपयोग किया है, हालांकि आप किसी अन्य एमवीवीएम पैकेज या विकल्प को आसानी से महसूस करने के लिए स्वतंत्र हैं।

आप आगे नमूना refs की जरूरत है, मैं गिल क्लीरेन द्वारा 'विंडोज 8 स्टोर में MVVM' पर एक वेबिनार की निम्नलिखित रिकॉर्डिंग पर एक नजर है करने के लिए आमंत्रित हैं

http://www.silverlightshow.net/video/MVVM-in-Win8-Webinar.aspx

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