2010-12-07 17 views
9

मेरी कंपनी भविष्य के विकास को आगे बढ़ाने के बारे में एक सूचित निर्णय लेने की कोशिश कर रही है।एएसपी.नेट एमवीपी बनाम एएसपी.नेट एमवीसी

हमने वेब अनुप्रयोग होने के लिए हमारे भविष्य के आंतरिक और बाहरी अनुप्रयोगों को कम कर दिया है। लेकिन हम अभी भी उस बिंदु से थोड़ा उलझन में हैं।

यहां शेयरपॉइंट के लिए बड़ी मात्रा में समर्थन है। जैसा कि मैं इसे समझता हूं, शेयरपॉइंट मूल रूप से एमवीपी का उपयोग कर एएसपी.नेट है।

अन्य नए एमवीसी शैली का उपयोग कर सामान्य एएसपी.नेट का उपयोग करना चाहते हैं।

मुझे यह भी बताया गया है कि ये आसानी से एक साथ अच्छी तरह से खेल नहीं सकते हैं।

यह शेयरपॉइंट (और एएसपी.नेट एमवीपी) की तरह दिख रहा है विजेता होने जा रहा है। हम उस दिशा में जाने से पहले, मैं पूछना चाहता था:

यदि हम शेयरपॉइंट (यानी एएसपी.नेट और एमवीपी) के हमारे विकास प्रयासों के अगले 5-10 वर्षों का आधार चुनना चुनते हैं तो हम क्या छोड़ रहे हैं? और क्या यह एक बड़ा सौदा है या सिर्फ कुछ "छिपाने के लिए अच्छा" है कि हम हार रहे हैं।

(यह एक काफी बड़ी बात प्रबंधन अब दिशा बदलने के लिए प्राप्त करने के लिए होना चाहिए था।)

+0

WCSF माइक्रोसॉफ्ट के एमवीपी नहीं है? –

+6

शेयरपॉइंट एएसपी.Net एमवीपी नहीं है। इसकी तुलना एमवीसी से नहीं की जा सकती है। विकिपीडिया से: 'माइक्रोसॉफ्ट शेयरपॉइंट एक वेब तकनीक आधारित सर्वर है जिसका उपयोग पोर्टल, सहयोग साइट्स और कंटेंट मैनेजमेंट साइट्स बनाने के लिए भी किया जा सकता है। यह कई सुविधाओं में बहुत बहुमुखी है और विभिन्न उद्यम और वेब परिदृश्यों का समर्थन करता है। यह दस्तावेज़ प्रबंधन समाधान ' – jgauffin

+0

@Yuriy हां वेब क्लाइंट सॉफ्टवेयर फैक्ट्री के लिए भी लोकप्रिय है एमवीपी का एमएस कार्यान्वयन था। इसके साथ काम करना बहुत भारी है, और इसके साथ मेरा आखिरी अनुभव था (लगभग .NET 3.0 और नहीं, मेरा मतलब 3.5 नहीं है) इस परियोजना ने भी काम नहीं किया है, जिसमें बस बुनियादी आईओसी रिज़ॉल्यूशन विफलताओं का सामना करना पड़ रहा है मानक एमवीपी पेज। यही कारण है कि मुझे अपना एमवीपी फ्रेमवर्क –

उत्तर

11

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

2

मैं सॉफ्टवेयर में निर्मित कंसर्न (एसओसी) के पृथक्करण का एक मजबूत समर्थक रहा हूं चाहे आप एमवीवीएम, एमवीसी या एमवीपी का उपयोग कर रहे हों, सभी तीन पैटर्न काफी अच्छे हैं। यह एएसपी.नेट के लिए पूरी तरह से विशिष्ट है, मैं कहूंगा कि आपको एमवीसी 3 का उपयोग करना चाहिए।

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

webforms से मुख्य त्रुटियों ViewState समय बाहर सामान्य क्रिप्टोग्राफिक अपवाद में जिसके परिणामस्वरूप के साथ हो और 2 जहां ViewState सिर्फ ग्राहक द्वारा काट दिया गया है या किसी भी तरह वैध क्रिप्टोग्राफिक त्रुटियों में जिसके परिणामस्वरूप पोस्ट है। एमवीसी के साथ ये त्रुटियां अभी लागू नहीं हैं। .NET4 के साथ मैंने .NET4 में जोड़े गए नए फीचर्स के साथ व्यूस्टेट के बिना वेबफॉर्म एप्लिकेशन बनाने का प्रयास किया और यह पूरी तरह से काम नहीं किया जो कि वेबफॉर्म का समय बीत चुका है।

एमवीसी, एमवीसी 2 और एमवीसी 3 के बाहर एमवीसी 3 और रेजर व्यू-इंजन के साथ आता है जो फीचर सेट सबसे मजबूत है। आपको एमवीसी 2 के साथ आने वाले सभी एन्हांसमेंट मिलते हैं जो रेजर व्यू इंजन आपको बनाने की सुविधा देता है, इसके शीर्ष पर आपको ग्लोबल एक्शन फ़िल्टर और बेक्ड jQuery क्लाइंट साइड टेम्पलेटिंग (मैं 90% सुनिश्चित हूं) प्राप्त करता हूं।

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

+2

स्पार्क व्यू इंजन आज़माएं। जैसा कि वे होना चाहिए। – jgauffin

+1

मैं रेजर का उपयोग करना चाहता हूं और पूर्ण वाक्यविन्यास हाइलाइटिंग/इंटेलिजेंस प्राप्त करूंगा। –

+0

vstudio2010 के लिए उपलब्ध वाक्यविन्यास हाइलाइटर/इंटेलिजेंस स्थापित करने का प्रयास किया? – jgauffin

9

मैं कहूंगा कि आप क्या चुनते हैं आपके डेवलपर्स कौन हैं, और किस प्रकार के ऐप्स बनाने का इरादा रखते हैं, इस पर निर्भर करता है।

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

आप काफी हद तक "वेब" क्लाइंट साइड कार्यक्षमता के बहुत सारे के साथ शैली क्षुधा का निर्माण करते हैं, तो MVC एक बेहतर विकल्प है।

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

आप जटिल अंतर सम्बन्ध के साथ बहुत डेटा केंद्रित अनुप्रयोगों के निर्माण कर रहे हैं, तो MVC एक बेहतर विकल्प हो सकता है।

कारणों से आप एक या अन्य विकल्प चुन सकता है की बहुत सारी हैं, और यह हमेशा "उस पर निर्भर ..."।

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

+0

FWIW: मैं व्यक्तिगत रूप से कुछ परियोजना पर शेयरप्वाइंट में MVC एकीकृत करने के लिए है कि यह संभव बना दिया मुझे एक अत्यधिक विकसित करने के लिए कर रहा था एक आधुनिक और बेहतर तरीके से एक ग्राहक के लिए अनुकूलित यूआई। –

+0

@ChrisMarisic वांछित हूँ के साथ –

0

मेरे अनुभव से, एक जोरदार लागू किया एमवीपी पैटर्न अधिक डेटा केंद्रित जटिल LOB अनुप्रयोगों के लिए बेहतर किया गया है। के रूप में अपने प्रस्तुतकर्ताओं वेब केंद्रित अवधारणाओं का कोई ज्ञान है

एमवीपी अधिक से अधिक जुदाई प्रदान करता है। कोड कवरेज भी बढ़ गया है क्योंकि आपके विचारों में कोई सशर्त कोड नहीं है। हमारे पास कई ऐप्स हैं जहां प्रेजेंटर का उपयोग वेब और विंडोज ऐप्स दोनों के बीच किया जाता है। आप दृश्य की एक पूरी अमूर्त को referes प्रस्तोता, asp.net MVC (HttpContextBase आदि)

सभी ने कहा कि आप वेब प्रपत्रों में इस डिजाइन करने के लिए की जरूरत को देखने के आश्रितों की कपोल-कल्पना पर निर्भर करता है, अपने नहीं बॉक्स से बाहर, लेकिन यदि आप इसे पहली बार सही करते हैं और डेवलपर हैं जो इसे समझते हैं और इसके साथ चिपके रहते हैं तो आप एक बहुत ही साफ समाधान के साथ समाप्त होते हैं। डॉट कॉम webformsmvp रूप में अच्छी तरह

http://www.codeguru.com/csharp/.net/net_general/patterns/article.php/c15173

:

वहाँ कुछ ठोस चौखटे webforms में एमवीपी समर्थन करने के लिए कर रहे हैं।

2

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

आप वेब अनुप्रयोगों का निर्माण कर रहे है और भारी पेज अद्यतन के लिए अजाक्स का उपयोग, इस तरह के jQuery के रूप में एक या अधिक वेब दृश्यों और एक क्रॉस-ब्राउज़र JavaScript लाइब्रेरी के साथ, मैं MVC की सिफारिश करेंगे।

तो यह नीचे आता है कि आप पृष्ठ की घटनाओं को कैसे संभालना चाहते हैं। एमवीपी & एमवीसी दोनों चिंताओं को अलग करते हैं।एमवीपी अधिक सर्वर आधारित है और कई UI जोड़ने के लिए आसान है और एमवीसी अधिक ग्राहक आधारित है, ईवेंट हैंडलिंग और अधिक वेब केंद्रित के लिए।

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