वास्तविक दुनिया में हाइब्रिड VB6 / .Net अनुप्रयोग कैसे कार्य कर रहे हैं?


11

मैं एक VB6 एप्लिकेशन को बनाए रख रहा हूं और हम अध्ययन कर रहे हैं कि कैसे। मुझे कुछ शिक्षाप्रद 'हैलो वर्ल्ड' के उदाहरण मिले कि यह कैसे करना है और यह हमारे ऐप के साथ ठीक काम करता है। लेकिन इन संकर अनुप्रयोगों का वास्तविक विश्व व्यवहार कैसा है? क्या वे स्थिर, बनाए रखने योग्य हैं? हमारे कार्यक्रम का विशेष रूप से यह है कि एक ही कंप्यूटर पर अधिक उपयोगकर्ता इसका उपयोग उपयोगकर्ता खातों को स्विच करके करेंगे।

EDIT: VB6 ऐप USB कनेक्शन से डेटा पढ़ता है और इसे एक्सेस डेटाबेस में स्टोर करता है। उपयोगकर्ता डेटा पर विभिन्न विचारों को कॉल कर सकता है। डेटा एक हार्डवेयर डिवाइस में कैश्ड है, इसलिए इसे पढ़ने में व्यवधान घातक नहीं है।

EDIT 4th Oct 2015: एक फॉलो अप के लिए समय: हम अभी भी .Net के लिए मौजूदा VB6 कोड को कदम से बदलने की प्रक्रिया में हैं। पहले हमने डेटा ऐक्सेस रूटीन पर लिया, फिर बिजनेस लॉजिक और वर्तमान में एक के बाद एक फॉर्म को WPF में बदल दिया। हमने वास्तव में हमारे द्वारा (VB.Net में) कोड के हर टुकड़े को फिर से लिखना समाप्त कर दिया, लेकिन हम इतनी धीमी गति से और उसी तरह की कार्यक्षमता में सुधार कर सकते थे। हाइब्रिड एप्लिकेशन विंडोज 8, 8.1 और 10 के संक्रमण से बच गया।

EDIT 9 मार्च 2018: हम अगले महीने पूरी तरह से परिवर्तित कोड जारी करेंगे। हाइब्रिड एप्लिकेशन को कम से कम एक वर्ष तक समर्थित किया जाएगा। यह मुख्य रूप से उच्च रिज़ॉल्यूशन स्क्रीन पर समस्याएं दिखा रहा है, लेकिन अन्यथा ठीक काम कर रहा है। ईमानदार होने के लिए, हमारे पास VB6 कोड बेस के साथ संगतता समस्या होने की तुलना में भ्रष्ट .Net फ्रेमवर्क इंस्टॉलेशन और निर्भरता की भ्रष्ट इंस्टॉलेशन (SQL Server LocalDb) के कारण अधिक समर्थन सिरदर्द हैं।


1
'विरासत' आवेदन क्या करता है? कुछ और विवरण आपके प्रश्न का उत्तर देने में मदद करेंगे।
रात्रि

आपके पास "पीसीआई कनेक्शन" से अधिक कोई "यूएसबी कनेक्शन" नहीं है। अधिक संभावना है कि आपके पास USB बस से जुड़ा कोई उपकरण है, और उपकरण प्रकार महत्वपूर्ण बिंदु है।
बॉब

जवाबों:


5

मुझे COM इंटरफ़ेस के माध्यम से .NET से VB6 तक अद्भुत सफलता मिली है। ऐसा करने से हम शुरू में बड़ी मात्रा में VB6 कोड को रिफलेक्टर करने में सक्षम थे और .NET में अपग्रेड पथ स्थापित किया। बस ध्यान रखें कि मुहावरेदार VB6 C # या यहां तक ​​कि VB.NET में अच्छी तरह से अनुवाद नहीं करता है इसलिए आप सावधानीपूर्वक चलना चाहते हैं।

एक मुद्दा जो हमारे पास था, जो बहुत कष्टप्रद था, सार्वजनिक COM इंटरफ़ेस में परिवर्तन के कारण हमें जो भी पुनर्खरीद करनी थी, वह अत्यधिक मात्रा में थी। इसे विजुअल मेक द्वारा कम किया गया था ।


धन्यवाद। क्या आप इस समस्या के बारे में अधिक बता सकते हैं जो विज़ुअल मेक सॉल्व करती है। मुझे यकीन नहीं है कि मैं समझता हूं।
दाब्बलर्नल

@ डब्लब्लर्न - विजुअल मेक आपको एक प्रोजेक्ट बनाने की अनुमति देता है, जो वीबी 6 परियोजनाओं का एक संग्रह है, और यह उन्हें उचित क्रम में बनाएगा।
ChaosPandion

6

FWIW, मेरे अनुभव में .Net को पुनः लिखने के लिए VB6 ऐप को अपग्रेड करने की आवश्यकता है। जब तक मूल कोडर्स शानदार विज़नरी नहीं थे, वीबी 6 में प्रचलित तकनीक शायद ही कभी शुद्ध रूप से पोर्ट के लिए होती है।

आपका सामना करेंगे कुछ प्रसन्न:

  1. आप Microsoft.VisualBasic के संदर्भों को समाप्त करेंगे जो आप वास्तव में नहीं चाहते हैं।
  2. वे हार्ड-टू-फाइंड बग्स होंगे, उदाहरण के लिए जहां VB6 सबस्ट्रिंग (a, b, c) चुपचाप। a.SubString (b, c) के रूप में प्रस्तुत करता है और आपके चेहरे पर उड़ जाता है क्योंकि यह V6 और 1 में 1-आधारित था। 0-आधारित .Net में।
  3. उन सभी आसान-से-कोड निहित रूपांतरण लकड़ी के काम से बाहर निकलेंगे, आमतौर पर पहले पीसी पर जो "नहीं है," सूची में सीमांकक और / या "।" दशमलव विभाजक के रूप में।
  4. आपकी परिवर्तित कक्षाओं में वांछनीय डेटा-छिपाना नहीं होगा जिसे फिर से डिजाइन करना चाहिए।

HTH


1
आप कुछ बहुत अच्छे अंक लाते हैं। ये कुछ कारण हैं कि बुरे व्यवहारों को दूर करने के लिए कोड पर प्रारंभिक पास क्यों जरूरी है। आदर्श रूप से आप सुनिश्चित करेंगे कि Option Explicitचालू हो और जादुई निहितार्थ पर सभी निर्भरता दूर हो जाए।
चोसपांडियन

मुझे खुश करने के लिए धन्यवाद;; लेकिन इस समय ऐसा नहीं है, जो मैं जानना चाहता हूं। वास्तविक रूपांतरण दुःस्वप्न अभी भी आना बाकी है।
Dabblernl

1
@ अचल अधिकार। वास्तव में मैं स्पष्टता के साथ शुरू करता हूं और जब कोई त्रुटि नहीं बची होती है, तो मैं इसे स्ट्रिक्ट तक बढ़ा देता हूं, जो कि कई, कई मुद्दों को उजागर करता है
स्मरकिंगमैन

1
मैंने उन टीमों के बारे में सुना है जो फ्लैमथ्रोवर्स के साथ VB6 कोड के बाद गईं। मेरा मानना ​​है कि यह VB6 कोड के लिए बहुत अधिक होने का कारण यह है कि इतने VB "डेवलपर्स" के पास कोई प्रोग्रामिंग अनुभव नहीं था जब उन्होंने शुरू किया था। बदले में पेशेवरों की इस पीढ़ी के लिए जंगल में खराब-डिज़ाइन किए गए और कोडित अनुप्रयोगों के असंख्य बनाने के लिए।
यह

1

यह आपके लिए ठीक काम करना चाहिए, विशेष रूप से तेज उपयोगकर्ता स्विचिंग / कई सत्रों के बारे में कुछ भी नहीं है जो आपको किसी भी समस्या का कारण बनना चाहिए।

स्थिरता के संदर्भ में, ध्यान रखें कि हाइब्रिड VB6 / VB.NET केवल एक अस्थायी समाधान होना चाहिए: आपकी योजना समय के साथ VB.NET में पूरी तरह से माइग्रेट करने की होनी चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.