2009-05-29 15 views
6

किसी ने मुझे answer to a stackoverflow question में बताया कि एमवीवीएम पैटर्न के लिए "दो बड़ी बंदूकें" 1) संलग्न व्यवहार और 2) सेवाएं। मुझे लगता है वह अर्थ है "WPF सेवाओं" एक वाक्यांश जो मैं निम्नलिखित तरीकों से किया पाया:वास्तव में "डब्ल्यूपीएफ सेवाएं" क्या हैं?

PresentationFoundation.dll को परिभाषित करता है WPF प्रकार, एनीमेशन और मल्टीमीडिया समर्थन, डेटा बाइंडिंग समर्थन को नियंत्रित करता है, और अन्य डब्ल्यूपीएफ सेवाएं

इन WPF सेवाओं (डी युग्मित इवेंट, अमीर डेटा बाइंडिंग, स्टाइल, संसाधन, आदि) के कई सॉफ्टवेयर विकास सर्वोत्तम प्रथाओं कि एक एकल, कथात्मक यूआई ढेर में अभिसरण कर रहे हैं।

आप WPF के पीछे प्रेरणा समझ जाएगा XAML की वाक्य रचना जानने के लिए, कोर प्रोग्रामिंग मॉडल की जांच, और कई WPF सेवाओं सर्वेक्षण। WPF किताबें मैं भी उल्लेख "WPF सेवाओं" है जैसे, तो यह सिर्फ एक शब्द का अर्थ है कि है की

कोई नहीं "WPF सुविधाओं" इस तरह के decoupled इवेंट, अमीर डेटा बाइंडिंग, स्टाइल, आदि के रूप में या क्या "डब्ल्यूपीएफ सर्विसेज" शब्द के पीछे कुछ और है?

+0

हां, यह सुविधाओं के बारे में है। मैं उस संदर्भ में कहूंगा, "सेवाएं" यह एक बेहतर शब्द बनाने के लिए सिर्फ एक गूंज शब्द है। बस "उपयोगकर्ता अनुभव" और पसंद की तरह। – Botz3000

उत्तर

3

वह डब्ल्यूपीएफ सेवाओं के बारे में बात नहीं कर रहा है, लेकिन आवेदन सेवाएं। यही है, कार्यक्षमता के कुछ हिस्से को एक स्वतंत्र सेवा में सारणित करना जो एकाधिक वीएम उपभोग कर सकते हैं।

+0

इसका क्या मतलब है, क्या आप विंडोज सेवा, वेब सेवा के बारे में बात कर रहे हैं? डब्ल्यूपीएफ पर विकिपीडिया लेख "डब्ल्यूपीएफ एप्लिकेशन सेवाओं" के उदाहरण "यूजर इंटरफेस, 2 डी और 3 डी ड्राइंग, फिक्स्ड और अनुकूली दस्तावेज, उन्नत टाइपोग्राफी, वेक्टर ग्राफिक्स, रास्टर ग्राफिक्स, एनीमेशन, डेटा बाइंडिंग, ऑडियो और वीडियो" के उदाहरण देता है। इसका क्या अर्थ होगा कि फिर उदा। "एकाधिक व्यूमोडेल डेटा बाइंडिंग का उपभोग कर सकते हैं"। यह हमेशा मामला है। इस अर्थ में "डब्ल्यूपीएफ सेवाएं" और "एप्लिकेशन सेवाएं" इस शब्द के पीछे क्या है? या क्या आप क्लासिक अर्थ जैसे "सुरक्षा सेवाएं" में हैं? –

+3

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

13

मार्टिन फाउलर का विवरण है कि Dependency Injection आलेख में कोई सेवा क्या है। बस रखें, एक सेवा एक वस्तु है जो अन्य वस्तुओं द्वारा उपयोग की जाने वाली कार्यक्षमता प्रदान करती है। पैटर्न Inversion of Control और Service Locator पर चर्चा करते समय आपको भारी शब्द का उपयोग किया जाएगा।

इस विषय को इस विषय के साथ बनाने के लिए, आइए सोचें कि हम एमवीवीएम पैटर्न में एक संदेश बॉक्स कैसे प्रदर्शित करेंगे। कॉलिंग MessageBox.Show() खराब होगा, रे। यह यूआई आर्किटेक्चर को दृढ़ता से ViewModel से जोड़ता है, और ViewModel को परीक्षण करना मुश्किल बनाता है। इसके बजाए, एक समाधान का उपयोग एक समाधान होगा, जिसे हम IDisplayMessage पर कॉल करेंगे। यह सेवा किसी भी तरह से ViewModel को प्रदान की जाती है (ऊपर दिए गए दो पैटर्न में से एक के माध्यम से), और इस सेवा का उपयोग किसी संदेश को "प्रदर्शित करने" के लिए किया जाता है। सामान्य ऑपरेशन के दौरान, इस सेवा का एक ठोस संस्करण MessageBox.Show() को कॉल करेगा, लेकिन परीक्षण के दौरान हम एक अलग कंक्रीट संस्करण (एक परीक्षण डबल) प्रदान कर सकते हैं जो अलग-अलग व्यवहार करता है (अक्सर एक नोप, या यदि हम ViewModel डिस्प्ले सुनिश्चित कर रहे हैं संदेश, एक संस्करण जो कॉल रिकॉर्ड करता है ताकि हम यह कह सकें कि यह हुआ है)। Onyx (अस्वीकरण: मैं लेखक हूं) इस तरह की एक सेवा प्रदान करता है, और इस सेवा (और अन्य) को आपके व्यूमोडेल में प्रदान करने के लिए आवश्यक बुनियादी ढांचा प्रदान करता है।

अद्यतन: चूंकि यह प्रतिक्रिया बनाई गई थी, मैंने ब्लॉग पोस्ट Services: Your ViewModel Deathstar लिखा है, जो विषय को काफी अच्छी तरह से कवर करता है। यह पदों की "श्रृंखला" का हिस्सा था, और पाठकों को पहले पोस्ट Behavior - Your Trusty ViewModel Bazooka में रुचि हो सकती है।

+1

क्यों अपने लेखों को इंगित नहीं करते? संलग्न व्यवहार: http://wekempf.spaces.live.com/Blog/cns!D18C3EC06EA971CF!940.entry सेवाएं: http://wekempf.spaces.live.com/Blog/cns!D18C3EC06EA971CF!951। प्रविष्टि – Trainee4Life

+0

उस समय, लेख मौजूद नहीं थे, और मैंने अभी वापस आने और प्रतिक्रिया को अपडेट करने के बारे में नहीं सोचा था। – wekempf

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