11

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

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

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

सब कहा जा रहा है, मैं यहाँ कुछ विकल्प के बारे में सोच सकते हैं:

  1. 2 चरणों में तैनात करने के लिए जारी रखें। सबसे पहले आधार वेब साइट, फिर ग्राहक उत्पाद पूर्ण उत्पाद बनाने के लिए।
  2. बेस प्रोजेक्ट
  3. से आवश्यक स्रोत फ़ाइलों की प्रतिलिपि बनाने के लिए तैनाती प्रक्रिया को संशोधित करें इस आधार-क्लाइंट रिश्ते को अलग तरीके से समर्थन देने के लिए हमारे मॉडल को फिर से आर्किटेक्ट करें। यह सुनिश्चित नहीं है कि यह कैसे काम करेगा, और कम से कम व्यवहार्य विकल्प होगा।
  4. ??

वहाँ एक अलग विकल्प है कि मुझे याद आ रही है? क्या मैं अपनी परियोजनाओं को स्थापित करने के तरीके से कुछ गलत कर रहा हूं? संकलित कोड साझा करने से परे एक वेब अनुप्रयोग संदर्भ एक और वेब अनुप्रयोग बनाने के लिए और भी कुछ है? यदि ऐसा है, तो आप एक साझा कक्षा पुस्तकालय का उपयोग क्यों नहीं करेंगे? या शायद मैं एमएस तैनाती प्रक्रिया के साथ कुछ याद कर रहा हूँ?

मैं यहां सुझावों के लिए खुला हूं क्योंकि मुझे लगता है कि मुझे कुछ याद आ रही है। मुझे नहीं लगता कि हमारे वेब अनुप्रयोगों के लिए हमारा मॉडल बहुत ही अद्वितीय है।

अद्यतन: दोहरी तैनाती प्रक्रिया काम करती है, लेकिन थोड़ा सा झुकाव महसूस करता है। कोई अन्य इनपुट?

+6

बीटीडब्ल्यू, हाँ, आपका मॉडल असामान्य है। लेकिन किसी भी मामले में वेब साइट "परियोजनाओं" से भागो। वे अद्वितीय हैं, और अच्छे तरीके से नहीं। –

+0

हां हम थोड़ी देर के लिए जानते हैं कि वेब साइट परियोजनाएं हैं .. umm, "विशेष" कई तरीकों से। टूटा हुआ कुछ ठीक करने के लिए कभी-कभी मुश्किल होती है। हमारी संरचना इतनी अनूठी बनाती है? एक और कल्पनीय विकल्प यह है कि प्रत्येक प्रोजेक्ट में एप्लिकेशन का पूरा स्रोत होता है और किसी प्रकार की स्रोत शाखा स्थापित करता है। हमने पहले ऐसा किया है, और परिवर्तनों को बनाए रखना बहुत मुश्किल हो जाता है। – yourbuddypal

+1

मैंने पहले इस परिदृश्य में ब्रांचिंग का उपयोग करने का विचार नहीं किया है, लेकिन एफवाईआई, टीएफएस 2010 में शाखाकरण अतीत की तुलना में उपयोग करना बहुत आसान है। यह एक लायक है। मैं यह भी अनुशंसा करता हूं कि आप सामान्य भागों से अपने आवेदन के क्लाइंट-विशिष्ट भागों को ध्यान से अलग और अलग करें। ऐप के भीतर विशिष्ट विस्तारशीलता और अनुकूलन बिंदु बनाएं। इससे यह देखना आसान हो जाएगा कि इसे कैसे तैनात किया जाए। MSDEPLOY के साथ आप मजेदार चाल भी खेल सकते हैं। Http: //www.amazon देखें।कॉम/अंदर-माइक्रोसॉफ्ट-बिल्ड-इंजन-फाउंडेशन/डीपी/0735645248 –

उत्तर

0

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

0

अगर मैं सही ढंग से अपने प्रश्न समझ लिया है, तो आप भी आइटम जो संकलित नहीं कर रहे हैं प्रकाशित करना चाहते हैं (htm, जे एस, चित्र, आदि ..)।

तो, आपके सॉल्यूशन एक्सप्लोरर टैब में प्रत्येक फ़ाइल की अपनी गुण (एफ 4 कुंजी द्वारा एक्सेस) है जो आपको बिल्ड एक्शन चुनने देती है (उदाहरण के लिए संकलित -> लागू होने पर डीएलएल में आइटम इंजेक्ट करेगा, सामग्री -> आउटपुट निर्देशिका में फ़ाइल "जैसा है" की प्रतिलिपि बनाएँ)।

मुझे लगता है कि निर्माण कार्रवाई "सामग्री", विकल्प "उत्पादन निर्देशिका के लिए प्रतिलिपि" सेट के साथ, समाधान आप देख रहे हैं हो सकता है "अगर नए कॉपी करने के लिए"।

0

मैं सावधानीपूर्वक विश्लेषण करता हूं कि आप परियोजनाओं के बीच क्या साझा कर रहे हैं और आप उन्हें कैसे साझा करते हैं।

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

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

दूसरी तरफ, यदि यह एएसपी.नेट उपयोगकर्ता नियंत्रण या एएसपी.नेट एमवीसी विचार है जिसे आप साझा करना चाहते हैं, तो प्रत्येक प्रोजेक्ट में एक व्यक्तिगत आइटम बनाना सर्वोत्तम होता है। इसका मतलब यह नहीं है कि उस पथ में एक अलग भौतिक फ़ाइल है - आप विजुअल स्टूडियो में .NET प्रोजेक्ट में आइटम भी जोड़ सकते हैं जो केवल संदर्भ लिंक हैं।

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

मैं आईआईएस में बनाई गई वेबसाइटों (वर्चुअल निर्देशिका) की भी समीक्षा करूंगा और अगर यह समझ में आता है तो उन्हें घोंसला पर विचार करें। और आवेदन पूल की समीक्षा (चाहे अलग या साझा) या तो नुकसान नहीं पहुंचाएगा।

आखिरकार, यह एक पुराना सवाल है। अगर आप पहले ही एक सफल रणनीति लागू कर चुके हैं तो कृपया साझा करें।

1

असेंबली वेब रिसोर्स का उपयोग करके आप कोड i.e, अपने बेस प्रोजेक्ट डीएलएल के साथ संदर्भ के रूप में संदर्भ के रूप में सीएसएस/जेएस/कुछ अन्य फ़ाइल जोड़ सकते हैं।

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

http://support.microsoft.com/kb/910442

इस तरह की तरह, तीसरे पक्ष के उपकरणों के सबसे उनके CSS और JS फ़ाइलों तक पहुंच पाएंगे।

इसे आजमाएं। उम्मीद है कि यह मदद करेगा।

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