asp.net एएसपी.नेट वेब साइट या एएसपी.नेट वेब एप्लीकेशन?




visual-studio projects-and-solutions (20)

वेबसाइट और प्रोजेक्ट >> वेबसाइट विजुअल स्टूडियो का उपयोग करके एएसपी.NET एप्लिकेशन बनाने के दो अलग-अलग तरीके हैं। एक परियोजनाहीन है और दूसरा परियोजना पर्यावरण है। मतभेद हैं

  1. समाधान फ़ाइल को परियोजना वातावरण में रूट निर्देशिका के रूप में उसी निर्देशिका में संग्रहीत किया जाता है।
  2. परियोजना पर्यावरण में तैनाती से पहले समाधान और परियोजना फ़ाइलों को हटाने की आवश्यकता है।
  3. पूर्ण रूट निर्देशिका प्रोजेक्टलेस वातावरण में तैनात है।

दृष्टिकोण का उपयोग करने में कोई बुनियादी अंतर नहीं है। लेकिन यदि आप ऐसी वेबसाइट बना रहे हैं जिसमें अधिक समय लगेगा, तो परियोजना पर्यावरण का चयन करें।

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

एएसपी.नेट वेब एप्लिकेशन और एएसपी.नेट वेब साइट के बीच क्या अंतर है? मैं एक दूसरे से क्यों चुनूँगा?

क्या विजुअल स्टूडियो का उपयोग कर रहे संस्करण के आधार पर उत्तर अलग है?


हां वेब एप्लिकेशन वेब साइटों की तुलना में काफी बेहतर है, क्योंकि वेब अनुप्रयोग हमें स्वतंत्रता देते हैं:

  1. एक छतरी के नीचे कई परियोजनाएं और परियोजना निर्भरताओं को स्थापित करने के लिए। पीसीएस के लिए हम वेब अनुप्रयोग के भीतर निम्नलिखित कर सकते हैं-

    • वेब पोर्टल
    • अधिसूचना नियंत्रक (ईमेल भेजने के लिए)
    • व्यापार परत
    • डेटा एक्सेस परत
    • अपवाद प्रबंधक
    • सर्वर उपयोगिता
    • डब्ल्यूसीएफ सेवाएं (सभी प्लेटफार्मों के लिए आम)
    • सामग्री सूचीबद्ध करें
  2. एएसपी.NET पृष्ठों से जुड़े वर्ग फ़ाइलों में कोड पर यूनिट परीक्षण चलाने के लिए

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

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

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


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


एमसीटीएस से आत्म-प्रशिक्षण प्रशिक्षण किट परीक्षा 70-515 पुस्तक से:

वेब एप्लिकेशन (प्रोजेक्ट) के साथ,

  1. आप एक एमवीसी आवेदन बना सकते हैं।
  2. विजुअल स्टूडियो फ़ोल्डर संरचना पर निर्भर होने के बजाय, प्रोजेक्ट फ़ाइल (.csproj या .vbproj) में फ़ाइलों की सूची संग्रहीत करता है।
  3. आप विजुअल बेसिक और सी # मिश्रण नहीं कर सकते हैं।
  4. आप डिबगिंग सत्र को रोक दिए बिना कोड संपादित नहीं कर सकते हैं।
  5. आप कई वेब परियोजनाओं के बीच निर्भरताओं को स्थापित कर सकते हैं।
  6. आपको तैनाती से पहले एप्लिकेशन को संकलित करना होगा, जो आपको किसी पृष्ठ का परीक्षण करने से रोकता है यदि कोई अन्य पृष्ठ संकलित नहीं होगा।
  7. आपको सर्वर पर स्रोत कोड स्टोर करने की आवश्यकता नहीं है।
  8. आप असेंबली नाम और संस्करण को नियंत्रित कर सकते हैं।
  9. आप बिना किसी संकलन के तैनाती के बाद अलग-अलग फ़ाइलों को संपादित नहीं कर सकते हैं।

जब तक आपके पास गतिशील रूप से संकलित प्रोजेक्ट की विशिष्ट आवश्यकता न हो, तब तक किसी वेब साइट प्रोजेक्ट का उपयोग न करें

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

मैं वास्तव में नहीं देख सकता कि उन्होंने दर्द-प्रेरणा, स्वच्छता-निकासी, उत्पादकता कार्बनिकल वेब साइट प्रोजेक्ट प्रकार के लिए विजुअल स्टूडियो 2005 में वेब एप्लिकेशन क्यों छोड़े।


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


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


ऊपर दिए गए कुछ उत्तरों को सारांशित करने के लिए:

लचीलापन , क्या आप किसी वेब पेज पर लाइव बदलाव कर सकते हैं?

वेब साइट : संभव है। प्रो: अल्पकालिक लाभ। कॉन: परियोजना अराजकता का दीर्घकालिक जोखिम।

वेब ऐप : कॉन: संभव नहीं है। एक पृष्ठ संपादित करें, स्रोत नियंत्रण में परिवर्तनों को संग्रहित करें, फिर संपूर्ण साइट बनाएं और तैनात करें। प्रो: एक गुणवत्ता परियोजना बनाए रखें।

विकास के मुद्दे

वेब साइट : एक .csproj फ़ाइल के बिना सरल परियोजना संरचना। दो .aspx पृष्ठों में विवादों के बिना एक ही कक्षा का नाम हो सकता है। रैंडम प्रोजेक्ट निर्देशिका का नाम त्रुटियों का निर्माण करने के लिए अग्रणी है जैसे क्यों .net फ्रेमवर्क अपनी जेनरेट की गई फ़ाइल के साथ संघर्ष करता है और क्यों .नेट फ्रेमवर्क अपनी जेनरेट की गई फ़ाइल के साथ संघर्ष करता है । प्रो: सरल (सरल)। कॉन: अनियमित।

वेब ऐप : एक .csproj फ़ाइल के साथ, वेबफॉर्म प्रोजेक्ट के समान प्रोजेक्ट स्ट्रक्चर। एएसपी पृष्ठों के वर्ग नाम अद्वितीय होना चाहिए। प्रो: सरल (स्मार्ट)। कॉन: कोई नहीं, क्योंकि एक वेब ऐप अभी भी सरल है।


एप्लिकेशन आमतौर पर तैनाती से पहले संकलित होते हैं जहां वेबसाइट app_code निर्देशिका का उपयोग करती है। जब ऐप कोड फ़ोल्डर में कुछ भी बदलता है तो सर्वर कोड को फिर से संकलित करेगा। इसका मतलब है कि आप फ्लाई पर वेबसाइट के साथ कोड जोड़ / बदल सकते हैं।

ऐप का लाभ यह है कि कोई पुन: संकलन नहीं होता है और इसलिए शुरुआती स्टार्ट अप समय तेज हो जाएगा।


वेबसाइट:

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

यदि विजुअल स्टूडियो को लगातार उसी नाम का पुन: उपयोग करने के लिए नहीं कहा जाता है, तो यह हर समय पृष्ठों द्वारा जेनरेट की गई DLL फ़ाइलों के लिए नए नामों के साथ आ जाएगा। इससे डीएलएल फाइलों की एक ही क्लास नाम वाली कई करीबी प्रतियां हो सकती हैं, जिससे बहुत सारी त्रुटियां उत्पन्न हो जाएंगी। वेब साइट प्रोजेक्ट को विजुअल स्टूडियो 2005 के साथ पेश किया गया था, लेकिन यह बेहद लोकप्रिय नहीं हुआ है।

वेब एप्लीकेशन:

वेब एप्लिकेशन प्रोजेक्ट को ऐड-इन के रूप में बनाया गया था और अब विजुअल स्टूडियो 2005 के लिए एसपी 1 के हिस्से के रूप में मौजूद है। मुख्य अंतर वेब अनुप्रयोग प्रोजेक्ट को विजुअल स्टूडियो 2003 के साथ भेजे गए वेब प्रोजेक्ट के समान काम करने के लिए डिज़ाइन किया गया था। यह होगा बिल्ड समय पर एप्लिकेशन को एक एकल डीएलएल फ़ाइल में संकलित करें। प्रोजेक्ट को अपडेट करने के लिए इसे पुन: संकलित किया जाना चाहिए और डीएलएल फ़ाइल को होने वाले बदलावों के लिए प्रकाशित किया जाना चाहिए।

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

Reference

लेख एएसपी.नेट 2.0 - वेब साइट बनाम वेब एप्लिकेशन प्रोजेक्ट भी एक का उपयोग क्यों करता है, न कि दूसरे का उपयोग करने के कारण भी देता है। यहां इसका एक अंश दिया गया है:

  • आपको बड़े विजुअल स्टूडियो .NET 2003 अनुप्रयोगों को वीएस 2005 में माइग्रेट करने की आवश्यकता है? वेब अनुप्रयोग परियोजना का प्रयोग करें।
  • आप प्रोजेक्ट फ़ाइल बनाने के बिना वेब प्रोजेक्ट के रूप में किसी भी निर्देशिका को खोलना और संपादित करना चाहते हैं? वेब साइट प्रोजेक्ट का उपयोग करें।
  • संकलन के दौरान आपको पूर्व-निर्माण और पोस्ट-बिल्ड चरणों को जोड़ने की आवश्यकता है? वेब अनुप्रयोग परियोजना का प्रयोग करें।
  • आपको एकाधिक वेब प्रोजेक्ट का उपयोग करके वेब एप्लिकेशन बनाना होगा? वेब अनुप्रयोग परियोजना का प्रयोग करें।
  • आप प्रत्येक पृष्ठ के लिए एक असेंबली उत्पन्न करना चाहते हैं? वेब साइट प्रोजेक्ट का उपयोग करें।
  • आप प्रत्येक पृष्ठ दृश्य पर पूरी साइट बनाने के बिना गतिशील संकलन और पृष्ठों पर काम करना पसंद करते हैं? वेब साइट प्रोजेक्ट का उपयोग करें।
  • आप कोड-बैक मॉडल के लिए सिंगल-पेज कोड मॉडल पसंद करते हैं? वेब साइट प्रोजेक्ट का उपयोग करें।

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


वेबसाइट: यह स्वचालित रूप से app_code फ़ोल्डर उत्पन्न करता है और यदि आप इसे सर्वर पर प्रकाशित करते हैं और उसके बाद यदि आप किसी भी विशेष फ़ाइल या पृष्ठ में कुछ बदलाव करते हैं तो आपको सभी फ़ाइलों को संकलित करने की आवश्यकता नहीं है।

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


यह इस बात पर निर्भर करता है कि आप क्या विकसित कर रहे हैं।

एक सामग्री उन्मुख वेबसाइट की सामग्री लगातार बदल जाएगी और इसके लिए एक वेबसाइट बेहतर है।

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


वेब अनुप्रयोगों को अधिक स्मृति की आवश्यकता होती है, संभवतः क्योंकि आपके पास एक भी असेंबली में संकलित करने के अलावा कोई विकल्प नहीं है। मैंने बस एक बड़ी विरासत साइट को एक वेब एप्लिकेशन में परिवर्तित कर दिया है और इसमें संकलन समय दोनों में स्मृति से बाहर होने के साथ समस्याएं हैं

Unexpected error writing metadata to file '' -- 
Not enough storage is available to complete this operation. 

इस त्रुटि के साथ त्रुटि और रनटाइम पर:

Exception information: 
    Exception type: HttpException 
    Exception message: Exception of type 'System.OutOfMemoryException' was thrown.
   at System.Web.Compilation.BuildManager.ReportTopLevelCompilationException()

मेमोरी-बाधित विरासत हार्डवेयर पर बड़ी साइटों को परिवर्तित करने की मेरी सिफारिश है कि आप खुद को वेब साइट मॉडल पर वापस लौटने का विकल्प दें। प्रारंभिक सफलता की समस्याओं के बाद भी बाद में रेंगना पड़ सकता है।


मुख्य मतभेदों में से एक यह है कि वेबसाइटें गतिशील रूप से संकलित करती हैं और ऑन-द-फ्लाई असेंबली बनाती हैं। वेब आवेदक एक बड़ी असेंबली में संकलित।

दोनों के बीच भेद विजुअल स्टूडियो 2008 में समाप्त हो गया है।


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

Project structure में भी एक अंतर है। वेब एप्लिकेशन में आपके पास एक प्रोजेक्ट फ़ाइल है जैसे कि आपके पास सामान्य एप्लिकेशन में था। वेब साइट में कोई पारंपरिक प्रोजेक्ट फ़ाइल नहीं है, आपके पास समाधान फ़ाइल है। सभी संदर्भ और सेटिंग्स web.config फ़ाइल में संग्रहीत हैं। @Page directive फ़ाइल के लिए @ पेज निर्देश में एक अलग विशेषता है जिसमें इस पृष्ठ से जुड़े वर्ग शामिल हैं। वेब अनुप्रयोग में यह वेब साइट में "CodeBile" मानक है, आप "CodeFile" का उपयोग करते हैं। आप इसे नीचे दिए गए उदाहरणों में देख सकते हैं:

Web Application:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"  
Inherits="WebApplication._Default" %>  

वेबसाइट:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

नेमस्पेस - ऊपर दिए गए उदाहरण में आप एक और अंतर देख सकते हैं - नामस्थान कैसे बनाए जाते हैं। वेब एप्लिकेशन नेमस्पेस में बस प्रोजेक्ट का नाम है। वेबसाइट में गतिशील रूप से संकलित पृष्ठों के लिए डिफ़ॉल्ट नामस्थान एएसपी है।

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

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

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


एमएसडीएन में एक लेख है जो मतभेदों का वर्णन करता है:

वेब साइट परियोजनाओं और वेब अनुप्रयोग परियोजनाओं की तुलना

बीटीडब्ल्यू: उस विषय के बारे में कुछ समान प्रश्न हैं, उदाहरण के लिए:


वेब साइट वह है जिसे आप एएसपी.NET वेब सर्वर जैसे आईआईएस पर तैनात करते हैं। बस फाइलों और फ़ोल्डर्स का एक गुच्छा। ऐसी वेब साइट में कुछ भी नहीं है जो आपको विजुअल स्टूडियो से जोड़ता है (कोई प्रोजेक्ट फ़ाइल नहीं है)। कोड-पीढ़ी और वेब पृष्ठों का संकलन (जैसे .aspx, .ascx, .master) रनटाइम पर गतिशील रूप से किया जाता है , और इन फ़ाइलों में परिवर्तन ढांचे द्वारा पता लगाया जाता है और स्वचालित रूप से फिर से संकलित किया जाता है। आप उस कोड को डाल सकते हैं जिसे आप विशेष App_Code फ़ोल्डर में पृष्ठों के बीच साझा करना चाहते हैं, या आप इसे पूर्व-संकलित कर सकते हैं और असेंबली को बिन फ़ोल्डर में डाल सकते हैं।

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

App_Code बनाम बिन

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

कोड के पीछे

यह विषय .aspx और .ascx फ़ाइलों के लिए विशिष्ट है। यह विषय नए एप्लिकेशन ढांचे जैसे एएसपी.नेट एमवीसी और एएसपी.नेट वेब पेजों में कम प्रासंगिक है जो कोडबेइंड फाइलों का उपयोग नहीं करते हैं।

वेब अनुप्रयोगों में .aspx पृष्ठों और .ascx नियंत्रणों की codebehind फ़ाइलों सहित, एक ही असेंबली में संकलित सभी कोड फ़ाइलों को लेकर, आपको प्रत्येक छोटे बदलाव के लिए फिर से निर्माण करना होगा, और आप लाइव परिवर्तन नहीं कर सकते हैं। विकास के दौरान यह वास्तविक दर्द हो सकता है, क्योंकि आपको परिवर्तनों को देखने के लिए फिर से निर्माण करना है, जबकि वेब साइट्स के परिवर्तन रनटाइम द्वारा पता लगाए जाते हैं और पेज / नियंत्रण स्वचालित रूप से पुनः संकलित होते हैं।

रनटाइम को प्रबंधित करने के लिए कोडबिंड असेंबली आपके लिए कम काम है, क्योंकि आपको पृष्ठों को नाम देने / अद्वितीय नामों को नियंत्रित करने, या उन्हें अलग-अलग नामस्थानों में व्यवस्थित करने की चिंता करने की आवश्यकता नहीं है।

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

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

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

दृश्य स्टूडियो

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

विजुअल स्टूडियो 2010 में पेश की गई एक और अच्छी सुविधा Web.config रूपांतरण है यह वेब साइट्स में भी उपलब्ध नहीं है। अब वीएस 2013 में वेब साइट्स के साथ काम करता है।

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

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

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

NuGet पैकेज पुनर्स्थापना वेब साइट्स पर काम नहीं करता है, आपको संकुल.config पर सूचीबद्ध संकुल मैन्युअल रूप से स्थापित करना होगा पैकेज पुनर्स्थापना अब NuGet 2.7 से शुरू होने वाली वेब साइट्स के साथ काम करता है


एक "वेब साइट" का कोड एक विशेष ऐप_Cोड निर्देशिका में है और इसे रनटाइम पर कई डीएलएल (असेंबली) में संकलित किया गया है। एक "वेब अनुप्रयोग" एक एकल डीएलएल में precompiled है।


यह हमेशा आपके ग्राहक की आवश्यकता पर निर्भर करता है। एएसपी.नेट में केवल लचीली विशेषताएं शामिल हैं जिन्हें उपयोगकर्ता को आपके आवेदन की सुरक्षा और आसान रखरखाव की आवश्यकता होती है।

आप वेब एप्लिकेशन को बाइनरी फ़ाइल के रूप में सोच सकते हैं जो एएसपी.नेट फ्रेमवर्क के अंदर चलता है। और एक स्थिर वेबपृष्ठ के रूप में वेब साइट्स जिन्हें आप समीक्षा कर सकते हैं और स्रोत कोड को आसानी से तैनात कर सकते हैं।

लेकिन इन दो एएसपी.नेट प्रौद्योगिकियों के लाभ और नुकसान अच्छे हैं।







projects-and-solutions