क्या .NET रीमोटिंग वास्तव में पदावनत है?


95

हर कोई कह रहा है कि कैसे WCF द्वारा .NET रीमोटिंग को प्रतिस्थापित किया जा रहा है, लेकिन मैं सोच रहा हूं कि यह कितना सही है। मैंने ऐसा कोई आधिकारिक शब्द नहीं देखा है जिसमें रेमोटिंग को पदावनत किया जा रहा हो, और ऐसा लगता है कि निश्चित रूप से ऐसे परिदृश्य हैं जहाँ रेमोटिंग WCF की तुलना में अधिक समझ में आता है। रीमोटिंग-संबंधित ऑब्जेक्ट्स या विधियों में से किसी को भी फ्रेमवर्क के 4.0 संस्करण में चित्रित नहीं किया गया है। यह मेरी समझ भी है कि 3.5 और 4.0 फ्रेमवर्क में System.AddIn रीमोटिंग का उपयोग करता है।

क्या किसी के पास इसके विपरीत कोई आधिकारिक शब्द है?

लेख में, .NET में संचार विकल्प चुनना (3.0 के लिए, जैसा कि उस लेख का नवीनतम संस्करण है), यह बताता है:

8 क्रॉस-एप्लिकेशन डोमेन संचार

यदि आपको एक ही प्रक्रिया के भीतर विभिन्न एप्लिकेशन डोमेन में ऑब्जेक्ट के बीच संचार का समर्थन करने की आवश्यकता है, तो आपको .NET रीमोटिंग का उपयोग करना होगा।

अब, निश्चित रूप से, सटीक नहीं है, क्योंकि डब्ल्यूसीएफ निश्चित रूप से एपडोमेन सीमाओं को पार करने के लिए इस्तेमाल किया जा सकता है, लेकिन क्या यह उस परिदृश्य के लिए आधिकारिक सिफारिश दे रहा है?

अपडेट: मैंने क्लेमेंस वास्टर्स (जो उस टीम पर था जिसने रेमोटिंग और डब्ल्यूसीएफ का मालिक है) को यह प्रश्न भेजा:

क्लेमेंस, मैं समझता हूं कि आप उस टीम पर हैं जो रिमोट और डब्ल्यूसीएफ दोनों का मालिक है, और मेरे पास कुछ सवाल हैं जो मुझे विश्वास है कि मुझे स्रोत के लिए जाने की आवश्यकता है।

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

यह उसका जवाब है:

रिमॉटिंग .Net फ्रेमवर्क का हिस्सा है और जैसे यह दूर नहीं जा रहा है। COM विंडोज एनटी 3.5 / विंडोज 95 के बाद से विंडोज में है और दूर नहीं गया है और मुझे नहीं लगता कि कभी भी जल्द ही दूर जा रहा है, या तो।

उस ने कहा, रीमोटिंग में बहुत कम विकास निवेश है। WCF प्रबंधित कोड के लिए COM / DCOM को रीमोट करने और दबाने का उत्तराधिकारी है।

इन-प्रोसेस के लिए, क्रॉस-एपीडोमेन संचार रीमोटिंग सीएलआर का संचार करने का मूल तरीका है। यदि आप कम समय में बड़ी मात्रा में डेटा या बहुत अधिक संदेशों को पंप करते हुए प्रदर्शन के मुद्दों को देख रहे हैं, तो आपको WCF और NetNamedPipeBinding पर एक गंभीर नज़र रखना चाहिए।


1
इस बारे में एक प्रश्न के लिए stackoverflow.com/questions/1295353/… देखें कि WCF मेरी विशिष्ट स्थिति में Remoting की तुलना में इतना धीमा क्यों है।
मार्क

1
रीमोट करना .NET के लिए आंतरिक है, और यह भूमिका का विवरण और यह कैसे काम करता है यह डॉन बॉक्स और क्रिस सेल द्वारा आवश्यक .NET में पाया जा सकता है । हालाँकि, यह तब गिरता है जब अंतर-घटक संचार अविश्वसनीय या धीमा होता है, और व्यावहारिक रूप से सभी ट्रांसपोर्ट - यहां तक ​​कि एक गीगाबिट लैन - इन-प्रोसेस मैसेजिंग की तुलना में अविश्वसनीय और धीमा होता है। जब लोग WCF के धीमे होने की बात करते हैं, तो वे आमतौर पर वेब सेवाओं के बारे में सोचते हैं। यदि आप इन-प्रोसेस कोम के लिए उपयोग करने का प्रयास करते हैं तो वेब सेवाएँ बहुत धीमी हैं । हालांकि, वे धीमी और अविश्वसनीय कनेक्शन को सहन करने और इन स्थितियों में अच्छी तरह से सेवा करने के लिए डिज़ाइन किए गए हैं।
पीटर वॉन

3
@Peter: जानकारी के लिए धन्यवाद, लेकिन आपकी कुछ धारणाएँ पूरी तरह से गलत हैं। एक, कि रीमोटिंग धीमी या अविश्वसनीय है। यह। यह बहुत तेज़ है, और बहुत विश्वसनीय है (विश्वसनीय चैनलों पर, निश्चित रूप से)। एक और यह है कि "वेब सेवाएं" (जो भी इसका मतलब है) धीमी हैं। वे नहीं हैं। बेशक, कुछ भी प्रक्रिया नेटवर्क पर किसी भी चीज़ की तुलना में बहुत तेज़ी से होने वाली है, लेकिन यह बिल्कुल भी नहीं है कि यह सवाल क्या है ...
मार्क

जवाबों:


54

इसे एक विरासत तकनीक कहना अधिक सटीक वर्णन है।

http://msdn.microsoft.com/en-us/library/72x4h507%28VS.85%29.aspx

यह विषय एक विरासत प्रौद्योगिकी के लिए विशिष्ट है जो मौजूदा अनुप्रयोगों के साथ पिछड़े संगतता के लिए बनाए रखा गया है और नए विकास के लिए अनुशंसित नहीं है। वितरित अनुप्रयोगों को अब विंडोज कम्युनिकेशन फाउंडेशन (WCF) का उपयोग करके विकसित किया जाना चाहिए।

अपडेट: WCF अंतर / इंट्रा / प्रोसेस / इंटर / इंट्रा-एपडोमेन के बीच अंतर नहीं करता है। यदि आप डब्ल्यूसीएफ में एकल मशीन संचार का उपयोग कर रहे हैं, तो आप नामित पाइपों का उपयोग करते हैं- इसका उपयोग वस्तुतः सभी यथार्थवादी परिदृश्यों में अच्छा प्रदर्शन करना चाहिए।

विभिन्न वितरित संचार प्रौद्योगिकियों के प्रदर्शन की तुलना के लिए यहां देखें


क्या यह लेख विशेष रूप से इंटरप्रोसेस संचार में रीमोटिंग का उपयोग करने के लिए संदर्भित नहीं है? यह मुझे लगता है कि अभी भी रीमोटिंग में क्रॉस-एपडोमैन संचार (AppDomain.CreateInstanceFromAndUnwrap और दोस्तों) में जगह है।
मार्क

हाँ यही है। यदि इन वर्गों को "पदावनत" कर दिया गया था, तो उनके पास लागू अप्रत्यक्ष योगदान होगा- msdn.microsoft.com/en-us/library/system.obsoleteattribute.aspx
रिचर्ड

2
@ मर्क, @ रीचर्ड: लेख .NET रीमोटिंग पर प्रमुख लेख है। यह केवल अंतर प्रक्रिया संचार का संदर्भ नहीं है। इसके अलावा, यह तथ्य कि अप्रचलित एबट्राट्यूड .NET 3.5 में उन पर नहीं है, रीमोटिंग (और एएसएमएक्स वेब सेवाओं) को "विरासत" घोषित करने के निर्णय के बाद से कुछ भी नहीं है। पोस्ट 3.5 आरटीएम बनाया गया था।
जॉन सॉन्डर्स

@ जॉन: वे 4.0 में (कम से कम अभी तक) या तो [अप्रचलित] चिह्नित नहीं हैं।
मार्क

@ मर्क: आपका मतलब है 4.0 बीटा 1.
जॉन सॉन्डर्स

11

हाँ। रिमॉटिंग को हटा दिया गया है ... और यह Microsoft से आधिकारिक है। यहाँ लिंक है:

.NET रिमोटिंग

लेख में पहली पंक्ति बोल्ड में कहती है:

यह विषय एक विरासत प्रौद्योगिकी के लिए विशिष्ट है जो मौजूदा अनुप्रयोगों के साथ पिछड़े संगतता के लिए बनाए रखा गया है और नए विकास के लिए अनुशंसित नहीं है। वितरित अनुप्रयोगों को अब विंडोज कम्युनिकेशन फाउंडेशन (WCF) का उपयोग करके विकसित किया जाना चाहिए।

मुझे लगा कि क्रिया 'पदावनत' थी, लेकिन जाहिर है कि वे इसे 'विरासत' के रूप में संदर्भित करते हैं


21
IMO 'पदावनत' 'विरासत' से अधिक मजबूत है: 'विरासत' का अर्थ है "शुरू मत करो", और पदावनत का अर्थ है "यदि आप पहले ही शुरू कर चुके हैं, तो अभी रुक जाएं, क्योंकि यह पूरी तरह से भविष्य के संस्करणों में हटाया जा सकता है"।
क्रिस डब्ल्यूडब्ल्यू

1
@ मर्क: मैं इसे इस तरह नहीं पढ़ता। WCF इंट्रा-प्रोसेस कम्युनिकेशन के लिए लागू है जैसा कि रीमोटिंग है (WCF में NetNamedPipeBinding देखें)।
माइकल पेट्रोत्ता

1
@ मर्क: भले ही, रिमॉटिंग को हटा दिया गया हो। @ क्रिस: मुझे संदेह है कि रीमोटिंग निकट अवधि में हटा दी जाएगी, लेकिन आप कम बग फिक्स, यदि कोई हो, और कम समर्थन, यदि कोई हो, की उम्मीद कर सकते हैं।
जॉन सॉन्डर्स

1
@ मर्क - आपका असली सवाल क्या है? रेमोटिंग को विरासत तकनीक माना जाता है। ऐसा लगता है कि आप चाहते हैं कि यह सच नहीं है। आपके पास अच्छे कारण हो सकते हैं, लेकिन यह वास्तव में Microsoft की वर्तमान सिफारिशों से बात नहीं करता है।
माइकल पेट्रोत्ता

1
@ जॉन: मुझे लगता है कि मैं हूँ। मैं विशेष रूप से इन-प्रोसेस क्रॉस-एपडोमैन संचार (AppDomain.CreateInstanceFromAndUnwrap और दोस्तों का उपयोग करके) कर रहा हूं, और मुझे WCF का उपयोग करके इसे सफाई से (या उच्च-प्रदर्शन के रूप में) करने का कोई तरीका नहीं दिखता है। मुझे इसके बजाय WCF का उपयोग करने में खुशी हो रही है (मैं अन्य परिदृश्यों में इसका बहुत उपयोग करता हूं), लेकिन इसके लिए मुझे इस तरह से काम करने में परेशानी हो रही है जैसा मैं चाहता हूं। मैं उस विशिष्ट परिदृश्य के बारे में एक और प्रश्न पोस्ट करूँगा।
निशान

6

यदि आप .NET कोर में माइग्रेट करना पसंद करते हैं, तो आपको किसी भी तरह से रीमोट करने के लिए एक और समाधान खोजना होगा:

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

स्रोत: https://docs.microsoft.com/en-us/dotnet/core/porting/lbooks#remoting


1
यहाँ आप इस बारे में चर्चा कर सकते हैं कि .NET कोर में क्या विकल्प उपलब्ध हैं: github.com/dotnet/corefx/issues/18394
जीन-क्लाउड

यहां भी उल्लेख किया गया: docs.microsoft.com/en-us/dotnet/core/porting/…
जीन-क्लाउड

2

क्लेमेंस वास्टर्स, Microsoft .NET सर्विस बस के तकनीकी लीड (जिसका अर्थ है रीमोटिंग दोनों के साथ-साथ WCF) इस फोरम पोस्ट में WCF बनाम रीमोटिंग के बारे में बात करता है । पद को सारांशित करने के लिए वह रिमेकिंग पर डब्ल्यूसीएफ की सिफारिश करता है।

मुझे यकीन नहीं है अगर .NET 4.0 आंतरिक रूप से रीमोट करने का उपयोग करता है, लेकिन आप क्लेमेंस प्रश्न भेजने की कोशिश कर सकते हैं ... मुझे यकीन है कि वह जवाब जानता है।


11
एक Microsoft कर्मचारी मानक के किसी भी रूप में नए चमकदार-नए-असंगत-के साथ सब कुछ-अन्य विधि के उपयोग की सिफारिश करता है? चौंका देने वाला।
क्विलब्रेकर

14
डब्ल्यूसीएफ किस तरह से बाकी सब चीजों के साथ संगत नहीं है? और रीमोटिंग क्या के साथ संगत था?
जॉन सॉन्डर्स

2
यदि आप संगतता की तलाश कर रहे हैं, WCF -only- पसंद है (asmx को छोड़कर, ज़ाहिर है, लेकिन यह "विरासत" भी है)। जहाँ कोई अनुकूलता थी, वहां परिदृश्यों के लिए उपयुक्त -नोटबंदी उपयुक्त थी।
मार्क

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

1
उन्होंने कहा कि आपको "WCF और NetNamedPipeBinding पर एक गंभीर नज़र रखना चाहिए।"
जॉन सॉन्डर्स

2

मुझे लगता है कि अब (2015) यह क्रॉस एप्लिकेशन डोमेन के लिए भी काफी स्पष्ट है: https://msdn.microsoft.com/en-us/library/vstudio/ms180984(v=vs.100).aspx

रिमॉडिंग क्रॉस एपडोमेंस यह विषय एक विरासत प्रौद्योगिकी के लिए विशिष्ट है जो मौजूदा अनुप्रयोगों के साथ पिछड़ी संगतता के लिए बरकरार है और नए विकास के लिए अनुशंसित नहीं है। वितरित अनुप्रयोगों को अब विंडोज कम्युनिकेशन फाउंडेशन (WCF) का उपयोग करके विकसित किया जाना चाहिए।

फिर WCF का उपयोग क्रॉस एप्लिकेशन डोमेन के लिए भी किया जाना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.