जवाबों:
यह उत्तर एक लेख पर आधारित है जो अब मौजूद नहीं है:
लेख का सारांश:
"मूल रूप से, WCF एक सर्विस लेयर है जो आपको कई तरह के संचार तंत्रों का उपयोग करके संवाद स्थापित करने की अनुमति देता है। इसके साथ, आप पीयर टू पीयर, नेमड पाइप्स, वेब सर्विसेस आदि का उपयोग करके संवाद कर सकते हैं।
आप उनकी तुलना नहीं कर सकते क्योंकि WCF अंतर-अनुप्रयोगों के निर्माण के लिए एक रूपरेखा है। यदि आप चाहें, तो आप इसे SOA एनबलर के रूप में सोच सकते हैं। इसका क्या मतलब है?
ठीक है, डब्ल्यूसीएफ एबीसी के रूप में जाना जाता है, जहां ए उस सेवा का पता है जिसे आप के साथ संवाद करना चाहते हैं, बी बंधन के लिए खड़ा है और सी अनुबंध के लिए खड़ा है। यह महत्वपूर्ण है क्योंकि कोड को आवश्यक रूप से बदलने के बिना बंधन को बदलना संभव है। अनुबंध बहुत अधिक शक्तिशाली है क्योंकि यह कार्यान्वयन से अनुबंध को अलग करने के लिए मजबूर करता है। इसका मतलब है कि अनुबंध को एक इंटरफ़ेस में परिभाषित किया गया है, और एक ठोस कार्यान्वयन है जो अनुबंध के समान विचार का उपयोग करके उपभोक्ता द्वारा बाध्य है। डेटामोडेल बाहर सार है। "
... बाद में ...
"जब हमें वेब सेवा के बजाय अन्य संचार तकनीकों (जैसे, पी। पीयर टू पीयर, नेम पाइप्स) के साथ संचार करने की आवश्यकता होती है, तो WCF का उपयोग करना चाहिए"
से WCF और वेब सेवाओं के बीच अंतर क्या है?
WCF Microsoft की सभी पहले की वेब सेवा तकनीकों का प्रतिस्थापन है। यह पारंपरिक रूप से "वेब सेवाओं" के रूप में माना जाता है की तुलना में बहुत अधिक करता है।
WCF "वेब सेवाएं" WCF के माध्यम से सक्षम दूरस्थ संचार के बहुत व्यापक स्पेक्ट्रम का हिस्सा हैं। आपको WCF में पारंपरिक ASMX की तुलना में लचीलेपन और पोर्टेबिलिटी की बहुत अधिक डिग्री मिल जाएगी क्योंकि WCF को Microsoft द्वारा प्रस्तुत विभिन्न वितरित प्रोग्रामिंग इन्फ्रास्ट्रक्चर के सभी को संक्षेप में प्रस्तुत करने के लिए तैयार किया गया है। WCF में एक समापन बिंदु SOAP / XML के साथ आसानी से संचारित किया जा सकता है क्योंकि यह TCP / बाइनरी पर हो सकता है और इस माध्यम को बदलने के लिए बस एक कॉन्फ़िगरेशन फ़ाइल मॉड है। सिद्धांत रूप में, यह व्यावसायिक आवश्यकताओं, लक्ष्यों आदि को पोर्ट या बदलते समय आवश्यक नए कोड की मात्रा को कम करता है।
ASMX WCF से पुराना है, और ASMX WCF (और अधिक) कर सकता है। मूल रूप से आप WCF को Microsoft की दुनिया में संवाद करने के लिए दो ऐप प्राप्त करने के सभी विभिन्न तरीकों को एक साथ सामूहिक रूप से करने की कोशिश करते हुए देख सकते हैं; ASMX इन कई तरीकों में से एक था और इसलिए अब इसे क्षमताओं के WCF छतरी के नीचे रखा गया है।
वेब सेवाओं को केवल HTTP पर एक्सेस किया जा सकता है और यह स्टेटलेस वातावरण में काम करता है, जहां WCF लचीला होता है क्योंकि इसकी सेवाओं को विभिन्न प्रकार के अनुप्रयोगों में होस्ट किया जा सकता है। WCF सेवाओं की मेजबानी के लिए सामान्य परिदृश्य IIS, WAS, स्वयं-होस्टिंग, प्रबंधित Windows सेवा हैं।
प्रमुख अंतर यह है कि वेब सेवा उपयोग
XmlSerializer
। लेकिन WCF उपयोगDataContractSerializer
जो की तुलना में प्रदर्शन में बेहतर हैXmlSerializer
।
वेब सेवा एसओएपी पर आधारित है और एक्सएमएल रूप में डेटा लौटाती है। यह केवल HTTP प्रोटोकॉल का समर्थन करता है। यह खुला स्रोत नहीं है लेकिन किसी भी ग्राहक द्वारा उपभोग किया जा सकता है जो xml को समझता है। इसे केवल IIS पर होस्ट किया जा सकता है।
डब्ल्यूसीएफ भी एसओएपी और एक्सएमएल फॉर्म में रिटर्न डेटा पर आधारित है। यह वेब सेवा (ASMX) का विकास है और टीसीपी, एचटीटीपी, एचटीटीपीएस, नामांकित पाइप्स, एमएसएमक्यू जैसे विभिन्न प्रोटोकॉल का समर्थन करता है। WCF के साथ मुख्य मुद्दा, इसकी थकाऊ और व्यापक कॉन्फ़िगरेशन है। यह खुला स्रोत नहीं है लेकिन किसी भी ग्राहक द्वारा उपभोग किया जा सकता है जो xml को समझता है। इसे एप्लिकेशन में या IIS पर या विंडो सेवा का उपयोग करके होस्ट किया जा सकता है।
बुनियादी और प्राथमिक अंतर है, ASP.NET वेब सेवा को केवल HTTP पर SOAP संदेशों का आदान-प्रदान करने के लिए डिज़ाइन किया गया है जबकि WCF सेवा किसी भी परिवहन प्रोटोकॉल यानी HTTP, TCP, MSMQ या NamedPipes आदि पर किसी भी प्रारूप (SOAP डिफ़ॉल्ट) का उपयोग करके संदेश का आदान-प्रदान कर सकती है।
वेब सेवा और WCF के बीच अंतर क्या है?
एक एप्लिकेशन से दूसरे एप्लिकेशन में डेटा ट्रांसफर करते समय वेब सेवा केवल HTTP प्रोटोकॉल का उपयोग करती है।
लेकिन WCF ASP.NET वेब सेवाओं की तुलना में संदेशों के परिवहन के लिए अधिक प्रोटोकॉल का समर्थन करता है। WCF HTTP, साथ ही ट्रांसमिशन कंट्रोल प्रोटोकॉल (TCP), नामित पाइप, और Microsoft संदेश कतार (MSMQ) का उपयोग करके संदेश भेजने का समर्थन करता है।
वेब सेवा में एक सेवा विकसित करने के लिए, हम निम्नलिखित कोड लिखेंगे
[WebService]
public class Service : System.Web.Services.WebService
{
[WebMethod]
public string Test(string strMsg)
{
return strMsg;
}
}
WCF में एक सेवा विकसित करने के लिए, हम निम्नलिखित कोड लिखेंगे
[ServiceContract]
public interface ITest
{
[OperationContract]
string ShowMessage(string strMsg);
}
public class Service : ITest
{
public string ShowMessage(string strMsg)
{
return strMsg;
}
}
वेब सेवा आर्किटेक्चरली अधिक मजबूत नहीं है। लेकिन डब्ल्यूसीएफ वास्तुशिल्प रूप से अधिक मजबूत है और सर्वोत्तम प्रथाओं को बढ़ावा देता है।
वेब सेवाएँ XmlSerializer का उपयोग करती हैं लेकिन WCF DataContractSerializer का उपयोग करता है। XmlSerializer की तुलना में प्रदर्शन में कौन सा बेहतर है?
आंतरिक (फ़ायरवॉल के पीछे) सेवा-से-सेवा कॉल के लिए हम नेट का उपयोग करते हैं: tcp बाइंडिंग, जो SOAP की तुलना में बहुत तेज़ है।
ASP.NET वेब सेवाओं की तुलना में WCF 25% -50% तेज है, और .NET रीमोटिंग की तुलना में लगभग 25% तेज है।
मैं कब एक दूसरे के लिए विकल्प चुनूंगा?
WCF का उपयोग अन्य अनुप्रयोगों के बीच संवाद करने के लिए किया जाता है जो अन्य प्लेटफार्मों पर विकसित किया गया है और अन्य प्रौद्योगिकी का उपयोग कर रहा है।
उदाहरण के लिए, अगर मुझे .net प्लेटफ़ॉर्म से दूसरे एप्लिकेशन पर डेटा ट्रांसफर करना है जो अन्य OS (जैसे यूनिक्स या लिनक्स) पर चल रहा है और वे अन्य ट्रांसफर प्रोटोकॉल (जैसे WAS, या टीसीपी) का उपयोग कर रहे हैं, तो डेटा ट्रांसफर करना संभव है WCF का उपयोग करना।
यहां प्लेटफ़ॉर्म का कोई प्रतिबंध नहीं है, एक अनुप्रयोग से दूसरे एप्लिकेशन के बीच डेटा स्थानांतरित करते समय एप्लिकेशन के प्रोटोकॉल को स्थानांतरित करें।
वेब सेवा की तुलना में सुरक्षा बहुत अधिक है
प्रमुख अंतर समय-आउट है, जब कोई प्रतिक्रिया नहीं होती है, तो WCF सेवा समय-आउट हो जाती है, लेकिन वेब-सेवा में यह गुण नहीं होता है।