2009-03-12 19 views
5

से अपग्रेड करने के लिए सर्वश्रेष्ठ विकास उपकरण। मैं एक बड़े vb6 एप्लिकेशन को .NET में अपग्रेड करने की योजना बना रहा हूं। परियोजना कई तृतीय पक्ष घटकों जैसे वीएसएफलेक्सग्रिड के साथ ही क्रिस्टल रिपोर्ट का उपयोग करती है। यह पुराने वीबी 6 डीएल का भी उपयोग करता है जिसका स्रोत कोड अनुपलब्ध है। मेरे प्रश्नवीबी 6.0

  1. क्या मुझे स्रोत को सी # में परिवर्तित करना चाहिए या वीबीनेट पर्याप्त मजबूत है? मैं तृतीय पक्ष घटकों के बारे में क्या करता हूं जो समर्थित नहीं हैं या वे असुरक्षित/अप्रचलित तकनीकों का उपयोग करते हैं?

मैं पहले से ऐसा करने वाले किसी भी व्यक्ति से किसी भी उपयोगी इनपुट का स्वागत करता हूं।

उत्तर

7

यहां मेरे answers के समान प्रश्नों के couple का एक अनुकूलन है।

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

कई कंपनियों मैं नेट के शुरुआती दिनों में साथ काम किया पुनर्लेखन एक मजबूत सुधार करने के लिए इच्छा से हिस्से में संचालित पहली बार में देखा:

... और यहाँ एक Microsofty द्वारा एक ब्लॉग पोस्ट को agrees with me है अंतर्निहित वास्तुकला और कोड संरचनाएं जैसे ही वे .NET पर चली गईं। दुर्भाग्यवश उन परियोजनाओं में से कई कठिनाई में भाग गए और कई कभी पूरा नहीं हुए। समस्या को हल करने के लिए कोशिश कर रहे थे वह बहुत बड़ा था

इस उत्कृष्ट माइक्रोसॉफ्ट page (अब available) में निर्मित VB.NET उन्नयन जादूगर की तुलना में बेहतर रूप में दो तृतीय पक्ष माइग्रेशन उपकरण की सिफारिश की है - और CodeArchitects VBMigrationArtinsoft। मेरा मानना ​​है कि उनके पास सामान्य तृतीय-पक्ष नियंत्रण और डीएलएल - आर्टिन्सॉफ्ट suport these के लिए कुछ समर्थन है। आपकी निर्भरताओं की एक सूची के साथ उनसे संपर्क करने लायक होगा। वीबी माइग्रेशन में free tool है जो इस कारण से निर्भरता सूचीबद्ध करेगा। एक .NET समकक्ष की उम्मीद में मूल विक्रेताओं से संपर्क करने के लायक भी।

माइक्रोसॉफ्ट पेज भी कहते हैं:

नेट के लिए एक बार फिर से लिखने प्रदर्शन कहीं अधिक महंगा और मुश्किल है [परिवर्तित करने की तुलना में] अच्छी तरह से करना ... हम केवल की एक छोटी संख्या के लिए इस दृष्टिकोण की सिफारिश करेंगे स्थितियों।

स्टैक ओवरफ़्लो पर वीबी.नेट डेवलपर्स की तुलना में कई और सी # डेवलपर्स हैं, इसलिए आपको शायद सी # की सिफारिश करने के कई जवाब मिलेंगे। इसके अलावा ऐतिहासिक रूप से माइक्रोसॉफ्ट ने .NET के नए हिस्सों के लिए कोड उदाहरणों के संदर्भ में सी # को अधिक उत्साहजनक रूप से समर्थन देने का प्रयास किया है। लेकिन माइक्रोसॉफ्ट अब करता है assure हमें उस:

दोनों [C# और VB.NET] प्रथम श्रेणी के प्रोग्रामिंग भाषाओं कि माइक्रोसॉफ्ट .NET फ्रेमवर्क के आधार पर कर रहे हैं, और वे समान रूप से शक्तिशाली हैं।

तो यह व्यक्तिगत निर्णय है कि आप सी # या वीबी.नेट चुनना चाहते हैं या नहीं। आर्टिन्सॉफ्ट उपकरण का दावा है कि यह वीबी 6 से सी # में परिवर्तित कर सकता है।


संपादित करें: मैं सिर्फ एक और भेंट पाया - एक प्रोग्रामिंग वेबसाइट पर एक विज्ञापन के माध्यम से - NewCode!

मेरा स्नैप निर्णय यह है कि वेबसाइट ऊपर के बारे में लिखे गए दो प्रतियोगियों के रूप में विस्तृत नहीं है। यह अनुचित हो सकता है। माइक्रोसॉफ्ट आयरलैंड में कुछ लोग blogged उनके बारे में - मुझे लगता है कि वे आयरलैंड में स्थित हैं। स्पष्ट रूप से यह उपकरण आपके वीबी 6 को एक डीएसएल में परिवर्तित करता है और फिर वीबीएनईटी विनफॉर्म, सी #, डब्ल्यूपीएफ, जावा ...

3

उन्नयन; यहां तक ​​कि यदि यांत्रिक उपकरण मौजूद हैं, तो यह वास्तव में आपके लिए बहुत कुछ नहीं करेगा। यह इसे .NET के लिए जादुई रूप से उपयुक्त नहीं बनायेगा, या ढांचे का बहुत अच्छा उपयोग नहीं करेगा। मैं हमेशा इस परिदृश्य में फिर से लिखना पसंद करूंगा, लेकिन इसमें जोखिम/लागत जुड़ी हुई है। उदाहरण के लिए, मेरे कुछ सहयोगी वर्तमान में एएसपी.नेट एमवीसी का उपयोग करने के लिए कुछ वीबी 6/एएसपी/COM +/xslt कोड को फिर से लिख रहे हैं - अधिकांश "रोचक" कोड वास्तव में व्यापार तर्क है, जो बंदरगाह के लिए बड़े पैमाने पर कठिन नहीं है (चाल इसका परीक्षण कर रही है; -पी)। यह मदद करता है कि हमारे वीबी 6 कोड का लेआउट दानेदार है, जिससे हम अलग-अलग स्लाइसों को माइग्रेट कर सकते हैं, बिना पूरे लॉट को एक साथ दबाए।

तीसरे पक्ष के नियंत्रण एक उपद्रव होगा, और ऐसा लगता है कि अन्य डीएलएस को रिवर्स इंजीनियर होना पड़ सकता है। तुच्छ नहीं है।

सी # और वीबी.नेट के बीच चुनाव काफी हद तक माध्यमिक है। दोनों के पास कुछ मामूली फायदे हैं, लेकिन कुल मिलाकर आप अधिकतर चीजें कर सकते हैं। यदि आपको COM इंटरऑप की आवश्यकता है, तो VB.NET उपयोगी हो सकता है (या तो सब कुछ के लिए, या केवल एक विशिष्ट असेंबली के लिए) - लेकिन सी # 4.0 (वीएस -2010 में) इस अंतर को नए dynamic टाइपिंग और नो-पीआईए परिवर्तनों के माध्यम से प्लग करेगा। कुल मिलाकर, मैं काफी सी # पसंद करता हूं, लेकिन इसे स्थानीय निर्णय होना चाहिए।

+0

एक पुनर्लेखन शुरू करने से पहले: पहले एक दृढ़ अनुमान है - शायद एक गाइड के रूप में वीबी 6 कोड की लाइनों की संख्या का उपयोग करें। और सुनिश्चित करें कि आपका प्रबंधन पूरी तरह से बोर्ड पर है। और मामले में बस कुछ संघर्ष समाधान प्रशिक्षण ले लो :) मैंने इस तरह की सड़कों को शुरू कर दिया है और कुछ असहज स्थानों पर पहुंचा है। – MarkJ

2

मैं इस मुद्दे here

पहला और सबसे महत्वपूर्ण कदम की तरह आप कर सकते हैं नेट के रूप में अपने मौजूदा आवेदन करने के बारे में बात करते हैं। कुछ भी VB6 विशिष्ट या किसी तृतीय पक्ष नियंत्रण पर निर्भर करता है जितना आप कर सकते हैं इंटरफ़ेस के पीछे जितना अधिक हो। इंटरफ़ेस बिल्कुल दिखाएगा कि आप तीसरे पक्ष की सामग्री का उपयोग कर रहे हैं और पहले क्या व्यवहार करते हैं। वीबी 6 में ऐसा करने से पहले आप इकाई चला सकते हैं और एकीकरण परीक्षण सुनिश्चित करते हैं कि व्यवहार संरक्षित है। यह महत्वपूर्ण तत्व है कि आपके आवेदन का व्यवहार संरक्षित है।

सी # और वीबी.नेट के बीच के मुद्दे के लिए। दो भाषाओं के बीच कार्यात्मक रूप से थोड़ा अंतर है। 9 0 के दशक में मेरी रूपांतरण परियोजना में से एक मेरी कंपनी के सीएडी/सीएएम एप्लिकेशन को बेसिक बोली से लेकर रॉकी माउंटेन बेसिक के रूप में जाना जाता था जिसे विजुअल बेसिक 3 में रखा गया था। हमारे सामने कुछ झूठी शुरुआत थी और इसे महसूस किया गया और बाद में हमें साबित हुआ कि यह सी

हमारे परिस्थिति में समझने के लिए हमारे पास बहुत सारे गणित भारी सबराउटिन हैं और गणित कुछ क्षेत्रों में से एक है जो किसी अन्य बेसिक परिवार लैंगेज में स्विच करके व्यवहार को संरक्षित करना कहीं अधिक आसान है। भाषाओं के मूल परिवार पर सापेक्षता बनी हुई है। तो मेरा अनुभव मेरे मामले में 100% लागू नहीं है।

यह मेरी राय है कि सी शैली भाषाओं की चतुरता दीर्घकालिक रखरखाव (दशकों) के लिए एक नुकसान है। हालांकि निष्पक्ष होने के लिए यह सबसे अच्छा मामूली बिंदु है। मेरी कंपनी के लिए वीबी 6/वीबी.नेट में सीएडी/सीएएम कार्यक्रम के अलावा सी # में लिखी गई कुछ उपयोगिताओं के साथ सी ++ में लिखी गई बुध और मिथुन स्पेस कैप्सूल के सिमुलेशन को लिखने और बनाए रखने के लिए दोनों भाषाओं में मेरा व्यापक अनुभव है।

अभी हमारे।नेट रूपांतरण VB.NET पर केंद्रित है। मैंने बेकार के पास स्वचालित उपकरण पाए क्योंकि हम एक भारी ग्राफिक्स उन्मुख कार्यक्रम हैं। सौभाग्य से हम सीधे वीबी ग्राफिक्स कॉल का उपयोग नहीं करते हैं, लेकिन कैनवास इंटरफ़ेस के पीछे सबकुछ डालते हैं। मुद्रण संगतता के लिए हम वीबी पावर पैक से प्रारंभिक बिंदु के रूप में प्रिंटर संगतता लाइब्रेरी का उपयोग करते हैं।

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

बट में सबसे बड़ा दर्द रूपों का रूप रहा है। सरल संवाद ठीक है लेकिन अधिक जटिल रूपों के लिए हमें केवल पुन: कार्यान्वित करना होगा। फिर हमारे फॉर्म हमारे मूल कोड में इंटरफेस के पीछे स्थित हैं, इसलिए यह काम करने के दौरान यह देखना आसान है कि क्या करना है।

0

आप मेरे उत्तर को पसंद नहीं करेंगे लेकिन यहां जाता है।

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

बी) अपने वर्तमान आवेदन से व्यावसायिक आवश्यकताओं को निकालें और उन्हें फ्रीज करें।

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

पीएस इस बिंदु पर मैं Winforms से परेशान नहीं होगा। मैं सीधे डब्ल्यूपीएफ पर कूद जाऊंगा, आप बाद में मुझे धन्यवाद देंगे।

पी.पी. भाषा वास्तव में कोई फर्क नहीं पड़ता (सी # या वीबी.Net)। प्रयास वही होगा।

+0

और शुरू करने से पहले एक दृढ़ अनुमान है - शायद एक गाइड के रूप में वीबी 6 कोड की लाइनों की संख्या का उपयोग करें। और सुनिश्चित करें कि आपका प्रबंधन पूरी तरह से बोर्ड पर है। और मामले में बस कुछ संघर्ष समाधान प्रशिक्षण ले लो :) मैंने इस तरह की सड़कों को शुरू कर दिया है और कुछ असहज स्थानों पर पहुंचा है। – MarkJ

1

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

  • सभी सरणियों शून्य आधारित
  • निश्चित लंबाई तार का उपयोग कर यदि संभव हो बचें होने की जरूरत है। इस कोड को vb.net
  • में चार सरणी का उपयोग करने के लिए बदला जाना होगा स्पष्ट रूप से सभी चर घोषित करें। विकल्प का प्रयोग स्पष्ट करता है, तो आप पहले से ही नहीं है
  • से बचें, प्लेग की तरह वेरिएंट जब तक आप पूरी तरह से एक API कॉल के लिए एक का उपयोग करना चाहिए
  • ByRef या ByVal निर्दिष्ट करें जब पैरामीटर प्रदान करने, इस
  • के लिए डिफ़ॉल्ट व्यवहार पर भरोसा नहीं करते
  • हमेशा निर्दिष्ट करें कि आप कौन सी संपत्ति बदल रहे हैं, डिफ़ॉल्ट गुण vb.net में मौजूद नहीं हैं। उदाहरण के लिए "txtName = strName" हो जाता है "txtName.Text = strName"
  • एक अधिक विस्तृत इन मतभेदों की सूची here

पाया जा सकता है यहां तक ​​कि मौजूदा सबसे अच्छा आप रूपांतरण अभी भी isn कर सकते हैं कोड को साफ करने के बाद 100% आप यह देखने के लिए कि आप चीजों को फिर से काम करने की जरूरत है, इस पर विचार करने के लिए आपको क्या मिलता है यह देखने के लिए एक अलग परियोजना में यह कोशिश कर सकते हैं।कभी-कभी फॉर्म रूपांतरण के बाद बदसूरत लगते हैं, और कुछ चीजों के लिए आप उन्हें खरोंच से फिर से शुरू कर सकते हैं।

हमारे कई रूपों ने कॉम्बो बॉक्स और सूची बॉक्स में आइटमडेटा संपत्ति का भारी उपयोग किया जो अब .NET में मौजूद नहीं है। ListViews भी अलग-अलग काम करते हैं, और कोई भी ड्राइंग फ़ंक्शन समान नहीं है। मेरे द्वारा कनवर्ट किए गए ऐप से कुछ रूपों को .NET नियंत्रण में परिवर्तित करते समय वास्तव में खराब लग रहा था और उसी तरह से व्यवहार नहीं किया था, इसलिए मैं स्क्रैच से इन्हें फिर से पूरा करने जा रहा हूं। लाभ यह है कि मुझे उन प्रक्रियाओं को फिर से शुरू करना है जो शुरू करने के लिए बहुत प्रभावी नहीं थे, लेकिन निश्चित रूप से इसमें बहुत अधिक समय लगता है। युगल कि तथ्य के साथ मैं अभी भी सीख रहा हूं कि विभिन्न .NET पुस्तकालय क्या करते हैं ... हाँ इसमें कुछ समय लग जाएगा।

+0

निश्चित रूप से आइटमडाटा के चारों ओर काम करना मुश्किल नहीं है? उदाहरण के लिए इसे आज़माएं (बस इसे घुमाएं, कोशिश नहीं की है) http://www.mgbrown.com/PermaLink37.aspx – MarkJ

+0

@ मार्कज - मैंने उस विधि के समान ही एक विधि का उपयोग कर समस्या के आसपास काम करना समाप्त कर दिया। :) –

+0

फ्रांसेस्को बालेना जेनिक्स का उपयोग करके वीबीएनईटी में गैर-शून्य बाध्य सरणी के मीठे समाधान के साथ आया: http://www.dotnet2themax.com/blogs/fbalena/PermaLink ,guid,08e740fc-f486-4b5b-8796- 6aad43e08815.aspx – MarkJ

2

मैं आपको सलाह देता हूं कि आप 'आंशिक रूप से फिर से लिखें'। इस दृष्टिकोण के लिए फैंसी नाम अजीब है (http://martinfowler.com/bliki/StranglerApplication.html)।

मेरा अनुमान है कि यह एक डेटाबेस ऐप है। देखें कि क्या आप सीधे डीबी से बात करके कुछ विशेषताओं को फिर से लिख सकते हैं। उपयोगकर्ताओं को दो ऐप का उपयोग करने की चिंता न करें। पुराना ऐप उनके लिए अद्यतन मांगने के लिए काफी बुरा है।

मेरा दूसरा अनुमान यह है कि चूंकि यह वीबी 6 है, इसलिए इसमें बहुत अच्छा UI/BusinessLogic अलगाव नहीं है। यही कारण है कि ऑटो अपग्रेडिंग आपको बहुत ज्यादा नहीं मिलेगी।

शायद मैं आपकी स्थिति के बारे में गलत था। आपको यह पूछने की ज़रूरत है कि आप वास्तव में मौजूदा कोड से कितना प्राप्त कर सकते हैं। माइकल फेदर की विरासत कोड पुस्तक भी खरीदें/पढ़ें।

0

प्रश्न स्पष्ट रूप से एक बड़े, जटिल वीबी 6/COM अपग्रेड के लिए "वीबी 6.0 से अपग्रेड करने के लिए सर्वश्रेष्ठ विकास उपकरण" और सी # या वीबी.नेट के बारे में जानकारी के बारे में जानकारी मांग रहा है।

एक परिपूर्ण "रूपांतरण" उपकरण में मदद मिलेगी आप हर की दो महत्वपूर्ण लक्ष्यों को पूरा उन्नयन

  1. कार्यक्षमता संरक्षण
  2. एक तरह से जो आपके इच्छित कोडिंग और मंच निर्भरता मानकों का पालन में नेट का लाभ उठाते हुए

कार्यक्षमता

संरक्षण में उपकरण की भूमिका

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

टीम जो मैन्युअल रूप से पढ़ने, व्याख्या करने और इसे रीडोड करके कोड के पहाड़ को पुन: पेश करने का प्रयास करती हैं, प्रक्रिया में अंधेरा हो सकती है ... इसलिए किसी भी रूपांतरण उपकरण की एक महत्वपूर्ण विशेषता टीम को पढ़ने, व्याख्या करने और फिर से लिखने में मदद करने के लिए है कोड को फिर से लिखने के दौरान कोड जो इसके अर्थशास्त्र को संरक्षित करता है। कंप्यूटर वैज्ञानिकों ने व्याख्यान पढ़ने की समस्या का अध्ययन किया है, और 60 से अधिक वर्षों के लिए स्रोत कोड को फिर से लिखना और उनके साथ आने वाले समाधान को संकलक कहा जाता है। एक प्रभावी कोड "कनवर्टर" एक कंपाइलर की तरह काम करता है।

वीबी 6 एक उच्च स्तरीय भाषा है: माइक्रोसॉफ्ट वीबी 6 कंपाइलर और इसके रनटाइम ने असंख्य चीजों को स्पष्ट रूप से किया: प्रबंधन प्रकार अनुमान, अंतर्निहित रूपांतरण, रेफरी, देर से बाध्य कॉल से निहित, नल से निपटने, गोटो-स्टाइल त्रुटि प्रबंधन, डिजाइनिंग रूप, आदिएक वीबी 6 कनवर्टर भी कोड में स्पष्ट रूप से स्पष्ट रूप से असंख्य छोटे विवरणों को पहचानने और स्टोर करने में सक्षम होना चाहिए और यह .NET में उन विवरणों को सही ढंग से व्यक्त करने में सक्षम होना चाहिए। एक औद्योगिक ताकत रूपांतरण उपकरण में एक शक्तिशाली, एक्स्टेंसिबल वीबी 6 धातुभाषा प्रणाली होगी जो उपयोगकर्ता को यह नियंत्रित करने की अनुमति देती है कि वीबी 6 कोड कैसे पहचाना जाता है और व्याख्या की जाती है।

वीबी 6 भी COM के माध्यम से आसानी से एक्स्टेंसिबल है। उपयोग में कई सैकड़ों अलग-अलग COM API हैं, और यह उन सभी घरों के घटकों की गणना नहीं कर रहा है जो आमतौर पर एंटरप्राइज़ सिस्टम का हिस्सा बन जाते हैं। कनवर्टर यूआई डिज़ाइन और कोड दोनों में वीबी 6 द्वारा उपयोग की जाने वाली किसी भी COM क्लास या नियंत्रण को पहचानने में सक्षम होना चाहिए और इसे किसी अन्य उपयुक्त .NET API या इंटरऑप का उपयोग करके व्यक्त करना चाहिए। एक उपकरण जिसे मैं जानता हूं वो भी वीबी 6 में COM उपयोग जानकारी से .NET कोड ढांचा उत्पन्न कर सकता है। एक औद्योगिक ताकत रूपांतरण उपकरण में एक शक्तिशाली COM प्रकार प्रणाली होगी जो एक्स्टेंसिबल है और उपयोगकर्ता को नियंत्रित करने की अनुमति देता है कि जेनरेट कोड में COM को कैसे बदला जाता है।

नेट

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

यह सब एक साथ

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

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

माइक्रोसॉफ्ट इस आलेख में कई टूल सुझाता है। VB6 Upgrade Partner Tools

VB.NET या सी #

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

अस्वीकरण: मैं ग्रेट माइग्रेशन के लिए काम करता हूं। चर्चा करने के लिए बहुत कुछ है। कृपया अधिक लेखों के लिए Great Migrations Documentation Portal पर जाएं और gmStudio परीक्षण प्राप्त करें और अपने लिए औद्योगिक ताकत अपग्रेड टूल आज़माएं।