2010-08-14 12 views
5

मैं नेट और COM के प्रयोजन जानना चाहते हैं,COM के लिए .NET प्रतिस्थापन है?

  • नेट कॉम की तरह ही उद्देश्य है है? चूंकि COM का मुख्य उद्देश्य भाषा इंटरऑपरेबिलिटी की अनुमति देना है ताकि .NET की हो?
  • यदि ऐसा है तो क्यों कई कंपनियां अभी भी अपनी विकास परियोजनाओं के लिए COM का उपयोग कर रही हैं?
  • क्या हम COM सीखने लायक हैं जब हम .NET का उपयोग कर सकते हैं?
+0

संबंधित http://stackoverflow.com/questions/2280639/is-net-all-com-underneath –

उत्तर

6
  1. कॉम के लिए कारणों में से एक था कि यदि आप एक सी विकसित बोर्लेन्ड सी ++ बिल्डर में ++ पुस्तकालय आप VB6 में इसका इस्तेमाल नहीं कर सका। लेकिन आप इसे वीसी 6 में इस्तेमाल नहीं कर सके (COM इन उत्पादों की तुलना में पुराना तरीका बीटीडब्ल्यू है)। तो COM अनुप्रयोगों और पुस्तकालयों के बीच अंतःक्रियाशीलता के लिए एक सी प्रोटोकॉल प्रोटोकॉल है। .NET प्रबंधित अनुप्रयोगों के बीच इंटरऑपिलिटी के लिए अनुमति देता है। यदि आप सी ++ के साथ सी ++/सीएलआई का उपयोग करना चाहते हैं। लेकिन यदि आपके पास एक विरासत COBOL एप्लिकेशन है जो .NET घटक का उपयोग करना चाहता है तो आप क्या करते हैं? उस घटक का खुलासा करना COM के रूप में पहुंचने का एक तरीका होगा। सी की तरह एपी का खुलासा एक और तरीका है।

  2. आश्चर्यजनक रूप से नहीं है क्योंकि 80 के दशक के बाद से COM के आसपास रहा है (मुझे लगता है) COM तकनीकी पर बहुत से व्यापार मूल्य का निर्माण किया गया है। यह कोई व्यावसायिक समझ नहीं लेता है और यह काम करने वाले अनुप्रयोगों को फिर से लिखने के लिए बहुत महंगा और जोखिम भरा है। इसलिए जिन कंपनियों को विरासत अनुप्रयोगों को बनाए रखना है, उनमें स्वाभाविक रूप से बहुत से COM आधारित टूल और ऐप्स हैं।

  3. यह सब आपके व्यापार के मामले पर निर्भर करता है। क्या आप केवल .NET प्लेटफॉर्म से दूर हो सकते हैं, मुझे लगता है कि आपको COM को जानने की आवश्यकता नहीं है (हालांकि COM का उपयोग .NET प्लेटफॉर्म द्वारा किया जाता है और कभी-कभी त्रुटियों के माध्यम से लीक होती है)। यदि आप ऑपरेटिंग सिस्टम या अन्य पुस्तकालयों द्वारा उजागर COM पुस्तकालयों का उपयोग कर रहे हैं तो यह कुछ बुनियादी COM नियमों को जानकर समझ में आता है।

पीएस। मुझे COM पसंद है मुझे पंजीकरण भाग पसंद नहीं है, मुझे डीसीओएम का आनंद नहीं मिलता है और मुझे लगता है कि अंत में COM अपार्टमेंट ने डेवलपर्स की मदद से अधिक भ्रमित कर दिया है (यह मूल रूप से डेवलपर्स को दौड़ की स्थिति और संबंधित मुद्दों से बचने में मदद करने के लिए विकसित किया गया था)। लेकिन कोर COM काफी सभ्य है। कुछ झगड़े खत्म हो गए हैं "क्या ओओ ओओ?" लेकिन वह उबलता है कि हम ओओ का उपयोग क्यों करते हैं? आईएनओ encapsulation देने के लिए। तो सवाल तब है: "क्या COM अच्छा encapsulation देता है?"। जवाब हां (आईएमओ) है।

पीएस। आखिरकार मैंने फ़ायरफ़ॉक्स को एक्सपीकॉम नामक कुछ इस्तेमाल किया जो मुझे COM की तरह बहुत दिखता था।

+0

मैं अपने मालिक के साथ मजाक करने के लिए उपयोग करता हूं कि सी ++ + COM क्षमता जल्द ही COBOL क्षमता की तरह है।बहुत अधिक नौकरियां नहीं हैं, लेकिन कम लोग जो इसे जानते हैं, इसलिए हम अपने वेतन को निर्धारित करने में सक्षम होंगे क्योंकि इस तकनीक से जुड़ा इतना व्यापार मूल्य है। – FuleSnabel

1

आपको यह चैनल 9 वीडियो दिलचस्प लगता है। युवल लोवी, एक माइक्रोसॉफ्ट कॉम/WCF विशेषज्ञ यह भावना हो सकता है के लिए हर वर्ग एक WCF सेवा, DCOM

http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Every-Class-a-WCF-Service-with-Juval-Lowy/

कि लिंक का तर्क है कि समझौता उपयोग में आसानी और के लिए प्रदर्शन के मामले में किया जाता है के लिए समान कर सकते हैं कहते हैं समय के साथ विकास में आसानी। चूंकि यह प्रवृत्ति जारी है, निम्न स्तर के COM/DCOM प्रोग्रामिंग की आवश्यकता कम हो गई है। बेशक यह हर परिदृश्य को कवर नहीं करता है, लेकिन इसमें कई गैर महत्वपूर्ण व्यावसायिक आवश्यकताओं को शामिल किया गया है।

क्या आप COM सीखना चाहिए? जैसा कि आज है डब्ल्यूसीएफ (और .NET के अन्य हिस्सों) COM पर आधारित है। COM की समझ रखने से उन कम-स्तरीय मुद्दों की समस्या निवारण में मदद मिलेगी, लेकिन जब तक कि यह आपका प्राथमिक या माध्यमिक कैरियर फोकस न हो, मैं इस पर बहुत समय नहीं व्यतीत करूंगा।

+0

मैं इसे देखूंगा लेकिन मेरे घुटने झटका प्रतिक्रिया है: नहीं, फिर से नहीं !!! प्रत्येक वर्ग को एक वर्ग वर्ग बनाना उस समय एक शानदार विचार की तरह लग रहा था लेकिन विकास की लागत में वृद्धि के कारण यह वास्तव में एक गड़बड़ है। क्या मैं अपने सभी आंतरिक वर्गों को अपने उपयोगकर्ताओं को बेनकाब करना चाहता हूं? और डीसीओएम के साथ यह पिंग के साथ नेटवर्क बाढ़। वेब सर्विसेज के साथ मुझे लगता है कि यह एक webservice के इंटरफेस के रूप में भी बदतर है, जिस तरह से आप स्मृति में एक कक्षा के रूप में डिजाइन नहीं करते हैं (एक webservice अक्सर कॉल ओवरहेड को कम करने के लिए चंकी विधियों का उपयोग करता है)। जब भी एक अनौपचारिक वस्तु नहीं होगी, तब भी एक webservice गायब हो सकता है। – FuleSnabel

+0

@ फुलेस्नाबेल मैं कुछ अधिक चतुर बाइंडिंग के बारे में बात करते समय अपने कई बिंदुओं से असहमत नहीं हूं ... शायद एक चीज जो सिद्धांत को वास्तविकता बनने से रोक रही है, सभी निजी इंटरफेस को सार्वजनिक करने की आवश्यकता है। इसे ठीक करने का एक तरीका "इंट" क्लास को डब्ल्यूसीएफ सेवा बनाना हो सकता है। अगर ऐसा होता, तो हो सकता है कि आप अपने निजी निजी रख सकें। साथ ही, आप अधिक दक्षता के लिए बाध्यकारी नामित पाइप देखना चाहते हैं, लेकिन समग्र बिंदु प्रति-थ्रेड दक्षता की लागत पर डब्ल्यूसीएफ का उपयोग करके समांतर प्रोग्रामिंग के लिए आसानी से अनुमति देना है। – LamonteCristo

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