2009-10-12 30 views
8

आप एक वेब प्रोजेक्ट के लिए फॉर्म और नियंत्रण के साथ एएसपी.NET एमवीसी या मानक एएसपी.Net का उपयोग करने पर विचार क्यों करेंगे? व्यक्तिगत वरीयता के अलावा कारण क्या होंगे? एमवीसी के लिए आपको किस तरह की परियोजनाएं मिलती हैं और सामान्य एएसपी.NET के लिए कौन सी परियोजनाएं मिलती हैं?एएसपी.NET एमवीसी बनाम एएसपी.Net फॉर्म

क्या आप अपनी वर्तमान परियोजनाओं को एक या दूसरे में स्थानांतरित करने पर विचार करेंगे?

उत्तर

8

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

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

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

वेबफॉर्म से एमवीसी तक किसी प्रोजेक्ट को स्थानांतरित करने के लिए, यह स्पष्ट रूप से बहुत ही व्यक्तिपरक और एप्लिकेशन पर निर्भर है, और बजटीय बाधाएं, लेकिन आम तौर पर मेरा मानना ​​है कि यह सही दिशा में एक कदम है।

1

आप कई मतभेद, फायदे ASP.Net MVC के बारे में सामान्य ASP.Net

अनुप्रयोगों से अधिक प्राप्त कर सकते हैं। अगर कृपया स्टेक ओवरलो पृष्ठ पर न जाएं।

Biggest advantage to using ASP.Net MVC vs web forms

आपके आवेदन के लिए MVC अवधारणा को चुनने के लिए कारण भिन्न हो बहुत सी बातें

  1. के लिए आपके आवेदन के लिए क्या हो? या तो फोरम, रिपोर्टिंग टूल या इंट्रानेट वेबसाइट

  2. चाहे आप desing pattern का पालन करना चाहते हैं या नहीं?

    यदि हां, तो क्या यह एमवीसी या कोई अन्य होने जा रहा है ??

  3. क्या आपको भविष्य में वृद्धि के लिए मॉड्यूलरिटी की आवश्यकता है?

  4. क्या आपको अपने कोड पर पूर्ण नियंत्रण की आवश्यकता है?

  5. डेवलपर परिप्रेक्ष्य से परीक्षण भाग पर बेहतर समर्थन होना चाहिए या नहीं?

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

अन्य बेहतर बुद्धिमान ASP.Net Web.apps साथ जारी रखने के लिए है, क्योंकि यह भी शामिल है सभी नवीनतम

सुविधाओं क्या मौजूदा उद्योग की जरूरत है।

+0

मुझे बिंदु 4 नहीं मिलता है, भले ही आपको अपने कोड पर पूर्ण नियंत्रण की आवश्यकता हो? मैंने एएसपीनेट कोड के साथ नियंत्रण की कमी कभी नहीं देखी। –

+0

नियंत्रण - अपने कोड का आर्किटेक्चरिंग स्वयं ही। कोई भी ऑटो जेनरेट कोड कोड नहीं होगा क्योंकि यह सामान्य एएसपी.Net आवेदकों में है – solairaja

13

एएसपी.नेट वेब फॉर्म और एमवीसी माइक्रोसॉफ्ट द्वारा विकसित दो वेब ढांचे हैं - वे दोनों अच्छे विकल्प हैं। वेब ढांचे में से कोई भी दूसरे द्वारा प्रतिस्थापित नहीं किया जाना चाहिए और न ही उन्हें एक ही ढांचे में 'विलय' करने की योजना है। माइक्रोसॉफ्ट द्वारा समानांतर में निरंतर समर्थन और विकास किया जाता है और न ही 'दूर जा रहा' होगा।

इनमें से प्रत्येक वेब ढांचे में फायदे/नुकसान प्रदान किए जाते हैं - जिनमें से कुछ को वेब एप्लिकेशन विकसित करते समय विचार किया जाना चाहिए। एक वेब एप्लिकेशन को या तो तकनीक का उपयोग करके विकसित किया जा सकता है - यह एक विशेष अनुप्रयोग के लिए विकास को एक और बनाम एक तकनीक का चयन करना आसान बना सकता है और इसके विपरीत।

ASP.NET वेब फ़ॉर्म:

  • विकास राज्य • भ्रम है कि एक वेब अनुप्रयोग, जो उपयोगकर्ता कर रहा है के बारे में पता Windows अनुप्रयोग के समान है देता है समर्थन करता है। अर्थात। 'जादूगर' कार्यक्षमता को लागू करने के लिए थोड़ा आसान बनाता है। वेब फॉर्म डेवलपर से उस जटिलता को छिपाने में बहुत अच्छा काम करता है।
  • रैपिड एप्लिकेशन डेवलपमेंट (आरएडी) • केवल 'कूदें' और वेब फॉर्म वितरित करने की क्षमता। यह कुछ एमवीसी समुदाय द्वारा विवादित है, लेकिन माइक्रोसॉफ्ट द्वारा धक्का दिया गया है। अंत में, यह डेवलपर की विशेषज्ञता के स्तर पर आता है और वे किसके साथ सहज हैं। वेब फॉर्म मॉडल में शायद कम अनुभवी डेवलपर्स को सीखने की अवस्था कम होती है।
  • बड़ी नियंत्रण टूलबॉक्स • ASP.NET वेब प्रपत्र में एक बहुत बड़ी और अधिक मजबूत टूलबॉक्स (वेब ​​नियंत्रण) जबकि MVC एक अधिक आदिम नियंत्रण सेट jQuery (जावास्क्रिप्ट) के माध्यम से समृद्ध क्लाइंट साइड नियंत्रण पर अधिक निर्भर प्रदान करता है प्रदान करता है।
  • परिपक्व • यह 2002 से आसपास रहा है और प्रश्नों, समस्याओं आदि के संबंध में जानकारी की एक बहुतायत है। अधिक तृतीय पक्ष नियंत्रण प्रदान करता है - आपके मौजूदा टूलकिट पर विचार करने की आवश्यकता है।

ASP.NET MVC:

  • चिंताओं का पृथक्करण (SoC) • एक तकनीकी दृष्टिकोण से, MVC के भीतर कोड के संगठन, बहुत साफ, संगठित और बारीक है जिससे यह कार्यक्षमता के मामले में स्केल करने के लिए एक वेब अनुप्रयोग के लिए आसान (उम्मीद है)। एक विकास दृष्टिकोण से महान डिजाइन को बढ़ावा देता है।
  • क्लाइंट साइड टूल्स (समृद्ध यूजर इंटरफेस टूल्स) के साथ आसान एकीकरण • पहले से कहीं अधिक, वेब एप्लिकेशन आपके डेस्कटॉप पर देखे जाने वाले एप्लिकेशन के रूप में तेजी से समृद्ध हो रहे हैं। एमवीसी के साथ, यह आपको वेब फॉर्म की तुलना में अधिक आसानी और अधिक सहजता के साथ इस तरह के टूलकिट (जैसे jQuery) के साथ एकीकृत करने की क्षमता देता है।
  • खोज इंजन अनुकूलन (एसईओ) अनुकूल/स्टेटलेस • यूआरएल खोज करने के लिए इंजन (अधिक अनुकूल हैं यानी mywebapplication.com/users/ 1 - 1 बनाम mywebapplication/उपयोगकर्ताओं/getuser.aspx की आईडी के साथ उपयोगकर्ता को पुनः प्राप्त (आईडी सत्र में पारित))। इसी तरह, चूंकि एमवीसी स्टेटलेस है, इसलिए यह उन उपयोगकर्ताओं के सिरदर्द को हटा देता है जो एक ही विंडो (सत्र टकराव) से कई वेब ब्राउज़र उत्पन्न करते हैं। वही लाइनों के साथ, एमवीसी इसके खिलाफ 'लड़ाकू' की बजाए स्टेटलेस वेब प्रोटोकॉल का पालन करता है।
  • उन डेवलपर्स के साथ अच्छी तरह से काम करता है जिन्हें उच्च स्तर की नियंत्रण की आवश्यकता होती है • एएसपी.नेट वेब फॉर्म स्वचालित रूप से आपके द्वारा देखे जाने वाले कच्चे HTML का अधिकतर उत्पाद उत्पन्न करते हैं। इससे डेवलपर्स के लिए सिरदर्द हो सकता है। एमवीसी के साथ, आपके पास जो कुछ भी प्रदान किया जाता है उस पर पूर्ण नियंत्रण होता है और इसमें कोई आश्चर्य नहीं होता है। इससे भी महत्वपूर्ण बात यह है कि एचटीएमएल रूप आमतौर पर वेब रूपों से बहुत छोटे होते हैं जो प्रदर्शन को बढ़ावा देने के समान हो सकते हैं - गंभीरता से विचार करने के लिए कुछ।
  • टेस्ट ड्राइव डेवलपमेंट (टीडीडी) • एमवीसी के साथ, आप आसानी से चीजों के वेब पक्ष के लिए परीक्षण बना सकते हैं। परीक्षण की एक अतिरिक्त परत अप्रत्याशित व्यवहार के खिलाफ रक्षा की एक और परत प्रदान करेगी।

प्रमाणीकरण, प्राधिकरण, विन्यास, संकलन और तैनाती सभी सुविधाओं है कि दो वेब चौखटे के बीच साझा कर रहे हैं।

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