2010-09-10 14 views
95

मुझे डब्ल्यूसीएफ आरआईए सेवाओं के लिए एमएसडीएन की साइट से नफरत है। यह नहीं कहता कि यह क्या है, यह केवल यही कहता है कि यह क्या करता है। यह कहता है कि यह क्या हासिल कर सकता है लेकिन यह नहीं कहता कि मुझे इसकी आवश्यकता क्यों है।डब्ल्यूसीएफ आरआईए सेवाओं क्या है?

उदाहरण के लिए:

"एक आम समस्या है जब विकासशील एक n स्तरीय रिया समाधान बीच स्तरीय और प्रस्तुति स्तरीय बीच आवेदन तर्क समन्वय है"।

अच्छा, यह मेरे लिए बहुत मायने नहीं रखता है।

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

तो क्या यह सर्वर से डीएलएल डाउनलोड करता है? क्या यह डेटा के नियमों का वर्णन करने वाला मेटाडेटा है?

तो यह क्या है? क्या यह आरएडी के लिए सिर्फ एक वीएस 2010 ऐड-ऑन है? या यह डब्ल्यूसीएफ के शीर्ष पर या इसके नीचे या क्या तकनीक है? वो कहाँ रहता है? डेटा के साथ, सर्वर के साथ, क्या?

मुझे सराहना है कि आप कृपया मेरे लिए इसे सारांशित कर सकते हैं।

+3

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

+1

@ रैंगोरिक: आप इसे उत्तर के रूप में पोस्ट कर सकते हैं। संक्षिप्त उत्तर भी अच्छे जवाब हो सकते हैं। –

+7

आह, लॉल, मैंने इसे *** आरआईएए *** के रूप में गलत तरीके से पढ़ा, और मनोविज्ञान चला गया। –

उत्तर

96

आरआईए सेवाएं एक सर्वर-साइड तकनीक है जो स्वचालित रूप से क्लाइंट-साइड (सिल्वरलाइट) ऑब्जेक्ट जेनरेट करती है जो आपके लिए सर्वर के साथ संचार का ख्याल रखती है और क्लाइंट-साइड सत्यापन प्रदान करती है।

आरआईए सेवा के अंदर मुख्य वस्तु DomainService है, आमतौर पर LinqToEntitiesDomainService जो कि LinqToEntities मॉडल से जुड़ा हुआ है।

आरआईए सेवाओं में याद रखने की मुख्य बात यह है कि यह मुख्य रूप से एक परिष्कृत निर्माण चाल है। जब आप कोई डोमेन सेवा बनाते हैं और अपना समाधान संकलित करते हैं, तो आपकी डोमेन सेवा का क्लाइंट-साइड प्रतिनिधित्व उत्पन्न होता है। इस क्लाइंट-साइड प्रतिनिधित्व में एक ही इंटरफ़ेस है। मान लीजिए कि आप एक सर्वर-साइड डोमेन सेवा CustomerService विधि IQueryable<Customer> GetCustomersByCountry के साथ बनाते हैं। जब आप अपना समाधान बनाते हैं, तो आपके सिल्वरलाइट प्रोजेक्ट के अंदर एक कक्षा उत्पन्न होती है जिसे CustomerContext कहा जाता है जिसमें एक विधि GetCustomersByCountryQuery है। अब आप क्लाइंट पर इस विधि का उपयोग कर सकते हैं जैसे कि आप इसे सर्वर पर कॉल कर रहे थे।

अपडेट, आवेषण और हटाएं एक अलग पैटर्न का पालन करें। जब आप कोई डोमेन सेवा बनाते हैं, तो आप यह इंगित कर सकते हैं कि आप संपादन सक्षम करना चाहते हैं या नहीं। अद्यतन/सम्मिलित/हटाए जाने के लिए संबंधित विधियां तब सर्वर-साइड डोमेन सेवा में उत्पन्न होती हैं। हालांकि, क्लाइंट-साइड भाग में ये विधियां नहीं हैं। आपके CustomerContext पर आपके पास SubmitChanges नामक एक विधि है। तो यह कैसे काम करता है:

  • अद्यतन के लिए, आप बस मौजूदा ग्राहकों के गुणों (है कि आप GetCustomersByCountryQuery के ज़रिये पुनः प्राप्त करते हैं)।
  • आवेषण के लिए, आप CustomerContext.Customers.Add(new Customer(...) {...}) का उपयोग करते हैं।
  • हटाता के लिए, आप CustomerContext.Customers.Remove(someCustomer) का उपयोग करें।

जब आप संपादन कर लेंगे, तो आप CustomerContext.SubmitChanges() पर कॉल करें।

सत्यापन के लिए हैं, तब प्रमाणीकरण System.ComponentModel.DataAnnotations नाम स्थान से जिम्मेदार बताते हैं के साथ अपने सर्वर साइड वस्तुओं को सजाने कर सकते हैं। दोबारा, जब आप अपनी परियोजना बनाते हैं, तो सत्यापन कोड अब संबंधित क्लाइंट-साइड ऑब्जेक्ट्स के लिए स्वचालित रूप से जेनरेट किया जाता है।

मुझे आशा है कि इस स्पष्टीकरण आप थोड़ा और आगे मदद करता है।

+0

यह निश्चित रूप से करता है। इसे साझा करने के लिए धन्यवाद। काश आप एमएसडीएन साइट अपडेट कर सकते हैं। अब, अगर मैं अपने डोमेन ऑब्जेक्ट में कोई संपत्ति जोड़ूं तो क्या होगा? क्या यह खुद को अपडेट करेगा? – Aliostad

+0

मैंने अपडेट, आवेषण और हटाए गए कुछ अतिरिक्त जानकारी जोड़े। –

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