2009-03-25 15 views
8

मेरे पास एक ऐसा एप्लिकेशन है जिसे मैं (अंत में) एएसपी.नेट एमवीसी में परिवर्तित करना चाहता हूं। मैं एक संपूर्ण सेवा अपग्रेड करना चाहता हूं (एएसपी.नेट पर) लेकिन वर्तमान कार्यक्षमता को चलाने के लिए वर्तमान एएसपी सामान का उपयोग करना चाहता हूं ताकि नए ढांचे में वृद्धिशील उन्नयन करते समय मैं छोटे टुकड़ों को अपग्रेड कर सकूं। यह साइट एक वीबी 6 डीएलएल पर काफी निर्भर है जो बहुत परिपक्व नहीं है, इसलिए हम अंततः इसे अपग्रेड करना भी चाहेंगे, संभावित रूप से वर्तमान सेवाओं को वेब सेवाओं के साथ बदलना। क्या कोई त्वरित फिक्स है या यह कार्य 3 महीने + कार्य है? साथ ही, मुझे यकीन है कि यह पहले सोचा गया है, एमवीसी की सुंदरता यह है कि मुझे लगता है कि इससे निपटने का एक तरीका है, हालांकि मुझे यह पता नहीं है कि कहां से शुरू करना है। इस एप्लिकेशन को बदलने के लिए सबसे तेज़ तरीका क्या होगा (40 या इतने घंटों में), जहां मैं केवल छोटे कॉन्फ़िगरेशन परिवर्तन कर सकता हूं और यह एएसपी.नेट एमवीसी में काम कर रहा है?एएसपी.नेट एमवीसी (सी #) में क्लासिक एएसपी

उत्तर

7

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

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

+0

मैं यह नहीं कहना चाहता था कि मैंने सोचा था कि वे किसी भी माध्यम से समान थे। धन्यवाद। क्या मैं साइड बाय साइड विकल्प में पूछ सकता हूं, क्या कोई तरीका है कि हम वीबी 6 डीएलएल को पंजीकृत करना बंद कर सकते हैं और इसे गर्म तैनाती कर सकते हैं। –

+0

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

3

एक COM कॉल करने योग्य .NET असेंबली के रूप में अपने वीबी 6 डीएलएल को फिर से लिखें। फिर, आप इसे एएसपी और एएसपी.नेट दोनों से संदर्भित कर सकते हैं।

उम्मीद है कि भारी भारोत्तोलन वीबी 6 डीएलएल में है। यदि ऐसा है, तो आप एएसपी.नेट एमवीसी पर पृष्ठों को माइग्रेट करना शुरू कर सकते हैं। आपको पेज-टू-पेज संचार के लिए देखना होगा - सत्र और कुकीज़ जैसी चीजें। कुकीज़ बहुत अधिक काम करेगी, लेकिन आपको एसवीएल सर्वर जैसे एमवीसी और एएसपी के बीच साझा करने योग्य कुछ सत्र में स्थानांतरित करने की आवश्यकता होगी। दुर्भाग्यवश, इसके लिए एएसपी में आपकी सत्र कॉल को कुछ और करने के लिए पुनः लिखना आवश्यक है (संभवतः एक .NET घटक के आसपास एक COM wrapper)। खोज और प्रतिस्थापन चाल चलाना चाहिए, यद्यपि।

इस समय की समयरेखा और काम की मात्रा के लिए - यह आपके मौजूदा ऐप में स्पेगेटी की मात्रा पर निर्भर संदर्भ है, डीएलएल बनाम एएसपी में कितना तर्क है, और आप कितने पेज माइग्रेट कर रहे हैं।

मुझे नहीं लगता कि एनईटी, एमवीसी, और फिर से लिखने के लिए 40 घंटे उचित गति प्राप्त करने के लिए उचित समय है - हालांकि मुझे लगता है कि 2-3 महीने हो सकते हैं।

+0

डेवलपर पर निर्भर करता है कि उनके पास किस तरह के प्रशिक्षण संसाधन हैं, और उन्हें "गति तक" कैसे प्राप्त करने की आवश्यकता है। मैं ऊपरी सीमाओं को 6-8 महीने तक दबा दूंगा –

2

मैं कुछ समय के लिए इसी तरह की परियोजना पर काम कर रहा हूं; हमारे पास क्लासिक एएसपी ऐप था और इसे एएसपी.Net (वेबफॉर्म का उपयोग करके) में ले जाना चाहता था। हम इसे एक समय में एक टुकड़ा करते हैं, अगर हम एक नया पेज जोड़ रहे हैं तो हम इसे नेट में करते हैं और बस उपयोगकर्ता को .asp फ़ाइलों और .aspx फ़ाइलों के बीच रीडायरेक्ट करते हैं। एमवीसी के साथ काम करना अलग नहीं होना चाहिए।

हम जिस सबसे बड़ी समस्या में भाग गए थे वह सुरक्षा थी; साइट को लॉग इन की आवश्यकता है और सत्र निश्चित रूप से दोनों के बीच साझा नहीं किया गया है। हमने सत्र के बिट्स को बनाए रखने के द्वारा इसे संभाला और डेटाबेस में एक टेबल के बारे में ध्यान दिया और क्वेरी स्ट्रिंग के माध्यम से एक GUID पास किया (हम केवल लॉगिन पर यह एक बार करते हैं, फिर सुरक्षा जोखिम को कम करने के लिए डेटाबेस से रिकॉर्ड हटाएं)।

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