2011-06-01 8 views
5

हमारे ग्राहकों में से एक चाहता है कि उनके डेल्फी एप्लिकेशन को .NET 4.0 में परिवर्तित किया जाए। इस साइट पर विभिन्न समान प्रश्नों के जवाब पढ़ने के बाद, मैंने डेल्फी कोड को .NET में परिवर्तित करने के चरण-दर-चरण दृष्टिकोण को लेने का निर्णय लिया है।डेल्फी से .NET 4 तक रूपांतरण (किसी भी उपकरण के बिना)

चूंकि मैं एक .NET डेवलपर हूं, मुझे पहले डेल्फी से परिचित होना चाहिए। डेल्फी की अवधारणाओं का व्यापक अवलोकन प्रदान करने वाली किसी भी साइट को ढूंढना मुश्किल है। इसके अलावा मुझे अभी भी कोई साइट नहीं मिली है जो .NET में डेल्फी के समकक्षों के बारे में जानकारी प्रदान करती है। उदाहरण के लिए .NET में "stdcall" या "export" के बराबर क्या है? या .NET में किसी विशेष डेल्फी डेटाटाइप के बराबर क्या है?

क्या कोई ऐसे ऑनलाइन संसाधन के बारे में जानता है जो .NET में डेल्फी समकक्षों के बारे में जानकारी प्रदान करता है? अगर कोई इस पर कोई सुझाव दे सकता है?

+0

यह उत्तर देने के लिए बहुत व्यापक है। डेल्फी भाषा गाइड पढ़ें और इसे वहां से ले जाएं। –

+0

यहां एम्बरकैडेरो के दस्तावेज विकी देखें: http://docwiki.embarcadero.com/RADStudio/en/Main_Page –

+3

मैं यह जोड़ना चाहता हूं कि भाषा तत्वों के बीच 1: 1 मैपिंग की तलाश गुमराह हो।अगर वह इसे काट देगा, तो नौकरी के लिए स्वचालित उपकरण होंगे। उदाहरण के लिए 'stdcall' और' export' कीवर्ड अन्य अनुप्रयोगों से उपयोग किए जाने वाले डीएलएल को सिग्नल करते हैं। .NET दुनिया में कोई प्रत्यक्ष समतुल्य नहीं है क्योंकि आप एक मूल अनुप्रयोग से .NET लाइब्रेरी से लिंक नहीं कर सकते हैं, आपको इंटरऑप प्रौद्योगिकियों के सभी प्रकारों का उपयोग करने की आवश्यकता है। –

उत्तर

2

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

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

2

जैसा कि अन्य ने इंगित किया है, इसका उत्तर देने का कोई सीधा तरीका नहीं है जब तक कि डेल्फी क्या है और यह डॉटनेट से तुलना कैसे करता है, समझाए जाने का निर्णय लेता है।

हालांकि आपको यह जानने में रुचि हो सकती है कि RadStudio के नवीनतम संस्करणों में डेल्फी.NET शामिल है जो वीएस में एकीकृत है।

शायद यह नौकरी के लिए आपका सबसे छोटा और सुरक्षित मार्ग है।

स्टार्टर्स के लिए, दो संस्करण (हालांकि उल्लेखनीय रूप से भिन्न) अभी भी अधिकांश भाग के लिए संकलन पार करने के लिए पर्याप्त समानताएं सहन करते हैं - और यह निश्चित रूप से एक शुरुआत होगी।

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

अंतिम, लेकिन कम से कम, मैं कर रहा हूँ विश्वास है कि आप किसी भी विशिष्ट मदद की जरूरत है, हम सभी की मदद के लिए :)

एंड्रिया खुशी होगी

+2

मैं डेल्फी प्रिज्म को पोर्टिंग की पुन: सिफारिश नहीं करता क्योंकि मुख्य रूप से क्लाइंट ने स्पष्ट रूप से सी # संस्करण के लिए कहा था और डेल्फी Win32 से डेल्फी प्रिज्म तक पोर्टिंग भी लगभग उसी काम की तरह होगा जो सी # को पोर्ट करने जैसा काम करेगा। डेल्फी प्रिज्म या ऑक्सीजन डेल्फी नहीं है, यह .NET के लिए ऑब्जेक्ट पास्कल कंपाइलर है। रियल डेल्फी.NET (डेल्फी 2007 .NET) बंद कर दिया गया था और बहुत अच्छे कारणों से। उदाहरण के लिए डेल्फी प्रिज्म –

+0

में कोई कक्षा चर नहीं है, यह आंशिक रूप से सच है, लेकिन कुछ बातें ध्यान देने योग्य हैं: 1) हालांकि यह सच है कि भाषाएं अलग हैं, फिर भी एक बड़ी संगतता डिग्री है। 2) यह सच है कि डेल्फी.NET सी # नहीं है लेकिन यह कोई समस्या नहीं है, क्योंकि कन्वर्टर्स की संपत्ति है जैसे कि रिफ्लेक्टर प्लस, जबकि डेल्फी और डॉटनेट 1 से 1 तक मेल करना असंभव है, यह निश्चित रूप से करना आसान है यह किसी अन्य विकल्प की बजाय इस तरह (मेरी राय में)। एंड्रिया –

+0

पोर्टिंग टू प्रिज्म भी वीसीएल के साथ लिंक रखेगा, जो कि एक बड़ा प्लस है, सी # के साथ आपको एक पूरी तरह से अलग ढांचे का उपयोग करना होगा। प्रिज्म के अलावा आप अपनी .dfm फ़ाइलों का पुन: उपयोग कर सकते हैं, सी # के साथ आपको उनको फिर से डिजाइन करना होगा, और अधिक काम करना होगा। – Johan

1

मैं करने के लिए पोर्टिंग के लिए स्वचालित उपकरणों में से कुछ ले जाएगा सी # बस आपको विभिन्न वाक्यविन्यास पोर्टिंग के दर्द से राहत दिलाने के लिए, और उसके बाद यह सब हाथ काम है।

और वहाँ का वर्णन करता है नेट और समानता और अंतर डेल्फी डेवलपर्स के लिए एक किताब है, .NET 2.0 for Delphi Programmers मुझे पता है कि यह दूसरी तरह के आसपास है, लेकिन IMO सच में मदद कर सकते

+0

धन्यवाद @ एंटोनियो बाकूला। मुझे लगता है [डेल्फी प्रोग्रामर के लिए .NET 2.0] (http://www.amazon.com/NET-2-0- डेल्फी- प्रोग्रामर- शेमेट्ज/डीपी/15 9 0 9 3863) साथ [.NET डेवलपर की मार्गदर्शिका के लिए डेल्फी] (http: //www.amazon.com/Delphi- डेवलपर- गुइड-Xavier-Pacheco/dp/0672324431/ref=ntt_at_ep_dpi_1) वास्तव में उपयोगी होगा –

+0

-1 वीसीएल और डीएफएम फ़ाइलों के लिंक के बारे में क्या? यही वह जगह है जहां अधिकांश काम है .... – Johan

+0

स्वचालित उपकरण ऐसा कर सकते हैं, उदाहरण के लिए Delphi2CS * .dfm फ़ाइलों को C# code में परिवर्तित कर सकता है। उनकी साइट पर उन्होंने कहा कि डेल्फी 2 एस वी वीसीएल घटकों को सी # में परिवर्तित कर सकता है। मैंने इसका उपयोग नहीं किया, इसलिए मुझे नहीं पता कि यह कैसे काम कर रहा है, लेकिन मैंने शोध किया कि बड़ी डेल्फी 2006 प्रणाली को सी # में बंद करने के लिए क्या आवश्यक है, अंत में कंपनी के लिए मैंने काम किया था (2007) सलाह सभी को एक साथ बंद करना रद्द करें और डेल्फी का उपयोग जारी रखें :) –