2012-10-16 15 views
8

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

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

शायद कुछ ऐसे उपकरण हैं जो मुख्य प्रोजेक्ट फ़ाइल या निर्देशिका पढ़ सकते हैं और प्रोजेक्ट लोडिंग पर सभी आवश्यक घटकों को संकलित/स्थापित कर सकते हैं (और प्रोजेक्ट बंद होने पर उन्हें अनइंस्टॉल करें)?

डेल्फी में आप इस समस्या को कैसे संभालेंगे?

+2

इस प्रश्न में आपके लिए कुछ जवाब हो सकते हैं: http://stackoverflow.com/questions/8957128/setting-up-a-large-software-sstem-in-delphi। हालांकि, अगर आपको फॉर्मों को संपादित करने की आवश्यकता है, तो कम से कम दृश्य घटकों को स्थापित करने के आसपास कोई रास्ता नहीं है। हमने रजिस्ट्री में प्रासंगिक कुंजी की स्थापना रद्द करने और स्थापित करने के लिए हमारे स्रोत नियंत्रण में स्क्रिप्ट जोड़ दी हैं। निश्चित रूप से एक आईडीई पुनरारंभ की आवश्यकता है। –

+0

मैं आमतौर पर प्रत्येक प्रोजेक्ट के स्रोत कोड के साथ "सभी घटकों" पैकेज फ़ाइल को बनाए रखता हूं, जिसमें विशेष घटक के भीतर उपयोग किए जाने वाले सभी घटक शामिल होते हैं। प्रोजेक्ट स्रोत कोड पर काम करना शुरू करने से पहले, मुझे बस एक ही पैकेज खोलना होगा और इसे पुनर्निर्माण करना होगा ताकि यह सुनिश्चित किया जा सके कि सभी आवश्यक घटक मौजूद हैं। – Elling

उत्तर

4

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

+5

एक आईडीई प्लगइन बनाकर इसे प्राप्त करने का एक तरीका है जो स्वचालित रूप से पता लगाता है कि "प्रोजेक्ट विशिष्ट घटक पैकेज" को फिर से सम्मिलित किया जाना चाहिए और इसे आईडीई में इंस्टॉल किया जाए जब प्रोजेक्ट-समूह खोला जाए और परियोजना-समूह होने पर इसे अनइंस्टॉल करें बन्द है। लेकिन ऐसा करने के लिए आपको आईडीई में पैच और हुक करना होगा क्योंकि OpenToolsAPI ऐसा करने के लिए पर्याप्त समृद्ध नहीं है। इसके लिए पैकेज को एक साफ अंतिमकरण कोड भी आवश्यक है। –

+1

@AndreasHausladen यह एक दयालुता है कि किसी ने कभी भी ऐसी आईडीई प्लगइन नहीं बनाई है। – Linas

+0

"कोई भी जो किसी दिए गए प्रोजेक्ट को संकलित करना चाहता है उसे पहले किसी भी घटक को स्थापित करना होगा जो प्रोजेक्ट का उपयोग कर रहा है ..."। दरअसल आप बिना इंस्टॉलेशन के प्रोजेक्ट को संकलित कर सकते हैं लेकिन फ़ॉर्म संपादित नहीं कर सकते हैं। यदि फॉर्म शिकायत कर रहा है तो बस – Maksee

2

यह समझना बहुत बुद्धिमान है कि कौन सा घटक और पुस्तकालय आपकी टीम द्वारा उपयोग किए जाएंगे। यदि प्रत्येक सदस्य यह तय करता है कि वे किस घटक का उपयोग करेंगे, तो आपका अंतिम निष्पादन योग्य या पैकेज बहुत बढ़ेगा और आप पुस्तकालयों के बीच कुछ असंगतताओं को प्राप्त कर सकते हैं।

इसके अलावा, आप पुस्तकालयों को खरीदने और अपडेट करने के लिए अतिरिक्त लागतें प्राप्त कर सकते हैं जो बहुत समान हैं। याद रखें कि प्रत्येक बार डेल्फी अपडेट किया जाता है, आपको उन पुस्तकालयों में से अधिकांश से नए लाइसेंस खरीदना चाहिए।

तो सबसे अच्छा तरीका है:

  • पूछना जो हर डेवलपर लाइब्रेरी का उपयोग करके और उनके साथ हर एक की वास्तविक आवश्यकता के बारे में बात कर रहे हैं;

  • उन पुस्तकालयों की सूची आवश्यक है और उन्हें मशीन पर स्थापित करें कि आप अपना अंतिम कोड संकलित करेंगे;

+2

मैं मानता हूं कि आपके दृष्टिकोण को काम करना चाहिए ... लेकिन यह बहुत ही असुविधाजनक आईएमओ है। क्या होगा यदि डेवलपर ने केवल एक प्रोजेक्ट के लिए कस्टम घटक बनाया हो? अन्य सभी डेवलपर्स को इसे इंस्टॉल करने की आवश्यकता क्यों है? इस तरह से मुझे यह सुनिश्चित करने के लिए इन सभी स्थापित घटकों को बनाए रखना होगा कि वे सभी अद्यतित हैं। यदि आईडीई प्रति परियोजनाओं को स्थापित करने का समर्थन करता है तो इन सभी मुद्दों से बचा जा सकता है। – Linas

5

हमारी कंपनी में, हमें एक ही समस्या है। हम सभी को अपने डेल्फी विचार में जोड़े गए सभी आवश्यक लाइब्रेरी पथ रखने के लिए मजबूर कर हल करते हैं।

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

चूंकि हम सभी विंडोज के तहत काम करते हैं और चूंकि डेल्फी रजिस्ट्री में अपने पथ और (afaik) स्थापित-घटक सूचनाओं को रखता है, इसलिए हमने इन सूचनाओं को निकाला। हम प्रत्येक प्रयुक्त डेल्फी संस्करण को sdk रिपोजिटरी ट्रंक के भीतर एक .reg फ़ाइल के लिए स्टोर करते हैं।

तो, अगर कोई ढांचा बदलता है, तो वह .reg फ़ाइलों में सभी के लिए सूचनाओं को अद्यतन करता है और इसे करता है।

अब, अगर कोई अपनी देव मशीन सेट करना चाहता है, तो वे एसडीके चेक-आउट करते हैं, उदा। XE2।अपनी रजिस्ट्री के लिए reg सूचनाएं, फिर परियोजना की जांच करें और ... tada। संकलन।

हमने "स्थापित घटक" पैकेज निकालने का प्रयास नहीं किया है। हमारी टू-डू सूची पर है। एक विकल्प में सभी एसडीके पैकेजों को एक साथ बनाने और स्थापित करने के लिए बैच फ़ाइल रखना एक विकल्प होगा। लेकिन मुझे नहीं पता कि डेल्फी में कमांडलाइन के माध्यम से घटक स्थापित करना संभव है या नहीं।

जेडीआई इंस्टॉलर की तरह कुछ अच्छा होगा। इंस्टॉलर स्थापित डेल्फी संस्करणों का पता लगाता है और & बनाता है सब कुछ अच्छी तरह से स्थापित करता है। एक स्वतंत्र रूप से कॉन्फ़िगर करने योग्य संस्करण अच्छा होगा, इसलिए सभी संस्करणों को इंस्टॉल करें -> प्रत्येक संस्करण पर स्थापित करें .. सही।

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