2009-08-04 8 views
7

मैं कई स्तरों पर एएसपी.नेट एमवीसी क्या कर रहा हूं, इसका एक बड़ा प्रशंसक हूं।एएसपी.नेट एमवीसी क्या अच्छा नहीं है?

मैं एक बहुत ही तस्करी वेबसाइट के पुन: निर्माण में भाग लेने वाला हूं, और मैं नहीं हूं कि कौन सा ढांचा सर्वश्रेष्ठ होगा (यदि कोई हो)।

साइट की आवश्यकता होगी निम्नलिखित:

  • जावास्क्रिप्ट-भारी, उच्च सहभागी पृष्ठों का समर्थन करने के लिए
  • लेकिन एक ही समय में, खोज इंजन के लिए अंतर्निहित सिमेंटिक HTML प्रदान
  • समर्थन कई भाषाओं
  • skinnable
  • भागीदारों के लिए एक विश्वसनीय वेब-सेवा API का पर्दाफाश करें

जहां तक ​​मैं कह सकता हूं, इसके लिए एएसपी.नेट एमवीसी का उपयोग न करने का कोई कारण नहीं है।

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

लेकिन क्या एमवीसी का उपयोग करने के लिए संभावित कमीएं हैं जिन्हें मैंने नहीं माना है?

मैं ऐसे व्यक्ति बनना नहीं चाहता जो तकनीक चुनता है क्योंकि यह अच्छा है लेकिन बाद में ट्रैक को पाता है कि यह नौकरी के लिए बहुत उपयुक्त नहीं है।

उत्तर

11

एएसपी.नेट एमवीसी अच्छा नहीं है जब आपका पूरा काम एक वेबसाइट बना रहा है जिसके लिए सर्वर-साइड कोड की आवश्यकता है (लेकिन यह भी एएसपी.नेट के बारे में भी सच है)।

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

आपके पुनर्निर्माण पर शुभकामनाएँ!

+0

प्लस वन इसके लिए एक! :); –

6

एमवीसी के साथ जाने के लिए आप अच्छे हैं जो आपने अपनी परियोजना के बारे में कहा है।

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

0

मैं ऐसा निम्न कारणों से ASP.NET MVC पसंद नहीं:

1. बदसूरत मार्ग एपीआई, वहाँ http://ayende.com/Blog/archive/2008/11/05/a-case-study-of-bad-api-design-asp.net-mvc-routing.aspx क्या गलत है का वर्णन है। वैसे, अनुकूल यूआरएल आसानी से MVC http://demo.liveui.net/bugtracker/Tasks/7

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

3. नियंत्रण की कमी। कुछ विशेषताओं (जैसे ट्री व्यू या मेनू) पहले से ही नियंत्रण के रूप में कार्यान्वित किए गए हैं और एमवीसी का उपयोग करके उन्हें फिर से लागू करने के लिए समय बर्बाद हो जाएगा।

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

प्रतिक्रियाओं के लिए: हाँ। मुझे एएसपी.NET नियंत्रण नुकसान के बारे में पता है, लेकिन सवाल एएसपी.नेट एमवीसी के बारे में है। कोई भी अच्छा क्या है और एएसपी.नेट में क्या बुरा है, इस बारे में एक किताब लिख सकती है लेकिन मुझे नहीं लगता कि यह यहां चर्चा करने के लिए उचित है।

+2

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

+1

मैं अपने बिंदु से सहमत हूं कि रूटिंग इंजन में सुधार किया जा सकता है। पुनः उपयोगिता के बारे में, यह सच है कि आप क्लासिक एएसपी.NET नियंत्रणों का उपयोग नहीं कर सकते हैं, हालांकि आप एएसपी.नेट एमवीसी में jQuery/जावास्क्रिप्ट घटकों का अधिक आसानी से उपयोग कर सकते हैं, जबकि स्वच्छ, अर्थपूर्ण मार्कअप बनाए रखते हैं। – Jonathan

+3

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

3

मेरे दो सेंट:

ASP.NET MVC एक बढ़िया विकल्प है लेकिन वहाँ एक छोटे से सीखने की अवस्था शामिल है, इसलिए सुनिश्चित करें कि आपके प्रोजेक्ट योजना/समय इस संभाला है बनाते हैं। आपकी टीम पर ऐसे डेवलपर्स हो सकते हैं जो शायद एएसपी.नेट एमवीसी के साथ काम करने में सहज न हों, और इससे संभावित देरी हो सकती है (बहुत सारे डेवलपर्स अभी भी एएसपी.नेट 1.1 में काम कर रहे हैं!)।

@Alex: नियंत्रण की कमी। कुछ विशेषताओं (जैसे ट्री व्यू या मेनू) पहले से ही नियंत्रण के रूप में कार्यान्वित किए गए हैं और एमवीसी का उपयोग करके उन्हें फिर से लागू करने के लिए समय बर्बाद हो जाएगा।

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

अंत में, एएसपी.नेट एमवीसी एक विकल्प है, वेब फॉर्म के प्रतिस्थापन नहीं। मैं एएसपी.नेट एमवीसी का उपयोग नहीं करता क्योंकि यह अभी भी विकसित हो रहा है, और मेरी टीम इसके साथ बहुत सहज नहीं है, लेकिन मुझे लगता है कि धीरे-धीरे अधिक से अधिक प्रोग्रामर इस (बेहतर) विकल्प में स्थानांतरित हो जाएंगे।

0

एएसपीनेट एमवीसी का उपयोग किए बिना एमवीसी को लागू करने के बेहतर तरीके हैं। एएसपीनेट एमवीसी लाइव आने से पहले भी मैंने इसे अतीत में किया है। एमवीसी एक पैटर्न है, एक तकनीक नहीं, मुझे समझ में नहीं आता क्यों कुछ लोग इसे एक प्रौद्योगिकी कहते हैं। आप वेबफॉर्म से कोड-बैक को हटाकर और अपने स्वयं के नियंत्रक और राउटर बनाकर सभी चिंताओं को अलग कर सकते हैं और आपको अभी भी वेबफॉर्म नियंत्रण का लाभ मिलेगा, जिसमें अधिकांश एएसपीनेट डेवलपर्स का उपयोग करने के लिए उपयोग किया जाता है। एएसपीएनटी एमवीसी उन लोगों के लिए अच्छा है जिनके पास वास्तव में एक वेबफॉर्म वातावरण में एमवीसी ऐप बनाने का समय नहीं है और जिनके पास बेहतर समाधान करने के लिए समय नहीं है। conlcusion में, asp.net mvc अच्छा है लेकिन ऐसा करने का एक बेहतर तरीका है और अंत में, एमवीसी एक तकनीक नहीं है।

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