2011-12-15 15 views
5

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

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

अब सिस्टम वास्तव में अच्छी तरह से काम करता है, पेज आंशिक रूप से ठीक से ताज़ा हो जाते हैं और AJAX कॉल किए जाने पर यूआरएल बदल जाते हैं, इसलिए जब पृष्ठ रीफ्रेश किया जाता है, तो यह बिल्कुल वही दिखता है।

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

क्या स्टैक ओवरफ्लो अभी भी वेबफॉर्म एप्लिकेशन को एमवीसी में परिवर्तित करने के खिलाफ अनुशंसा करेगा? क्या सर्वोत्तम प्रथाओं के अलावा एमवीसी में परिवर्तित करने के कोई अन्य लाभ हैं?

+0

आप निश्चित रूप से वेबफॉर्म को एमवीसी में "रूपांतरित" कर सकते हैं, लेकिन प्रक्रिया में बहुत सी प्रतिलिपि/पेस्ट/पुनर्लेखन शामिल होगा। – jrummell

+0

मुझे लगता है कि "क्या एमवीसी में कनवर्ट करने का कोई अन्य लाभ है, सर्वोत्तम अभ्यास के अलावा?" इस प्रश्न के बाकी हिस्सों से सेम का एक अन्य अन्य कैन है। –

+5

यदि यह महान काम करता है, तो इसे फिर से लिखें। – Erix

उत्तर

3

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

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

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

मैं इसे एमवीसी v2 से v3 तक ले जाने के लिए उत्साहित हूं, और रेजर दृश्यों में परिवर्तित हूं। तो क्या मैं? अगर मैं तुम थे और मेरे पास समय था, तो मैं करूँगा।

यहां एक प्रश्न है जो मैंने पोस्ट किया है जो प्रक्रिया को रेखांकित करता है और रूपांतरण में मेरे पास अधिक महत्वपूर्ण समस्याओं में से एक है। Migrating legacy ASP.NET to MVC 2 (RC): HttpApplication events not firing, User principal is null

+0

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

+1

मुझे लगता है कि एमवीसी के साथ काम करने का आनंद लेंगे। यह गंभीर रूप से एक विस्फोट है। मैंने शुरुआत से वेबफॉर्म से नफरत की है (लेकिन एएसपी.नेट के आर्किटेक्चर से प्यार है), और मैं आपको "पहिया का पुन: आविष्कार" करने पर महसूस करता हूं। – HackedByChinese

3

मैंने हाल ही में वेबफॉर्म से एमवीसी तक एक मध्यम आकार की परियोजना को परिवर्तित कर दिया है। मैं आपके पहले एमवीसी प्रोजेक्ट पर ऐसा करने की अनुशंसा नहीं करता, लेकिन एक बार जब आप इसे लटका लेंगे तो वास्तव में आपको कुछ भी नहीं (धीरे-धीरे) वेबफॉर्म ऐप को एमवीसी में परिवर्तित करने से रोक नहीं रहा है।

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

बेशक जेनरेट किए गए एचटीएमएल पर टेस्टेबिलिटी और पूर्ण नियंत्रण जैसे बेहतर ज्ञात लाभ भी हैं।

वेबफॉर्म और एमवीसी एक ही मूल एएसपी.NET मंच साझा करते हैं, इसलिए वे वास्तव में असंगत नहीं हैं जैसा आपने पढ़ा है।

+0

जेनरेट किए गए HTML पर पूर्ण उपयोगकर्ता नियंत्रण अच्छा होगा। मैं ओवरराइड स्ट्रिंग क्लाइंट आईडी में डालने में बीमार हूं {{वापसी आईडी प्राप्त करें; }} 'मेरे उपयोगकर्ता नियंत्रण में! – Connell

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