2008-09-18 5 views
7

एक मौजूदा मौजूदा एएसपी.NET VB.NET प्रोजेक्ट को सी # में रूपांतरित करने के लिए कुछ दृष्टिकोणों की तलाश में था, जबकि अभी भी इसे एक वेब एप्लिकेशन (वर्तमान में साप्ताहिक आधार पर तैनात) के रूप में तैनात करने में सक्षम है।बड़े एएसपी.NET VB.NET प्रोजेक्ट को सी # में परिवर्तित करना - वृद्धिशील रूप से?

मेरे विचार सिर्फ एक नई सी # एएसपी.नेट परियोजना बनाने और धीरे-धीरे पृष्ठों को स्थानांतरित करने के लिए थे, लेकिन मैंने कभी ऐसा करने का प्रयास नहीं किया है और किसी भी तरह इसे तैनाती के दौरान किसी अन्य एएसपी.NET प्रोजेक्ट के साथ विलय कर दिया है।

(स्पष्टीकरण: बड़े ASP.NET VB.NET परियोजनाओं वी.एस. आईडीई में पूर्ण कुत्ते हैं ...)

किसी भी विचार?

+0

आपने अपना प्रश्न टैग नहीं किया है। – chrissie1

+0

वास्तव में? मैं दाईं ओर 4 टैग देखता हूं जब मैंने प्रश्न बनाया था ... C#, asp.net, vb.net, रूपांतरण – Joey

+0

chrissie1: टैग अभी बाईं ओर हैं (पता नहीं क्यों परिवर्तन) –

उत्तर

3

एक बंदरगाह की तरह मैं इसे लेता हूं? मैं वास्तव में बिंदु नहीं देखता हूं और आप सभी प्रयासों के लिए क्या हासिल करेंगे। शायद सी # में किसी भी नई फीचर्स या रिफैक्टर आलसी/खराब मौजूदा तर्क/सेवा परतों को लिखें लेकिन वेब पृष्ठों के लिए मुझे 80/20 लाभ नहीं दिखाई देता है।

+0

ठीक है, हम प्रेजेंटर्स, सेवाओं इत्यादि के लिए कोड को दोबारा शुरू कर रहे हैं और कोड को नीचे ले जा रहे हैं, लेकिन यदि आपने पहले कभी भी बड़ी एएसपी.नेट वीबी.नेट परियोजना के साथ वीएस आईडीई में काम किया है, तो आप पता है कि वीबी.नेट ने आईडीई को कितना मार दिया। तो हम वीबीएनईटी बाधा को दूर करने के लिए एक अल्पकालिक समाधान की तलाश में हैं। – Joey

+0

हाय, नहीं, मैंने कभी भी vb.net समाधान के साथ काम नहीं किया है, लेकिन मैं नहीं देख सकता कि सी # को फिर से लिखना कैसे एक छोटा सा समाधान है यदि साइट बड़ी है। – redsquare

+0

प्रतिक्रिया के लिए धन्यवाद। मैं वास्तव में एक पुनर्लेखन के बारे में बात नहीं कर रहा हूँ। मैं एक समय में वास्तविक रूपांतरण एक पृष्ठ के लिए SharpDevelop का उपयोग कर सकता हूं। मैं वृद्धिशील भाग के बारे में और सोच रहा था क्योंकि यह 2 एएसपीनेट वेब परियोजनाओं को एक के रूप में तैनात करने के लिए विलय करने से संबंधित है। धन्यवाद! – Joey

0

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

1

पुराने सामान को वीबी में रखें। सी # में सभी नई चीजें। ट्रांजिस्टियन धीमा हो सकता है लेकिन आप नुकसान का समय नहीं लेंगे। खाली समय पर, सी # में सामान बदलें।

5

व्यापार तर्क से शुरू करें और पृष्ठों पर अपना रास्ता काम करें। सी # पुस्तकालयों में आप जो भी कर सकते हैं उसे समेकित करें जिसे आप VB.NET साइट के संदर्भ के रूप में जोड़ सकते हैं।

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

+0

धन्यवाद। यह अब तक बहुत अधिक दृष्टिकोण है जिसे हम अभी तक उठा रहे हैं। लेकिन चूंकि हम उत्पादन के लिए साप्ताहिक रिलीज करते हैं, इसलिए मुझे यकीन नहीं है कि "जब तक वे तैनात करने से पहले पूरी तरह से काम नहीं कर लेते हैं तब तक प्रतीक्षा करें" भाग हमारे लिए बहुत अच्छा काम करेगा। – Joey

1

मैं ऐसा करके एक परियोजना के साथ ऐसा किया निम्नलिखित:

  1. एक सी # वर्ग पुस्तकालय
  2. संदर्भ वीबी वेब अनुप्रयोग
  3. से सी # वर्ग पुस्तकालय में सी # वर्ग के पीछे कोड बनाएँ पुस्तकालय
  4. अद्यतन aspx/ascx फ़ाइल में संपत्ति "विरासत में मिली" सी # वर्ग संदर्भ के लिए (इस फ़ाइल अभी भी मूल वीबी परियोजना में मौजूद है)

यह कुछ हद तक ठीक काम किया; कभी-कभी दर्द होता है कि आपको एक पृष्ठ/नियंत्रण देखने के लिए कई परियोजनाओं में ब्राउज़ करना पड़ता है, लेकिन उसने मुझे वह करने दिया जो आप करना चाहते हैं।

1

आप समाधान में बस एक नई सी # कक्षा पुस्तकालय परियोजना बना सकते हैं। यहां एक समय में कुछ कक्षाएं दोबारा शुरू करें और फिर मुख्य परियोजना में वीबी कक्षाओं को प्रतिस्थापित करें।

लेकिन ईमानदार होने के लिए मैं सहमत हूं कि जब तक आप सी # सीखने की कोशिश नहीं करते हैं या बस वास्तव में वीबी पसंद नहीं करते हैं या बस ऊब जाते हैं तो मुझे लाभ दिखाई नहीं देता है।

4

आपको अपनी App_Code निर्देशिका दोनों को वीबी कोड और सी # कोड दोनों के साथ रखने की अनुमति है। तो प्रभावी ढंग से, जब आप इसे बदलने के लिए अतिरिक्त समय रखते हैं तो आप इसे बहुत धीरे-धीरे कर सकते हैं।

मेरे पास वर्तमान में मेरे App_Code निर्देशिका में VB.Net और C# कोड दोनों हैं और मेरे खाली समय पर मैं VB.Net कोड में परिवर्तित हूं या कभी भी मुझे VB के साथ किसी पृष्ठ पर वापस जाना होगा।इसके साथ नेट और गड़बड़ मैं इसे सी # में परिवर्तित कर देता हूं।

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

आप अपने एक निर्देशिका में दोनों कोड निर्देशिका जोड़ने के लिए अपने Web.config

<compilation> 
<codeSubDirectories> 
    <add directoryName="VB_Code"/> 
    <add directoryName="CS_Code"/> 
</codeSubDirectories> 
</compilation> 

में जोड़ने और फिर एक फ़ोल्डर VB_Code नामित करने और अपने App_Code निर्देशिका में अन्य फ़ोल्डर नामित CS_Code जोड़ने चाहते हैं। फिर अपने फ़ोल्डर्स और अपने अच्छे में सभी वीबी/सी # कोड फेंक दें।

0

यदि आपके पास $ 17 9 मिल गया है तो आप कर चुके हैं।

बेशक वहाँ फ्रीवेयर कन्वर्टर्स उपलब्ध भी हैं।

+0

धन्यवाद, लेकिन वास्तविक रूपांतरण स्वयं वास्तव में मुद्दा नहीं है। मेरा प्रश्न शीर्षक मानें कि यह स्पष्ट नहीं था। यह रूपांतरण का "वृद्धिशील" हिस्सा है जो वेब प्रोजेक्ट के विलय/तैनाती से संबंधित है जो वास्तव में मैं सोच रहा था। – Joey

1

मैं (यह मुफ़्त है) Reflector साथ vb परियोजनाओं के DLLs में खींच रहा है और के रूप में सी # कोड को देखने सफलता मिली है। स्थानीय चर हमेशा अनुवाद नहीं करते हैं लेकिन आप अनुवाद की तुलना कर सकते हैं और चीजों को दोबारा बदल सकते हैं।

1

#Develop आज़माएं। मुझे लगता है कि किसी भी .net suppported भाषाओं में समर्थित किसी भी .net को कनवर्ट करने का यह सबसे अच्छा तरीका है।

अन्य उपकरण केवल कोड को परिवर्तित करते हैं लेकिन यह पूरी परियोजना को परिवर्तित करता है।

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