2008-09-10 12 views
15

मैं हाल ही में विभिन्न प्रकार के मॉडल व्यू आर्किटेक्चर में जांच कर रहा हूं, और यह तय करने की आवश्यकता है कि भविष्य में घर के विकास के लिए कौन सा पीछा करना है। चूंकि मैं वर्तमान में एक माइक्रोसॉफ्ट की दुकान में काम कर रहा हूं जिसमें एएसपी.नेट कौशल है, ऐसा लगता है कि मेरे विकल्प एएसपी.नेट एमवीसी और डब्ल्यूसीएसएफ के बीच हैं (मोनोरेल संभवतः माइक्रोसॉफ्ट द्वारा समर्थित नहीं है)।एएसपी.नेट एमवीसी बनाम वेब क्लाइंट सॉफ्टवेयर फैक्ट्री (डब्ल्यूसीएसएफ)

  • ASP.NET MVC, वेब नियंत्रण है कि Postbacks पर भरोसा उपयोग नहीं कर सकते, जबकि WCSF कर सकते हैं:

    the ASP.NET MVC framework, using the WCSF as a yardstick पढ़ने के बाद, मैं निम्नलिखित बातों का चुनाव किया।

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

कुछ अन्य विचार क्या हैं?
मुझे क्या गलत समझा गया है?
क्या वहां कोई है जो दोनों ढांचे का उपयोग करता है और सलाह भी है?

उत्तर

15

एएसपी.नेट एमवीसी वेब नियंत्रणों का उपयोग नहीं कर सकता जो पोस्टबैक पर भरोसा करते हैं, जबकि डब्ल्यूसीएसएफ कर सकते हैं।

आप कैसे मौजूदा WebForms बुनियादी सुविधाओं का उपयोग करने, विशेष रूप से मॉडल-व्यू-प्रस्तुतकर्ता शुरू चिंताओं की जुदाई क्रियान्वयन पर बल देते के बारे में मार्गदर्शन के रूप में WCSF की सोचना चाहिए। यह परिणामी कोड की टेस्टेबिलिटी भी बढ़ाता है।

डब्लूसीएसएफ साइट के विपरीत एएसपी.नेट एमवीसी साइट में यूआरएल पर आपका अधिक नियंत्रण है।

यदि आप 3.5 एसपी 1 लक्षित कर सकते हैं, तो आप पारंपरिक वेबफॉर्म साइट के साथ नई रूटिंग सिस्टम का उपयोग कर सकते हैं। रूटिंग एमवीसी तक ही सीमित नहीं है। उदाहरण के लिए, डायनामिक डेटा पर एक नज़र डालें (जो 3.5 एसपी 1 में भी जहाज)।

एक एएसपी.नेट एमवीसी साइट शायद समकक्ष WCSF संस्करण की तुलना में परीक्षण करना आसान हो जाएगा।

यह सच है क्योंकि यह HttpContext, HttpRequest, HttpResponse के लिए नए कपोल-कल्पना कक्षाओं का उपयोग करता है, आदि वहाँ एमवीपी पैटर्न से MVC पैटर्न के बारे में स्वाभाविक अधिक परीक्षण योग्य कुछ भी नहीं है है। वे "पृथक प्रस्तुति" दोनों उदाहरण हैं, और दोनों टेस्टेबिलिटी बढ़ाते हैं।

ऐसा लगता है कि WCSF अभी भी कुछ परिस्थितियों में यूआई घटनाओं को नियंत्रित करने के लिए कोड का उपयोग करता है, लेकिन एएसपी.नेट इसकी अनुमति नहीं देता है।

मॉडल-व्यू-प्रेजेंटर में, क्योंकि बाहरी दुनिया दृश्यों के साथ बातचीत करती है (यानी, URL दृश्य को इंगित करता है), विचार स्वाभाविक रूप से इन घटनाओं का जवाब देंगे। उन्हें प्रस्तुतकर्ता को कॉल करके या प्रस्तुतकर्ताओं की पेशकश करके जितना संभव हो उतना सरल होना चाहिए।

मॉडल-व्यू-कंट्रोलर बाहरी सीमा को नियंत्रकों के साथ बातचीत करके इस सीमा को खत्म करता है। इसका मतलब है कि आपके विचार गैर प्रस्तुति चीजों के बारे में बहुत कुछ "डंबर" हो सकते हैं।

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

0

नॉर्थविंड दोनों को क्यों न संलग्न करें और देखें कि आपके और आपकी स्थिति के लिए कौन सा फिट बैठता है?

1

आप अपने डेवलपर्स की पृष्ठभूमि पर भी विचार कर सकते हैं (यदि कोई पहले ही पहचाना जा चुका है)।

यदि वे सख्त एएसपीनेट पृष्ठभूमि से आते हैं, तो वे डब्लूसीएसएफ के आसपास अधिक आरामदायक होंगे (हालांकि मेरे अनुभव में, यह वास्तव में एमवीपी के आसपास आरामदायक होने के लिए उन्हें कुछ सप्ताह लग गए)।

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

2

हमने वही मूल्यांकन करने के बाद डब्लूसीएसएफ का चयन किया। हमने महसूस किया कि एमवीपी पैटर्न ने हमें और विकल्प दिए हैं i.e सर्वर नियंत्रणों का उपयोग करने की क्षमता। हमारी विकास टीम ज्यादातर विषयों के कई प्रकार से प्रोग्रामर से बना है I.e सी ++, बिज़टकॉक और वेब इत्यादि। लेकिन ज्यादातर एमएस प्रकार के विकास पर केंद्रित थे, इसलिए पैटर्न को अपनाने में सीखने की अवस्था हमारी टीम के लिए बहुत अधिक नहीं थी।

हम अपनी पसंद से खुश हैं।

+0

आप अभी भी इस फैसले से खुश हैं? ऐसा लगता है कि डब्ल्यूसीएसएफ को एमएस द्वारा चरणबद्ध किया गया है जबकि एमवीसी अधिक लोकप्रिय हो रहा है। धन्यवाद। –

6

लौ युद्ध शुरू नहीं करना है, लेकिन मुझे डब्लूसीएसएफ को काफी मजबूत माना गया। एमवीसी की लालित्य और सादगी एमवीपी को उड़ाती है जो एक पैटर्न की तरह महसूस करती है जो सिर्फ वेबफॉर्म पर बनाई गई है।

1

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

1

एक ASP.NET MVC साइट शायद एक बराबर WCSF संस्करण की तुलना में परीक्षण करने के लिए आसान हो जाएगा।

यह सच है क्योंकि यह HttpContext, HttpRequest, HttpResponse के लिए नए कपोल-कल्पना कक्षाओं का उपयोग करता है, आदि कुछ भी नहीं एमवीपी पैटर्न से MVC पैटर्न के बारे में स्वाभाविक अधिक परीक्षण योग्य नहीं है है। वे "पृथक प्रस्तुति" दोनों उदाहरण हैं, और दोनों टेस्टेबिलिटी बढ़ाते हैं।

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

http://martinfowler.com/eaaDev/uiArchs.html

http://martinfowler.com/eaaDev/SupervisingPresenter.html

http://martinfowler.com/eaaDev/PassiveScreen.html

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