2008-08-27 16 views
23

मान लीजिए कि आपके पास दो अलग-अलग एएसपी.नेट वेब एप्लिकेशन प्रोजेक्ट हैं जिन्हें दोनों को एक सामान्य मास्टरपेज का उपयोग करने की आवश्यकता है।परियोजनाओं में मास्टरपेज साझा करने का सबसे अच्छा तरीका

डुप्लिकेट कोड के बिना परियोजनाओं में मास्टरपेज को साझा करने का सबसे अच्छा तरीका क्या है? अधिमानतः स्रोत नियंत्रण या फ़ाइल सिस्टम हैक का सहारा लेने के बिना।

उत्तर

11

मैं एक ही चीज़ को पूरा करने की कोशिश कर रहा हूं। मैं कुछ समाधानों में देखता हूं लेकिन मुझे लगता है कि वर्चुअल निर्देशिका का उपयोग करना शायद मास्टर पेजों को साझा करने का सबसे अच्छा तरीका है।

यहां कुछ सूत्र हैं जिन्हें आप देख सकते हैं।

अंत लेख आपको संभव तरीके आप Masterpages भी साझा कर सकते हैं के बारे में बताती पास तीसरे गोलियों।

2

प्राथमिक प्रतिलिपि स्रोत नियंत्रण में रखें, और अपने स्रोत नियंत्रण प्रणाली को इसके बारे में चिंता करने दें।

0

उपयोग a symbolic link:

एक प्रतीकात्मक कड़ी एक फ़ाइल-प्रणाली उद्देश्य यह है कि अन्य फ़ाइल प्रणाली वस्तु की ओर इशारा करता है। जिस वस्तु को इंगित किया जा रहा है उसे लक्ष्य कहा जाता है। प्रतीकात्मक लिंक उपयोगकर्ताओं के लिए पारदर्शी हैं; लिंक सामान्य फ़ाइलों या निर्देशिकाओं के रूप में दिखाई देते हैं, और उपयोगकर्ता या एप्लिकेशन द्वारा उसी तरह से कार्य किया जा सकता है।

0

मान लीजिए कि आप अपनी सभी परियोजनाओं (उदाहरण के लिए, अपने स्रोत नियंत्रण पेड़ में एक आम फ़ोल्डर) के लिए एक सामान्य भंडार बना सकते हैं, आप संबंधित पृष्ठों का उपयोग करके मास्टर पेज को लिंक के रूप में जोड़ सकते हैं।

हालांकि, आईआईआरसी, विजुअल स्टूडियो बाहरी पथों से जुड़ी फाइलों की स्थानीय प्रतियां बनाता है। लिंक किए गए फ़ाइलों को जोड़ने के लिए आपको समाधान/प्रोजेक्ट फ़ाइल को टेक्स्ट-एडिट करना पड़ सकता है।

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

0

AFAIK आप जो भी देख रहे हैं उसे करने का कोई शानदार तरीका नहीं है .. वीएस हमेशा इसे कॉपी करने के लिए समाप्त हो जाएगा।

मुझे लगता है कि ईमानदार होना यह एक अच्छा विचार नहीं हो सकता है .. जाहिर है आप सबसे कम आम कोड साझा करना चाहते हैं, लेकिन एक संपूर्ण मास्टरपेज? .. लगता है जैसे आप परेशानी के लिए पूछ सकते हैं क्योंकि एक मामूली परिवर्तन में ऐसा हो सकता है एक या अधिक अनुप्रयोगों पर प्रभाव ..

मैं घटकों/नियंत्रणों में कार्यक्षमता के अच्छे बिट्स को अलग करने और उन्हें तैनात करने का सुझाव दूंगा।

4

लालकृष्ण स्कॉट एलेन की ASP.Net Master Pages: Tips, Tricks, and Traps लेख से, पर "शेयरिंग मास्टर पेज":

पहले विकल्प एक IIS वेब सर्वर पर एक ही स्थान में साझा मास्टर पृष्ठ फ़ाइलों की प्रतिलिपि बनाना है। प्रत्येक एप्लिकेशन तब उपनिर्देशिका के रूप में वर्चुअल निर्देशिका बना सकता है और वर्चुअल निर्देशिका को मास्टर पृष्ठों की वास्तविक निर्देशिका में इंगित कर सकता है। एप्लिकेशन वर्चुअल निर्देशिका के साथ-साथ मास्टर पेज फ़ाइल का नाम किसी पृष्ठ की MasterPageFile प्रॉपर्टी सेट कर सकते हैं। जब हम अद्यतन निर्देशिका पृष्ठ को वास्तविक निर्देशिका में छोड़ देते हैं, तो नया मास्टर पेज तुरंत सभी एप्लिकेशन में दिखाई देगा।

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

अंत में, एएसपी.नेट 2.0 में वर्चुअलपाथप्रोवाइडर फाइलों को सेवा दे सकता है जो फ़ाइल सिस्टम पर मौजूद नहीं है। वर्चुअलपाथप्रोवाइडर के साथ, मास्टर पेजों का एक सेट डाटाबेस टेबल में रह सकता है जो सभी अनुप्रयोग उपयोग करते हैं। VirutalPathProvider पर एक उत्कृष्ट लेख के लिए, "Virtualizing Access to Content: Serving Your Web Site from a ZIP File" देखें।

0

मैं नहीं देख सकता कि आप विभिन्न परियोजनाओं में एक ही मार्कअप क्यों चाहते हैं, यदि आप करते हैं, तो मुझे एक आसान तरीका पता नहीं है।

हालांकि कोड के साथ, स्पष्ट रूप से आप एक कोड फ़ाइल है जहाँ से आप जो कुछ भी तर्क तुम वहाँ में अपने सभी मास्टर पृष्ठों में चाहते में

System.Web.UI.MasterPage 

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

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

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