2011-01-16 12 views
11

मैं कुछ समय के लिए एक डेल्फीहोलिक हूं और हाल ही में मैं कुछ सी # सीखने की सोच रहा था, हालांकि मैं थोड़े से "अज्ञात से डरता हूं", मैंने कुछ सरल ऐप्स किए हैं सी # के लिए एक टेस्ट ड्राइव के रूप में और मुझे यह मानना ​​है कि मुझे यह पसंद आया है, फिर भी मुझे वास्तव में आईडीई पसंद नहीं है ... यह कहा जा रहा है कि अगर मैं इस पथ से नीचे आने वाले अन्य लोगों का उत्तर दूंगा तो मैं इस बात का उत्तर दूंगा:डेल्फी डेवलपर स्विचिंग सी #

डेल्फी डेवलपर के रूप में डेल्फी भाषा से "मुख्य मूलभूत" परिवर्तन क्या हैं (मूलभूत अर्थ से मूल - उपयोगिता कार्य, धाराएं, आदि), मुझे "सिस्टम, क्लासेस, विंडोज" जोड़ने के लिए उपयोग किया जाता है "System.XXX.YYY.ZZZ का उपयोग नहीं करते" का उपयोग नहीं करता है, मैं अपने दिमाग में डेल्फी से सी # तक आंशिक समानता बनाने की कोशिश कर रहा हूं, जब तक कि मैं देख सकूं कि डेल्फी सी # के साथ हाथ में क्यों जाता है और इसी तरह ...

मुझे आशा है कि प्रश्न बहुत स्पष्ट करता है, तो नहीं है, मुझे कसम में संकोच नहीं करते और मैं स्पष्ट करने के लिए और साथ ही मैं यह कर सकते हैं :-)

उत्तर

22

मैं सॉफ्टवेयर विकास के लिए दोनों का भारी उपयोग करता हूं।

सर्वर ऐप्स (वेब ​​ऐप्स, वेब सेवाएं, विंडोज़ सेवाएं) की विकास गति .NET में बहुत अधिक है।

डेल्फी में व्यावसायिक ऐप्स (शुद्ध विंडोज यूआई) की विकास गति बहुत अधिक है।

सेक्सी ऐप्स का विकास दोनों वातावरण में दर्द है।

कुछ बातें आपको पता होना चाहिए:

  • .NET फ़्रेमवर्क सीखना बहुत समय ले जाएगा: यह बहुत बड़ा है, लेकिन उपकरण का एक बहुत (कुछ जवाहरात वास्तव में अच्छी तरह छिपे हुए हैं) शामिल हैं।
  • अपने आप को एक ही समय में सभी नए रुझानों का पालन न करें: जेनेरिक, लैम्ब्डा, LINQ, प्रत्येक अच्छे हैं, लेकिन हम सभी को एक साथ पकड़ना केवल
  • वेब ऐप्स के लिए, वेबफॉर्म छोड़ें, लेकिन एएसपी.नेट एमवीवीसी सीखें (हाँ, रूबी लोग ठीक बाद में थे); एचटीएमएल 5 और जावास्क्रिप्ट भी सीखें।
  • सेक्सी विंडोज ऐप के लिए, WPF जानने के लिए, लेकिन एक खड़ी सीखने की अवस्था के लिए तैयार रहना (डिजाइनर, और ढांचे बिल्कुल भिन्न हैं)
  • एक बहुत सेक्सी यूआई मत हो: यह आप समय की एक disproportional राशि खर्च होते हुए अपने उन कार्यक्षमता
  • बाजार की तरह के लिए इंतजार कर रहे हैं संस्करण 1 के बाद से डेल्फी को कोसने किया गया है, the market is bashing SilverLight too
  • छोड़ें WinForms; अगर आपको WinForms की तरह कुछ चाहिए, तो डेल्फी अधिक उत्पादक है (यहां तक ​​कि यदि आपके पास मौजूदा डेल्फी वीसीएल कोडबेस है)।
  • WPF है सिर्फ धागा के अनुकूल VCL या WinForms के रूप में के रूप में (पढ़ें: न के 3 अनुकूल थ्रेड है)
  • (.NET में अपने डेल्फी सामान के पुनर्लेखन न करें या उस बात के लिए किसी अन्य 1: 1 मंच ए से प्लेटफार्म ए में फिर से लिखें): यह आपके समय का अपशिष्ट है।
  • थ्रेडिंग और सिंक्रनाइज़ेशन सभी विकास वातावरण में दर्द है। सामान्य सामान में दर्द इतना नहीं है (.NET 4 ढांचे में मदद करता है, जैसा कि Delphi OmniThreadLibrary करता है), लेकिन अंतिम विवरण और अपवाद के मामलों में सही दर्द है।
  • कचरा संग्रह का मतलब यह नहीं है कि आप स्मृति को रिसाव नहीं करेंगे: इसका मतलब है कि जब आपका ऐप समाप्त हो जाता है तो आप रिसाव नहीं करेंगे, लेकिन जब यह लीक चलाता है तो यह पता लगाने में कठिन होता है (लड़का, मेरी इच्छा है कि मेरे पास फास्टएमएम मेमोरी हो) नेट के लिए निगरानी

--jeroen

+0

+1 मुझे आपका उत्तर पसंद है मेमोरी लीक के बारे में बहुत बहुत धन्यवाद, धन्यवाद, मैं आमतौर पर उन सभी उदाहरणों का ख्याल रखता हूं जो मैं बनाते हैं (मैं डेल्फी में विकास के बारे में बात कर रहा हूं), मैं नेवा '1: 1 को फिर से लिखने की कोशिश करता हूं क्योंकि आपने कहा था समय की कुल बर्बादी, हालांकि मैं जो करता हूं वह मौजूदा डेटाबेस का उपयोग इसके तर्क के साथ करता है और इसे सी # एप्लिकेशन के साथ एक्सेस करता है, मुझे एएसपी पेज मिलते हैं 'धीमा - क्या यह सिर्फ मुझे है? – ComputerSaysNo

+0

क्लासिक एएसपी पेज धीमे हैं क्योंकि स्क्रिप्टिंग इंजन को हर बार प्रत्येक पृष्ठ की व्याख्या करने की आवश्यकता होती है। एएसपी.नेट पेज आमतौर पर तेज़ होते हैं, क्योंकि संकलित उदाहरण कैश में रखे जाते हैं। वे दो कारणों से धीमे हो सकते हैं: पृष्ठ कैश में नहीं हैं (पहला संकलन, कैश एक्सपेरिएर-एएसपी.नेट कार्यकर्ता प्रक्रिया आदि का प्रारंभिकरण), या एक धीमी तर्क-स्तरीय (जो तब भी एक WPF ऐप में धीमा होता है) । –

+0

@gbrandt: संपादन के लिए धन्यवाद; ऐसा लगता है कि मेरा शब्द-अंधापन उतना बुरा नहीं था जितना कभी-कभी होता है :-) –

12

"मुख्य बुनियादी" परिवर्तन है कि नेट के हैं की कोशिश करेंगे लाइब्रेरी ऑब्जेक्ट उन्मुख है। उदाहरण के लिए, सिस्टम, SysUtils, StringUtils इत्यादि के बीच फैले वैश्विक स्ट्रिंग फ़ंक्शंस के बजाय, वे String कक्षा पर सभी स्थिर विधियां हैं। वैश्विक पथ-कुशलता कार्यों के बजाय, वे Path कक्षा या File कक्षा पर स्थिर तरीके हैं। टेक्स्टफाइल/असाइनफाइल/रीवाइट के बजाय, आप StreamReader बनाते हैं (या फ़ाइल को छोटा होने पर स्थिर File.ReadAllLines या ReadAllText पर कॉल करें)। ज्यादातर चीजें काफी पोकिंग के साथ काफी खोजी जा सकती हैं। कुछ चीजें गायब हैं; उदाहरण के लिए, .NET में कोई IncludeTilingPathDelimiter विधि नहीं है (हालांकि आपको आमतौर पर इसकी आवश्यकता नहीं है - Path.Combine बेहतर है)।

मैं WinForms को छोड़ने के लिए सुझाव दूंगा। यदि आपने डेल्फी वीसीएल का उपयोग किया है, तो WinForms परिचित और अभी भी निराशाजनक रूप से, अजीब रूप से अपर्याप्त होगा। उन्होंने वीसीएल से बुनियादी विचारों को लिया लेकिन इसे थोड़ी सी गहराई, या यहां तक ​​कि प्रयोज्यता देने के लिए कभी भी परेशान नहीं किया। टीएक्शन/टीएक्शन लिस्ट के लिए कोई समकक्ष नहीं है, डॉक प्रॉपर्टी (डेल्फी के संरेखण के समतुल्य) एक दूसरे के पीछे नियंत्रण छिपाने के लिए पसंद करती है जब तक कि आप "फ्रंट टू फ्रंट"/"बैक टू बैक" के साथ गड़बड़ न करें, टूलटिप्स को आपके फॉर्म पर एक अतिरिक्त घटक की आवश्यकता होती है, वहां केवल कुछ छोटे नियंत्रण हैं, और यह मेरे सिर के ऊपर से है। WPF सीखने के लिए समय ले लो; यह वीसीएल की सभी समृद्धि और अधिक है, और क्या आप दीवार के खिलाफ अपने सिर को मारने में बहुत कम समय बिताएंगे।

आईडीई कुछ उपयोग करने में लग रहा है, लेकिन मुझे डेल्फी से कहीं बेहतर पसंद है। आपको कीस्ट्रोक का एक अलग सेट सीखना है, लेकिन यह कोई बड़ा सौदा नहीं है। आईडीई अधिक प्रतिक्रियाशील है ("पृष्ठभूमि" संकलन के दौरान उस लॉकिंग में से कोई भी नहीं)। इसमें कुछ किक-गधे ऐड-ऑन भी हैं - थोड़ी देर के लिए आपने ReSharper का उपयोग करने के बाद, आप डेल्फी आईडीई को थोड़ा सा याद नहीं करेंगे।

+0

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

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