मैं एफ # सीख रहा हूं, मैं अपने होम प्रोजेक्ट का अगला मॉड्यूल बनाना चाहता हूं। अब तक मेरा अधिकांश एफ # कोड कमांड लाइन के साथ लिखित टेस्ट कोड रहा है। मैंने Winforms पैनल में कुछ कस्टम ड्राइंग भी किया। अब तक, मुझे एक परिवर्तनीय चर का उपयोग नहीं करना पड़ा है। लेकिन अब मैं कुछ वास्तविक कोड लिखने की कोशिश कर रहा हूं और जैसे ही मैं व्यूमोडेल भाग में गया था, ऐसा लगता था कि यूआई म्यूटेबल के साथ बातचीत करने वाले चर बनाने के अलावा मेरे पास कोई विकल्प नहीं था। क्या यह सच है, या क्या मुझे कुछ याद आ रहा है?एफ # डब्ल्यूपीएफ एमवीवीएम क्या मैं दृश्य मॉडल चर को व्यवहार्य बनाने के बिना ऐसा कर सकता हूं?
उत्तर
एमवीवीएम के लिए, एफ # में एक बहुत ही महत्वपूर्ण लाभ होता है: यह परिपत्र निर्भरताओं की अनुमति नहीं देता है। इससे पैटर्न को तोड़ना बहुत मुश्किल हो जाता है: यानी मॉडल को व्यूमोडेल को सीधे प्रभावित करने के लिए, या दृश्य को देखने के लिए व्यूमोडेल को अनुमति देने के लिए। जैसा कि बेंट कहते हैं, एफ # बहु-प्रतिमान है: यह गेटर्स और सेटर्स के साथ गुणों का समर्थन करता है, और ये भाषा में चीजों को छोड़ने की ज़रूरत नहीं है।
यह दिलचस्प है कि मैं एफ # के फायदों में से एक के रूप में क्षमता की कमी का हवाला दे रहा हूं, लेकिन मुझे लगता है कि यह सटीक परिपत्र निर्भरताओं का यह पूर्ववर्ती है जो भाषा को उद्यम वास्तुकला के लिए एक अच्छा विकल्प बनाता है।
मेरे पास https://github.com/SpiegelSoft/Astrid पर खिलौना प्रोजेक्ट है। आप यह देखने के लिए देख सकते हैं कि मैंने ReactiveUI का उपयोग करके एमवीवीएम कैसे कार्यान्वित किया है।
हाँ, यह सच है। एमवीवीएम की अंतर्निहित प्रकृति अपरिवर्तनीयता को रोकती है।
यदि अपरिवर्तनीयता वास्तव में आपके लिए महत्वपूर्ण है, तो दिमित्री ए मोरोजोज द्वारा बनाई गई एमवीसी ढांचे पर एक नज़र डालें। यह GitHub पर परियोजना पृष्ठ है:
http://fsprojects.github.io/FSharp.Desktop.UI/
मुझे यकीन है कि मैं इसका इस्तेमाल होता है, के बाद से तो कुछ अन्य लोगों के काम नहीं कर रहा हूँ, लेकिन यह निश्चित रूप का अध्ययन कर के लायक है।
भाषा के लिए;
अगर मुझे सही याद है, तो शुरुआत में उन्होंने हास्केल के साथ प्रयोग किया, लेकिन फिर फैसला किया कि ओकम्ल अधिक व्यावहारिक था। तो यही है कि एफ # पर आधारित है। हास्केल उतना ही शुद्ध है जितना वे आते हैं, जो .NET दुनिया में एक समस्या बन गई है, जबकि एफ # एक बहु-प्रतिमानी भाषा है जो वास्तविक दुनिया की जरूरतों के लिए बेहतर है।
तो कुछ मामलों में एफ # में परिवर्तनीय उपयोग करने के बारे में बुरा मत समझें। मैं कहूंगा कि आप कहने के लिए कह रहे हैं। यह बिल्कुल बुरा नहीं है, और लंबे समय तक यह अभी भी सी # के मुकाबले ज्यादा कुशलतापूर्वक काम करता है।
- 1. डब्ल्यूपीएफ - दृश्य मॉडल
- 2. डब्ल्यूपीएफ एमवीवीएम
- 3. एमवीवीएम: पतला दृश्य मॉडल और रिच मॉडल
- 4. डब्ल्यूपीएफ - एमवीवीएम - मॉडल पदानुक्रम देखें
- 5. क्या मैं बच्चे के आंशिक दृश्य से अभिभावक दृश्य मॉडल का उपयोग कर सकता हूं?
- 6. मैं एमवीवीएम डब्ल्यूपीएफ
- 7. एमवीवीएम, डब्ल्यूपीएफ, और सत्यापन
- 8. क्या मैं कक्षा वस्तुओं के साथ ऐसा कर सकता हूं?
- 9. डब्ल्यूपीएफ एमवीवीएम
- 10. एमवीवीएम - सिल्वरलाइट और डब्ल्यूपीएफ
- 11. डब्ल्यूपीएफ एमवीवीएम
- 12. कुछ एमवीवीएम प्रश्न (डब्ल्यूपीएफ सी #)
- 13. डब्ल्यूपीएफ मूल बातें: एमवीवीएम
- 14. डब्ल्यूपीएफ - एमवीवीएम
- 15. एमवीवीएम डब्ल्यूपीएफ
- 16. डब्ल्यूपीएफ एमवीवीएम पैटर्न
- 17. एमवीवीएम डब्ल्यूपीएफ एप्लीकेशन
- 18. एमवीवीएम लाइट और डब्ल्यूपीएफ - एक विंडो के एकाधिक उदाहरण बाध्यकारी एक दृश्य मॉडल
- 19. डब्ल्यूपीएफ और एमवीवीएम
- 20. क्या मैं किसी संदर्भ की संग्रहण लागत के बिना चर को उपनाम कर सकता हूं?
- 21. एमवीवीएम व्यू मॉडल में सी # डब्ल्यूपीएफ थ्रेड को कैसे संभालें
- 22. मैं संग्रह के साथ एमवीवीएम कैसे बना सकता हूं?
- 23. डब्ल्यूपीएफ/मल्टीथ्रेडिंग: एमवीवीएम
- 24. क्या मैं पर्यावरण चर को अनदेखा कर सकता हूं?
- 25. डब्ल्यूपीएफ एमवीवीएम
- 26. एक एमवीवीएम डब्ल्यूपीएफ ऐप
- 27. क्या मैं डिवाइस के बिना ऐप जारी कर सकता हूं?
- 28. क्या मैं प्रस्तुत कर सकता हूं: बिना अंडरस्कोर के आंशिक दृश्य?
- 29. डब्ल्यूपीएफ एमवीवीएम पृष्ठभूमि वर्कर पर व्यू मॉडल अपडेट कर रहा है
- 30. क्या एमवीवीएम एक डीएचटीएम आरआईए आवेदन (कोई सिल्वरलाइट/डब्ल्यूपीएफ) में संभव/व्यवहार्य है?
हां यह सच है - लेकिन आपको पहले से ही प्रयुक्त वस्तुओं को उत्परिवर्तनीय बनाने की आवश्यकता नहीं है। बस परिवर्तनीय गुणों के साथ "सजावट" रैपर वर्ग बनाओ। एक और दृष्टिकोण जो मैंने पाया, "नौकरी के लिए सही उपकरण" दृष्टिकोण का पालन करेगा, सी # परियोजनाओं को देखने और व्यू मॉडेल और एफ # आपके "व्यवसाय" तर्क के लिए उपयोग कर रहा है। अपरिवर्तनीय मूल्यों के लिए आप कनवर्टर्स बना सकते हैं जो प्रत्येक परिवर्तन – Fabio
पर नया उदाहरण बनाएंगे, मैंने सी # में दृश्य मॉडल करने पर विचार किया था जब मैंने इसे महसूस करना शुरू किया था। मुझे लगता है कि यह जाने का रास्ता हो सकता है। मुझे लगता है कि परिवर्तनीय वस्तुओं के साथ आने वाला वाक्यविन्यास f # में प्राकृतिक नहीं है। धन्यवाद। – Jesse
केवल (मौजूदा) वर्गों को बुनियादी ढांचे के लिए उत्परिवर्तनीय बनाने के लिए, 'CLIMutableAttribute' पर एक नज़र डालें। सुनिश्चित करें कि आपका डिज़ाइन प्रदूषित नहीं होता है और म्यूटेबिलिटी जितना संभव हो सके सीमित है। – CaringDev