2008-11-18 14 views
6

डब्ल्यूसीएफ पर घटकों के विकास के लिए COM का उपयोग करते समय गहन फायदे क्या हैं ?? क्या कुछ ऐसा है जो COM के साथ किया जा सकता है और डब्ल्यूसीएफ के साथ नहीं ??क्या COM मृत है?

उत्तर

8

नहीं, यह अभी तक मर चुका नहीं है, लेकिन यह उसकी मृत्यु-बिस्तर पर है, यह निश्चित रूप से है। आप देखते हैं कि अभी भी कई विरासत प्रणालियों के लिए है जो COM का उपयोग/आवश्यकता है, जो हमें आश्वासन देता है कि यह हमारे साथ कुछ और वर्षों तक होगा, लेकिन लंबे समय तक नहीं।

डब्ल्यूसीएफ के लिए, कॉम के कुछ किनारे के मामले हो सकते हैं, और डब्ल्यूसीएफ नहीं कर सकता है, लेकिन अधिक महत्वपूर्ण बात यह है कि, और विरासत सामग्री से संबंधित, यह है कि लगभग हर भाषा के लिए COM बाइंडिंग्स आप रख सकते हैं एक खिड़कियां ढेर, लेकिन डब्ल्यूसीएफ बाइंडिंग अभी तक सभी के लिए तैयार नहीं हैं (भाषाएं)

+2

वहाँ कामयाब ओर करने के लिए यह पोर्ट पर करने के लिए कोड कॉम में किया ... का एक बहुत है एक विशाल पूछना है। जैसे एमएस कार्यालय अभी भी COM है। स्क्रैच से फिर से शब्द या एक्सेल करने के लिए एक बड़ी गलती/समय सिंक होगा। – Gishu

+0

@ गिशू - पूरी तरह से सहमत हैं ... कार्यालय और इसे पीछे की संगतता बनाए रखने की आवश्यकता है COM को लगभग किसी भी चीज़ से ज़िंदा रहेंगे। मुख्यधारा में 64 बिट की ओर बढ़ने से कुछ समीकरण बदल सकता है। –

7

इस प्रणाली पर कितना गहराई है कि आप खोदना चाहते हैं। COM कभी भी 'मर' नहीं होगा, जैसा कि अप्रबंधित भाषाओं कभी नहीं होगा।

लंबी कहानी कम करने के लिए, यदि आप Vista + के लिए डेस्कटॉप एप्लिकेशन विकसित करते हैं, तो आपको शायद COM का उपयोग करके परेशान करने की आवश्यकता नहीं होगी।

0

यदि मुझे गलत नहीं है, तो .NET का उद्देश्य COM और WFC जैसे तकनीक को प्रतिस्थापित करना है। क्या कोई कारण है (विरासत कोड के अलावा) कि कोई COM या WFC को .NET पर चुना होगा?

+0

डब्ल्यूसीएफ (विंडोज संचार नींव) .NET Framework 3.0 का हिस्सा है। यह एक विरासत तकनीक नहीं है। –

+0

ओह, मैं एमएफसी के बारे में सोच रहा था। :) – Parappa

4

मुझे नहीं लगता कि COM मर चुका है। यदि आप विस्टा को देखते हैं, तो यह COM आर्किटेक्चर/तकनीक का उपयोग करता है। Vista में हर चीज एक COM Dll/Exe है। मुझे लगता है कि XP ​​की तुलना में, Vista बहुत अधिक COM का उपयोग करता है।

यदि हम Vista में किसी भी चीज को विस्तारित करना चाहते हैं तो हमें COM का उपयोग करके इंटरफेस को कार्यान्वित करना होगा।

+0

क्या आप मुझे अपने अंतिम पंक्ति का समर्थन करने वाले कुछ दस्तावेज़ों पर इंगित कर सकते हैं? – Gishu

+0

नमूना अनुप्रयोग का खुलासा करने वाले इंटरफेस को जानने के लिए OLEView का उपयोग करें। उदाहरण के लिए एक खोज अनुप्रयोग पर विचार करें, स्रोत और सिंक इंटरफेस जानने के लिए ओले व्यू का उपयोग करें। यहां तक ​​कि एपीआई में एक लाइन दस्तावेज होगा। – Vinay

4

वहाँ कई अलग पहलू हैं:

  1. अवयव उस पर चलाने के लिए और कई कंप्यूटरों के साथ बातचीत (सेवाएं)
  2. अवयव कि केवल स्थानीय रूप से चलाने के लिए, और एक ABI के माध्यम से कई विक्रेताओं द्वारा कार्यान्वित घटकों के साथ बातचीत करेंगे ।
  3. घटक जो एक विक्रेता द्वारा तीसरे पक्ष के घटकों के साथ बातचीत करने की आवश्यकता के बिना लिखे गए हैं।
  4. स्रोत कोड में उपलब्ध कई विक्रेताओं के घटक, जिन्हें एक ही एप्लिकेशन में संकलित किया जा सकता है।

(एबीआई = आवेदन द्विआधारी इंटरफ़ेस। कॉम एक ABI का एक उदाहरण है।)

पहलू 1 के लिए, COM काफी मर चुका है।

पहलू 2 को अभी भी COM की आवश्यकता है, और जारी रहेगा। विंडोज इमेजिंग घटक इस तरह की विस्तारशीलता का एक बड़ा उदाहरण है जिससे किसी को भी नई छवि कोडेक्स लागू करने की इजाजत मिलती है। नेट इस पहलू में एक मजबूत दावेदार है।

पहलू 3 के लिए, COM अभी भी विचार करने योग्य है, लेकिन यह प्रत्येक सॉफ़्टवेयर विक्रेता के लिए निर्णय लेने का निर्णय है। इन-हाउस उपयोग के लिए घटक डेवलपर एक दिन उत्पाद के रूप में बेचा जा सकता है। नेट यहाँ भी एक अच्छा विकल्प प्रतीत होता है।

पहलू 4 के लिए, कोई भी कई ओपन-सोर्स प्रोजेक्ट्स से स्रोत कोड को अनुकूलित और संयोजित कर सकता है। COM, या किसी भी एबीआई की कोई आवश्यकता नहीं है।

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

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