2008-12-12 13 views
18

ठीक है, सिल्वरलाइट नियंत्रण में डेटा प्राप्त करने के इन सभी तरीकों से मुझे भ्रमित कर रहे हैं।सिल्वरलाइट सक्षम डब्ल्यूसीएफ सेवा बनाम वेब सेवा बनाम एडीओ.NET डेटा सेवा

मैंने एडीओ.Net डेटा सर्विसेज, वेब सेवा और सिल्वरलाइट-सक्षम डब्ल्यूसीएफ सेवाओं को देखा है। मुझे यकीन नहीं है कि जब कोई दूसरे पर उपयोग करने के लिए उपयुक्त होता है। प्रत्येक प्रस्ताव क्या पेशेवर/विपक्ष करते हैं?

मैंने एक वेब ऐप और सिल्वरलाइट नियंत्रण बनाया है। मैं अपने वेब एप्लिकेशन में उन 3 विकल्पों में से एक जोड़ रहा हूं और इसे अपने सिल्वरलाइट घटक से उपभोग कर रहा हूं।

उत्तर

9

चांदी की रोशनी परिप्रेक्ष्य से, डब्ल्यूसीएफ को किसी भी तरह से बाधित किया जाता है, इसलिए सामान्य डब्ल्यूसीएफ के लाभ लागू नहीं होते हैं। हालांकि, यह अभी भी काफी अच्छा, लगातार प्रोग्रामिंग मॉडल है।

डब्ल्यूसीएफ मुख्य रूप से एक एसओएपी स्टैक है, इसलिए डेटा को कठोर परिचालन के रूप में पेश करने में बहुत अच्छा है। एडीओ.NET डेटा सर्विसेज एक आरईएसटी स्टैक है, और वायर पर गतिशील रूप से बहुत अभिव्यक्तिपूर्ण क्वेरी करने की अनुमति देता है।

मुझे नहीं पता कि यह सिल्वरलाइट में कैसा है, लेकिन एक नियमित एडीओ.NET डेटा सर्विसेज प्रॉक्सी (आपके क्लाइंट ऐप पर थोड़ा) सर्वर पर वापस क्वेरी और डेटा दोनों परिवर्तनों के लिए बहुत समृद्ध समर्थन है। ध्यान दें कि परिवर्तन लागू करने के लिए या तो एक: इकाई फ्रेमवर्क, या बी: बहुत सारे काम की आवश्यकता है। लेकिन आपको इस दृष्टिकोण के साथ बहुत सस्ता पूछना चाहिए और अपडेट करना चाहिए।

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

नियमित वेब-सेवा (प्री-डब्ल्यूसीएफ) पुन: केवल उस मार्ग पर जाएं यदि आप बहुत विशिष्ट विरासत कॉलर्स का समर्थन करना चाहते हैं।

+0

तो जहां तक ​​पेलोड जाता है, एक और भारी है (बैंडविड्थ या प्रसंस्करण के मामले में)? – Jeremy

+1

आरईएसटी (यानी एडीओ.नेट डाटा सर्विसेज) सरल है और * आम तौर पर * अधिक हल्का वजन। लेकिन यह विशिष्ट परिदृश्य पर निर्भर करता है। –

+1

जानकारी के लिए, मैं वर्तमान में एक कस्टम (गैर-इकाई-फ्रेमवर्क) ADO.NET डेटा सेवा सेवा को लागू करने पर ब्लॉगिंग कर रहा हूं; बस अगर यह मददगार है: http://marcgravell.blogspot.com/ –

4

यदि आपको एक वेब सेवा और डब्ल्यूसीएफ सेवा के बीच चयन करना है, तो मेरी सलाह डब्ल्यूसीएफ के साथ जाना है। यह अधिक आधुनिक और अधिक शक्तिशाली तकनीक है। एडीओ.Net डेटा सेवाओं के लिए - आप इसका उपयोग कर सकते हैं यदि आपको केवल सर्वर पर डेटाबेस से कुछ डेटा पुनर्प्राप्त/प्रतिबद्ध करना है।

+0

ADO.NET डेटा सेवाएं आपको परिवर्तन करने की अनुमति देती हैं - यह केवल क्वेरी के लिए नहीं है। –

+0

@Marc: आप बिल्कुल सही हैं। मैंने अपना जवाब संपादित कर लिया है। – Boyan

6

मुझे पता है कि यह पुराना है, लेकिन मैं बस अपना 2 सेंट जोड़ना चाहता था।

मैं अत्यधिक डब्ल्यूसीएफ का उपयोग करने की सिफारिश करता हूं; और सिल्वरलाइट-सक्षम वेब सेवा पर डब्ल्यूसीएफ सेवा लाइब्रेरी प्रोजेक्ट का उपयोग करें। वे दोनों अनिवार्य रूप से वही हैं, लेकिन सिल्वरलाइट-सक्षम वेब सेवा ws * के बजाय मूलभूत बाध्यकारी को बदलती है। यह एक एएसपीनेट संगतता मोड विशेषता भी जोड़ता है।


  • WCF आमतौर पर है तेजी: देखें @http://msdn.microsoft.com/en-us/library/bb310550.aspx

  • "संचार प्रौद्योगिकी वितरित मौजूदा के साथ Windows संचार फाउंडेशन (WCF) के एक प्रदर्शन तुलना" WCF समाहित ASMX, WSE, msmq, उद्यम सेवाएं, और remoting।

  • WCF सेवाओं शामिल किया जा सकता और आईआईएस के भीतर चलाने के लिए, विंडोज़ रूपों, आदि

  • WCF HTTP उपयोग तक ही सीमित नहीं है, लेकिन कम से कम विन्यास के साथ भी टीसीपी उपयोग कर सकते हैं, नामित पाइप आदि

  • जटिल डेटा प्रकारों को बेनकाब करना और क्रमबद्ध करना आसान है।

  • डब्ल्यूसीएफ बस वास्तव में अच्छी तरह से स्केल करता है। इसके अलावा, वे डब्ल्यूएफ से वर्कफ़्लो को शामिल करने के लिए इस्तेमाल किया जा सकता है।


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

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

+0

-1: स्कॉट, मैं डाउनवॉटिंग कर रहा हूं क्योंकि: 1) मुझे नहीं लगता कि यह उत्तर पहले से मौजूद था, और 2) सिल्वरलाइट-सक्षम डब्ल्यूसीएफ सेवा का उपयोग करते हुए आपको इसे पीछे की तरफ मिल गया है। चूंकि वह सिल्वरलाइट का उपयोग कर रहा है, इसलिए उसे wsHttp बाइंडिंग का उपयोग करने की आवश्यकता नहीं है! –

+3

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

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