2011-06-20 14 views
11

चल रहा है वर्तमान में मैं वेब प्रोजेक्ट पर काम कर रहा हूं जो एएसपी.नेट वेब फॉर्म का उपयोग करके बनाया गया है। हम एमवीसी ढांचे का उपयोग कर नए पेज बनाने शुरू करना चाहते हैं।एएसपी.NET वेबफॉर्म और एएसपी.नेट एमवीसी पक्ष को

तरफ से MVC और वेब फार्म ओर चल तरह लग रहा है संभव है http://weblogs.asp.net/rajbk/archive/2010/05/11/running-asp-net-webforms-and-asp-net-mvc-side-by-side.aspx

अगर कोई समस्या है या gotchas है कि मैं के लिए योजना की जरूरत है मैं उत्सुक हूँ।

मैं एएसपी.NET 4.0 पर चल रहा हूं और एमवीसी 3 का उपयोग करने की योजना बना रहा हूं।

उत्तर

11

मैं यहां एक आंतरिक अनुप्रयोग के लिए वेबफॉर्म और एमवीसी चला रहा हूं। यह एक वेबफॉर्म एप्लिकेशन के रूप में शुरू हुआ और मैंने इसे एमवीसी 2 (फिर 3) में माइग्रेट कर दिया है और कई टुकड़े अभी भी वेबफॉर्म के साथ सफलतापूर्वक काम कर रहे हैं।

जैसा कि डारिन ने कहा, मुख्य गोचा टेम्पलेटिंग के साथ होने जा रहा है। यदि आप वेबफॉर्म व्यू इंजन का उपयोग करते हैं तो आपको मास्टर पेजों की 2 परतें बनाना होगा। वेबफॉर्म कोड (जैसे स्क्रिप्ट मैनेजर) एमवीसी पृष्ठों पर नहीं चलते हैं, और एमवीसी कोड वेबफॉर्म पृष्ठों के तहत काम नहीं करता है।

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

यदि आपको वैश्विक मास्टर पेज में कुछ कोड डालना है, तो आप यह पता लगा सकते हैं कि उप-पृष्ठ एक वेबफॉर्म या एमवीसी पृष्ठ है, यदि Page is System.Web.Mvc.ViewPage परीक्षण कर रहा है। यदि यह true है तो यह एक एमवीसी पृष्ठ है, अन्यथा यह एक वेबफॉर्म पेज है।

हालांकि, यदि आप रेजर व्यू इंजन (जो मैं एमवीसी के लिए अनुशंसा करता हूं, तो यह बहुत बेहतर है) के साथ जाने का फैसला करता है, यह कठिन हो जाता है। मैंने जो कुछ पहले उल्लेख किया था उससे पहले आपको कुछ अतिरिक्त काम करना है। This blog post उस संबंध में मदद करनी चाहिए।

+0

धन्यवाद। यह मुझे अन्य पदों पर भी ले जाता है: http://www.eworldui.net/blog/post/2008/05/09/ASPNET-MVC-Living-in-a-Web-Forms-World.aspx और http: // www.eworldui.net/blog/post/2011/01/07/Using-Razor-Pages-with-WebForms-Master-Pages.aspx –

1

केवल पकड़ लिया मैं करने के लिए है के बारे में सोच सकते हैं MVC भाग में मौजूदा WebForms कोड पुन: उपयोग की परीक्षा जा और अपने नियंत्रक कार्रवाई में DataSets साथ खत्म हो, या (भगवान न करे हो सकते हैं) :-) एक और पकड़ लिया अपने विचारों में इस तरह के कोड का पुन: उपयोग करने के साथ यह है कि आपको अपने एमवीसी विचारों में runat="server" सामानों को समाप्त न करने के लिए बहुत सावधान रहना चाहिए। मैं दो हिस्सों को यथासंभव कम से कम युग्मित रखूंगा। और इसके कारण मैं उन्हें एक ही प्रोजेक्ट में नहीं मिला :-)

2

what Darin said के अलावा, वेबफॉर्म व्यू इंजन का उपयोग न करने का प्रयास करें यदि आप इसकी मदद कर सकते हैं और उचित यूआरएल मार्ग बना सकते हैं ताकि पेज होना चाहिए WebForms द्वारा प्रबंधित अभी भी WebForms द्वारा संभाला जाता है।

+0

उत्कृष्ट बिंदु। –

+0

@bzlm: सीधा लिंक जोड़ने के लिए धन्यवाद। – R0MANARMY

1

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

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

0

मैं सुझाव देता हूं कि दो अनुप्रयोगों को अलग रखें और उन्हें अलग-अलग सबडोमेन दें, आप वर्चुअल निर्देशिका का उपयोग कर उन्हें उसी सबडोमेन पर रखने में सक्षम हो सकते हैं, लेकिन मुझे वह दृष्टिकोण पसंद नहीं आया।

आप सत्यापन को साझा करके दोनों ऐप्स पर मान्य करने के लिए एक कुकी का उपयोग कर सकते हैं .ey और decryptionKey।

इस प्रकार आपके कोड बेस मिश्रण नहीं करते हैं और आप किसी भी कॉन्फ़िगरेशन फ़ाइल समस्याओं से लड़ नहीं रहे हैं।

मैंने इस दृष्टिकोण के longer description पोस्ट किया है।

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