2010-01-20 14 views
7

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

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

मेरे विस्तृत सवाल यह है:

क्या एक asp.net साइट एक asp.net साइट बनाता है? उदाहरण के लिए, सी में एक डीएल और एक्सई के बीच का अंतर मुख्य रूप से उपस्थिति के रूप में (सतही रूप से वैसे भी) परिभाषित किया जा सकता है, और पुस्तकालय के लिए संभावित निर्यात जानकारी (अन्य चीजों के साथ)। अगर मैं एक्सई को डीएल में परिवर्तित करना चाहता हूं तो मैं: 1. मुख्य कोड हटाएं 2. सुनिश्चित करें कि सार्वजनिक इंटरफ़ेस सही था (और सही ढंग से निर्यात किया गया) 3. मेकफ़ाइल को एक्सई के बजाय एक डीएलएल बनाने के लिए कनवर्ट करें।

क्या कोई मुझे asp.net के लिए .net lib के लिए कुछ समान चरणों में इंगित कर सकता है? शायद: 1. index.aspx से छुटकारा पाएं 2. web.config से छुटकारा पाएं 3. किसी भी * .cs फ़ाइलों को निकालने के लिए? 4. मैं गुणों को कैसे बदलूं? 5. कोई गठिया?

आपकी मदद के लिए बहुत बहुत धन्यवाद। विवरण: विजुअल स्टूडियो 2008/.NET 3.5

+0

आपके त्वरित प्रश्न के संबंध में, ऐसा लगता है कि कई स्टार्टअप प्रोजेक्ट कॉन्फ़िगर किए गए हैं। समाधान, गुणों पर राइट क्लिक करें और फिर ड्रॉपडाउन में चयनित MAINSITE के साथ एकल स्टार्टअप प्रोजेक्ट का चयन करें। – jamesaharvey

उत्तर

3

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

कोई भी कोड जो System.Web (विशेष रूप से System.Web.UI) का उपयोग करता है, इस निर्भरता के मामले में संदिग्ध होने जा रहा है। उदाहरण के लिए, पेज या वेबकंट इवेंट हैंडलर (इनिट, लोड, प्रीरेंडर इत्यादि) में सभी कोड इस तथ्य पर निर्भर करते हैं कि इन घटनाओं को बढ़ाने के लिए एक HttpHandler (एक Http अनुप्रयोग के अंदर चल रहा है) है। यदि आप एक ऐसी लाइब्रेरी से उसी वेबकंट्रोल को चलाते हैं जो एएसपी.Net प्रोजेक्ट में नहीं है, तो इनमें से कोई भी कभी नहीं होगा और नियंत्रण बेकार होगा। हालांकि, अगर एएसपी.Net प्रक्रिया के संदर्भ में निष्पादित किया गया तो यह वही लाइब्रेरी काफी कार्यात्मक होगी।

यह वास्तव में उस प्रक्रिया को उबालता है जिस पर आप लाइब्रेरी चला रहे हैं। ज्यादातर मामलों में, एएसपी.Net प्रक्रियाओं को आईआईएस द्वारा उत्पन्न किया जाता है, हालांकि अन्य प्रकार के कार्यक्रमों में एएसपी.Net प्रक्रिया को होस्ट करना संभव है ।

दुर्भाग्य से किसी वेब प्रोजेक्ट को लाइब्रेरी में परिवर्तित करने के लिए एक सरल 5-चरण प्रक्रिया नहीं है। लेकिन अंगूठे के नियम के रूप में, webcontrols, .aspx और।ascx codebehind कनवर्ट करने के लिए नहीं जा रहे हैं।

एएसपी.Net प्रोग्राम में कोड बनाने के बारे में अधिक विस्तृत रूप से देखने के लिए, रिक स्ट्राल के "A Low level look at ASP.Net" देखें।

3

यदि आप "फ़ाइल"> "नया"> "नई परियोजना ..." पर जाते हैं और फिर (मान लें कि आप सी # का उपयोग कर रहे हैं) "दृश्य सी #" पर क्लिक करें बाईं ओर की सूची में, आपको "क्लास लाइब्रेरी" प्रोजेक्ट बनाने की क्षमता दी गई है। आप इनमें से किसी एक को सभी प्रासंगिक कोड निकाल सकते हैं और फिर अपने "मेनसाइट" में संदर्भित कर सकते हैं।

आपको इसे अपने MAINSITE प्रोजेक्ट के "संदर्भ" खंड में संदर्भित करने की आवश्यकता होगी और import कीवर्ड का उपयोग करके अपनी लाइब्रेरी प्रोजेक्ट आयात करने की आवश्यकता हो सकती है।

+1

Yup - यह संभवतः कक्षा पुस्तकालय में SUBSITE को परिवर्तित करने की कोशिश करने से बहुत अधिक क्लीनर होगा। – cwap

+2

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

+0

अच्छी तरह से उन्होंने कहा कि SUBSITE का "वेबसाइट" हिस्सा उपयोग नहीं किया गया है, बस कुछ कोड फाइलें ... इसलिए मैंने इस विधि का सुझाव दिया। – Jason

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