2012-12-10 19 views
12

क्या कोई मुझे बताता है कि "लिंक के रूप में जोड़ें" का उपयोग करने के बजाय पोर्टेबल क्लास लाइब्रेरी का उपयोग करने का क्या फायदा है?"लिंक के रूप में जोड़ें" का उपयोग करने के बजाय पोर्टेबल क्लास लाइब्रेरी का उपयोग करने का क्या फायदा है?

धन्यवाद

उत्तर

28

लिंक की गई फ़ाइलों का नुकसान:

  • लिंक के रूप में बनाए रखने के लिए कठिन हो सकता है, विशेष रूप से के रूप में आप कई परियोजनाओं और कई स्रोत फ़ाइलों को स्केल। टूलींग (जैसे विजुअल स्टूडियो 2010 के लिए प्रोजेक्ट लिंकर, या विजुअल स्टूडियो 2012 में खींचते समय एएलटी धारण करना) इसे आसान बना सकता है।
  • रिफैक्टरिंग टूल्स लिंक की गई फ़ाइलों के साथ काम नहीं करते हैं। उदाहरण के लिए, यदि आप किसी लिंक की गई फ़ाइल में किसी वर्ग या विधि का नाम बदलते हैं, तो उपकरण को रीफैक्टर करने से उस API की अन्य लिंक की गई प्रतियों के संदर्भ अपडेट नहीं होंगे।
  • किसी लिंक की गई फ़ाइल में कोड संपादित करते समय, इंटेलिजेंस आपको एपीआई दिखा सकता है जो फ़ाइल के सभी प्लेटफॉर्म पर उपलब्ध नहीं हैं।
  • विजुअल स्टूडियो आपको एक संदेश बॉक्स देगा जो कहता है कि "यह दस्तावेज़ किसी अन्य प्रोजेक्ट द्वारा खोला गया है" जब आप किसी अन्य प्रोजेक्ट द्वारा पहले से खोले गए लिंक को खोलने का प्रयास करते हैं।
  • आप प्रत्येक प्लेटफॉर्म के लिए एक अलग डीएलएल के साथ समाप्त होते हैं। यदि आप एक पुन: प्रयोज्य लाइब्रेरी बना रहे हैं, तो आप दूसरों के साथ साझा करना चाहते हैं, अगर इसका एक संस्करण था, तो प्रत्येक प्लेटफ़ॉर्म के लिए अलग नहीं होने पर वितरित करना आसान हो सकता है। पोर्टेबल वर्ग पुस्तकालयों का

नुकसान:

  • आपको उन API को सभी प्लेटफार्मों आप लक्षित कर रहे पर उपलब्ध हैं तक सीमित हैं। प्लेटफ़ॉर्म
  • के बीच अंतर अंतर करने के लिए आप सशर्त संकलन (#if कथन) का उपयोग नहीं कर सकते हैं यह पता लगाना मुश्किल हो सकता है कि प्लेटफ़ॉर्म के दिए गए संयोजन पर कौन से एपीआई समर्थित हैं। यहां ऐसी स्प्रैडशीट जो इस के साथ मदद कर सकते हैं:

    : Portable Class Library API List

कैसे पोर्टेबल वर्ग पुस्तकालयों का लाभ लेने के लिए पर कुछ मार्गदर्शन के लिए, निम्न देखें

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

+2

यह उत्तर मेरे लिए बहुत अच्छा लग रहा है। केवल एक चीज जो मैं जोड़ूंगा वह यह है कि लिंक किया गया फ़ाइल रूट कारक एन रखरखाव के मुद्दों को भी जोड़ता है। जब मैं mvvmcross के लिंक किए गए फ़ाइल संस्करण को बनाए रखने के लिए उपयोग करता था, तो नया मंच जोड़ना एक चुनौतीपूर्ण संभावना था, लेकिन अब मैंने पीसीएल कोड पर स्विच किया है, मैं खुशी से कुछ नए प्लेटफॉर्म जोड़ने पर विचार कर रहा हूं - उन्हें जोड़ना बड़ा या अप्रिय नहीं है एक कार्य। – Stuart

+3

मैंने झूठ बोला ... कुछ और चीजें हैं जो मैं जोड़ूंगा - 1. कि पीएलसी मार्ग परीक्षण को प्रोत्साहित करता है और परीक्षण को काफी आसान बनाता है; 2. आईएमओ पीएलसी मार्ग अच्छे आर्किटेक्चर को प्रोत्साहित करता है - यह इंटरफेस और निर्भरता इंजेक्शन के उपयोग को प्रोत्साहित करता है, जबकि फ़ाइल लिंकिंग कक्षाओं और #if कथनों को स्थिर लिंकिंग को प्रोत्साहित करती है जो बाद में अन्य निर्माण को तोड़ने का कारण बनती है। – Stuart

+0

हमने पीसीएल में कनवर्ट करना देखा लेकिन मुझे लगता है कि यह वास्तव में ऐसा कुछ है जिसे 1 दिन से सोचा जाना चाहिए। – iwayneo