2009-07-25 19 views
9

मैंने यहां कई अन्य पोस्ट पढ़ी हैं, इसलिए मुझे समर्थक बनाम विपक्ष पर विचार मिलता है, विशेष रूप से प्रस्तुत एचटीएमएल कोड आदि (एमवीसी में) पर पूर्ण नियंत्रण रखना।एएसपी.नेट एमवीसी बनाम वेबफॉर्म: वेबफॉर्म नियंत्रण को बदलना

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

मैं समझता हूं कि यह सुविधा हमें अंतिम एचटीएमएल पर पूर्ण नियंत्रण प्राप्त करती है, लेकिन क्या यह यूआई बिट खुद को करने के लिए प्रति-उत्पादक नहीं है। अगर उन्हें खुद लिखना इतना आसान था, तो ये 3-पार्टी पार्टी विक्रेता अब कैसे रह रहे हैं। हम इन सभी वर्षों को वेबफॉर्म के दिनों के दौरान अपने आप सब कुछ कर सकते थे।

मुझे यकीन है कि मुझे यहां कुछ याद आ रहा है या थोड़ा बेवकूफ है, लेकिन कृपया मुझे बताएं कि यूआई बिट के बारे में खुद को लिखे जाने के संबंध में मुझे क्या याद आ रहा है।

सिर्फ इसलिए कि मुझे आईएल कोड में लिखकर कार्यक्रम पर पूरा नियंत्रण मिलता है, क्या हम जाते हैं और करते हैं? हम अभी भी सी # और इस तरह की चीजों का उपयोग करते हैं - तो "एचटीएमएल पर पूर्ण नियंत्रण रखने" का सिद्धांत - मुझे उस विचार में खरीदा नहीं गया है।

कृपया इस यूआई बिट के आसपास अपना सिर प्राप्त करने में मदद करें। अन्य चीजें जो मैं समझता हूं, चिंताओं को अलग करने के बारे में, टीडीडी आधारित विकास एमवीसी आदि के साथ संभव है लेकिन मैं अपने आप से यूआई नियंत्रण लिखने के आसपास क्यों जाऊं - यह थोड़ा सा काम नहीं है?

+0

अगर मेरी पोस्ट डुप्लिकेट है तो मैं क्षमा चाहता हूं।यदि आप मुझे इस सटीक बिंदु पर किसी अन्य पोस्ट पर इंगित कर सकते हैं (यूआई बिट पर मैं चिंतित हूं), तो मैं यहां से इस पोस्ट को भी कोशिश और हटा दूंगा। धन्यवाद। –

+0

सोम्बॉडी ने कुछ सेकंड पहले टिप्पणी की थी कि मेरी पोस्ट एक डुप्लिकेट थी, और मैंने इसे एक टिप्पणी के रूप में उत्तर दिया, लेकिन उस अन्य व्यक्ति ने स्पष्ट रूप से अपनी टिप्पणियां हटा दी हैं :-) –

+0

मैं वह था। उस पोस्ट को दोबारा पढ़ें और यह स्वीकार करना होगा कि यह एक सटीक डुप्लिकेट नहीं है। वैसे भी - मैं इस "एएसपी.नेट एमवीसी बनाम वेबफॉर्म" चीज से बीमार हूं। यह "PHP बनाम RoR" से भी बदतर हो रहा है। : डी –

उत्तर

2

समस्या है पर एक नया शेख़ी है, ASP.NET MVC ASP.NET की तुलना में बहुत छोटा उत्पाद है। कई सालों से तीसरी पार्टी कंपनियां पुन: प्रयोज्य घटकों के टन विकसित कर रही हैं, और मेरा मानना ​​है कि एएसपी.नेट एमवीसी के लिए नियंत्रण के तुलनीय सेट उपलब्ध होने से पहले ही समय की बात है।

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

1

मेरा मानना ​​है कि यूआई और उपयोगकर्ता अनुभव वेब ऐप की सफलता के लिए महत्वपूर्ण हैं। पेज को सहज और उपयोग करने में आसान बनाना, नौकरी पाने के लिए उपयोगकर्ता को नेविगेशन की मात्रा को कम करना, और प्रभावी प्रतिक्रिया और अंतःक्रियाशीलता प्रदान करना, उस साइट के बीच सभी अंतर कर सकता है, जिसे उपयोगकर्ता उपयोग करना चाहते हैं और जो वे बचते हैं।

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

यदि आप पूरे दिन सैकड़ों या हजारों कर्मचारियों द्वारा उपयोग किए जाने वाले इंट्रानेट ऐप लिख रहे हैं - जैसा कि मैं ज्यादातर करता हूं - UI को कुशल और उपयोग करने में आसान बनाने का वास्तव में आपके उपयोगकर्ताओं के लिए बहुत कुछ है।

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

11

बात है:

आप वेब विकास में महारत हासिल करने के चाहते हैं तो आप HTML + सीएसएस + जावास्क्रिप्ट

और WebForms आप WebForms तरीका यह करने के लिए सीखने की आवश्यकता के साथ में महारत हासिल करने के लिए है, लेकिन एमवीसी के साथ आपके पास एचटीएमएल + सीएसएस + जावास्क्रिप्ट जेनरेट करने की आजादी के साथ नेट की शक्ति है।

+0

एडुआर्डो, एक ही शक्ति (अपना एचटीएमएल जेनरेट करने के लिए) आपके पास वेबफॉर्म भी हैं। – user134706

+6

एएसपीनेट नियंत्रण कमजोर अबास्ट्रक्शन हैं जो सरल अनुप्रयोगों को आसान बनाने के लिए पर्याप्त जटिलता को छुपाते हैं, लेकिन जब आपको ऑफ़र करने से अधिक करने की आवश्यकता होती है तो आप एक बहुत सीधी सीखने की वक्र का सामना कर सकते हैं। – Will

+0

यह ड्रैग और ड्रॉप डेवलपर्स के लिए परमाणु हथियार है। ज्ञान की कमी टैग सूप के बारे में प्रश्न पूछती है और क्लासिक एएसपी पर अनुचित तकनीक नहीं जाती है। –

0

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

कोई भी आपको एमवीसी सीखने के लिए नहीं कह रहा है। कोई भी आपको वेबफॉर्म का उपयोग न करने के लिए कह रहा है। हालांकि, शिकायत करते हुए कि आपको एक कच्चे यूआई लिखना है, आपको इस उद्योग में बहुत दूर नहीं जा रहा है। आपको हर दिन कुछ नया सीखना चाहिए ... और ऐसा लगता है कि एचटीएमएल और सीएसएस पर बिताए गए कुछ समय आपके फोकस को शुरू करने के लिए एक महान जगह होगी!

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

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

+0

निश्चित रूप से, धन्यवाद। मैं JQuery, JQ UI से समर्थन के साथ HTML + CSS + JS सीखने के लिए तैयार हूं :-) बस सोचा कि मैं यह पुष्टि करने के लिए कहूंगा कि "यह मेरा होने वाला है" जो यूआई कोड लिखेंगे, बस अगर मुझे कुछ याद आए वहां इंगित करें; -) ... मैं अपनी टीम में मूर्ख की तरह दिखने के लिए तैयार नहीं हूं, जबकि दूसरे कहेंगे "क्या तुम पागल हो? तुम खुद को मूर्ख क्यों लिख रहे हो?" :-) बस वहां स्पष्ट होना चाहता था, और ऐसी स्थिति से बचें। धन्यवाद। –

+0

असल में - क्लाइंट कोड के साथ अक्सर छोटे किक बहुत कुछ कर सकते हैं। –

0

मैं सोच रहा हूं - एएसपीनेट एमवीसी में वेबफॉर्म से 'नियंत्रण' के बराबर क्या है? यह निश्चित रूप से आंशिक दृश्य नहीं है। यह और क्या हो सकता है? आंशिक अनुरोधों के माध्यम से नियंत्रक + आंशिक विचार?

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

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

+0

हमें वास्तव में "थोड़ा बेहतर" डेवलपर्स की आवश्यकता नहीं है। हमें केवल ओले के डेवलपर्स की ज़रूरत है जो जानता था कि फैंसी विजेट्री और टूल सेट के गुच्छा की आवश्यकता के बजाय नोटपैड में चीजें कैसे करें! नोटपैड आपको अपने पेशे को जानने के लिए मजबूर करता है ... न केवल आपको लगता है कि आप अपने पेशे को जानते हैं। यदि आप एक वेब डेवलपर हैं ... और आप कच्चे एचटीएमएल, जावास्क्रिप्ट, सीएसएस इत्यादि में काम नहीं कर सकते हैं तो आप वास्तव में अभी तक एक वेब डेवलपर नहीं हैं। आप वास्तव में अभी भी एक स्क्रिप्ट किड्डी हैं जो dreamweaver या विजुअल स्टूडियो पर निर्भरता के साथ हैं। कोई चिंता नहीं ... हम सब वहाँ शुरू हो गए! मुझे पता है मैंने किया था! –

+0

उन्हें जो कुछ भी आपको पसंद है उसे बुलाओ। विचार बनी हुई है। –

+0

@Andrew: मैंने नोटपैड, एचटीएमएल, सीएसएस, जावास्क्रिप्ट, क्लासिक एएसपी में शुरू किया। और वेबफॉर्म पर चले गए। क्या मैं वास्तव में नोटपैड पर वापस जाना चाहता हूं? नहीं धन्यवाद: डी – joedotnot

1

मैंने हाल ही में एएसपी.NET + हस्तनिर्मित जावास्क्रिप्ट का उपयोग एमवीसी + jQuery पर एक जटिल वेबसाइट को दोहराया। कोड की जटिलता 50% -75% कम हो गई और यह अधिक परीक्षण योग्य बन गया। मैंने उन सभी जटिल वेबcontrolओं को प्रतिस्थापित किया जो मुझे लिखना था (एक सीधी सीखने की वक्र के साथ जिसे मुझे दूर करना था) बहुत सरल एचटीएमएल हेल्पर विधियों के साथ।

जब आप कस्टम वेबcontrol का उपयोग करते हैं, तो भूलें, आपको नियंत्रण डेवलपर द्वारा एक बहुत ही स्थिर यूआई दिया जाता है। कच्चे एचटीएमएल के साथ, आप पूरे वेब उद्योग द्वारा विकसित शैलियों और ui का लाभ उठा सकते हैं।

बढ़ी सादगी, विकास समय, टेस्टेबिलिटी, यूआई में लचीलापन में कमी आई ... मैं वापस नहीं जाना चाहता।

+2

यदि आपको नियंत्रण लिखा गया था तो आपको एक स्थिर यूआई दिया जाता है।ऐसा कोई कारण नहीं है कि "पूरे वेब उद्योग द्वारा विकसित शैलियों और यूआई" को वेब नियंत्रण में encapsulated नहीं किया जा सका। –

+0

यह समझने के लिए कि मैं किस बारे में बात कर रहा हूं, यह देखने के लिए कि कैसे ASP.NET नियंत्रण साइड-बाय-साइड सामग्री प्रस्तुत करते हैं और यह सब कैसे करता है। चूंकि नियंत्रण लेखकों ने एचटीएमएल को पत्थर में सेट किया है, इसलिए आप आमतौर पर सामान्य लेआउट और शैलियों का आसानी से उपयोग नहीं कर सकते हैं; आपको अपने वेब नियंत्रणों के साथ उपयोग करने के लिए शैलियों को अनुकूलित करने के लिए कड़ी मेहनत करनी है (उदा। नियंत्रण एडाप्टर)। – Will

+0

, वेबफॉर्म आपको टेम्पलेट करने योग्य वेबकंट्रोल बनाने की अनुमति देता है (तथ्य यह है कि आप ITemplate गुण बनाते हैं) जो इंटीग्रेटर को वह कस्टम HTML लिखने की क्षमता देता है जो वह चाहता है। डेवलपर एचटीएमएल की एक पंक्ति लिखने के बिना वेब नियंत्रणों का बहुत जटिल सेट बना सकता है। –

1

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

+0

निश्चित रूप से - जब तक वे व्यूस्टेट का उपयोग नहीं करते हैं तब तक आप हमेशा नियंत्रण/उपयोग करने में सक्षम होंगे। लेकिन क्या यह नहीं है कि ज्यादातर मामलों में उन्हें योग्य और खिड़कियों के रूप में क्या बनाया जाता है? –

0

आपको एमवीसी से कुछ और के साथ वेबफॉर्म नियंत्रण को प्रतिस्थापित करने की आवश्यकता नहीं है। बस उन्हें मिलाएं - http://www.hanselman.com/blog/PlugInHybridsASPNETWebFormsAndASPMVCAndASPNETDynamicDataSideBySide.aspx

+0

हाँ, लेकिन एमवीसी में कोई नियंत्रण नहीं है। इनकार नहीं कर सकते हैं। :) –

1

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

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

सारांश में, मुझे लगता है कि इस प्राकृतिक वेब

+0

यह एक अच्छा मुद्दा है। डेवलपर्स महत्वपूर्ण हैं और तकनीक का उपयोग नहीं करते हैं। –

0

खैर के लिए डेस्कटॉप से ​​कई डेवलपर्स के विकास के बारे में है, मैं भी सोच रहा था कि कैसे ASP.NET MVC में 3 पार्टी नियंत्रण का उपयोग करने के लिए। जाहिर है, और यहां कुछ उत्तरों के विपरीत, यह संभव होना था।

प्रश्न पूछने के बाद से जितना समय बीत चुका है, उद्योग विकसित हुआ है। इसलिए मैंने खोज और पाया है (लेकिन अभी तक परीक्षण किया गया है) समाधान जैसे Telerik Extensions for ASP.NET MVC

मैं यहाँ इस उत्तर पोस्ट कर रहा हूँ मुख्य रूप से अपने आप को जैसे अन्य MVC newbees समर्थन करने के लिए - बस गूगल

"asp.net MVC के" नियंत्रित करता है

1

मैं एक के लिए, कि बहुत आभारी हूँ आप एमवीसी में एएसपी.NET नियंत्रणों का उपयोग नहीं कर सकते हैं।

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

अच्छी खबर यह है कि आपकी मदद करने के लिए बहुत शक्तिशाली jQuery टूल लिखे गए हैं। jQgrid एक महान ग्रिड प्रतिस्थापन कि ASP.NET ग्रिड से रास्ता अधिक करता है ...

http://www.trirand.com/blog/

jsTree एक treeview कि शानदार है। jQuery के साथ फिर से ....

http://www.jstree.com/

और सच्चाई यह है कि सबसे बातें आप उस्तरा, HTML, जावास्क्रिप्ट और सीएसएस के साथ कर सकते है। यह इतना आसान है कि यह सिर्फ बेवकूफ है।

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

और एमवीसी के साथ वेब फॉर्म मिश्रण न करें। आप इसे कर सकते हैं, लेकिन आप चाहेंगे कि आपने नहीं किया था।

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