2009-10-24 17 views
7

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

क्यों, यह क्यों संभव नहीं है? इन चीजों के लिए कोई मूल आधुनिक प्रोग्रामिंग भाषा क्यों नहीं है?

+0

एक्सएनए का उपयोग 3 डी गेम बनाने और सी # का उपयोग करने के लिए किया जा सकता है। – statenjason

+2

यह "धीमा क्यों है?" –

+10

यह बहुत अच्छा होगा। वास्तव में, यह कमाल है। आप सी # के साथ भयानक 3 डी गेम लिख सकते हैं, आप भयानक इंस्टॉल यूटिलिटीज लिख सकते हैं। तो यह करो! आगे बढ़ो और कमाल हो! –

उत्तर

15

सी # और .Net देशी कोड हैं। मुझे लगता है कि आप जिटर को गलत समझते हैं। यह एक वीएम नहीं है। एक सी # प्रोग्राम इसे किसी भी निष्पादित होने से पहले पूरी तरह से मूल कोड में संकलित किया जाता है।

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

+1

मैंने सोचा था कि नेट JIT एक आभासी मशीन है। माफ़ कीजिये। –

+2

ठीक है, जेआईटी पूरे .NET वर्चुअल मशीन का हिस्सा है। मुद्दा यह है कि कोड का अर्थ नहीं है, यह फ्लाई पर देशी कोड के लिए संकलित है। –

+0

आप इसे देखना चाहते हैं। http://stackoverflow.com/questions/1564348/is-the-clr-a-virtual-machine –

-3

वहाँ है, सी सी का उपयोग किसी भी आवेदन को लिखने के लिए किया जा सकता है !!!

+0

तो तुम पहली सी संकलक कैसे लिख सकता हूँ? ;) – Nick

+1

पहले सी ++ संकलन सी ++ में लिखा गया था;) – lerosQ

3

संकलित .NET प्रोग्रामों को सी के रूप में जल्द से जल्द चलाने के लिए दिखाया गया है। यदि आप चाहते हैं कि अल्ट्रा-दुबला इसे अपने मूल प्रोसेसर के लिए असेंबली में लिखें।

2

आप .NET असेंबली की मूल छवि बनाने के लिए Microsoft NGEN.EXE उपकरण का उपयोग कर सकते हैं। MSDN NGEN documentation देखें। माइक्रोसॉफ्ट पहले से ही जो कुछ भी आप यहां प्राप्त कर रहे हैं उसके बारे में।

माइक्रोसॉफ्ट कई असेंबली फ़ाइलों को एक में विलय करने के लिए ILMERGE.EXE tool बनाता है। यह अनुकूलन और गति पर भी सीमा हो सकती है।

7

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

इस का सबूत के रूप में, विचार है कि Quake has been ported to the CLR एक दो बार, और मेरी व्यक्तिगत परीक्षणों में, प्रति सेकंड फ्रेम किया गया है तेजी जब भूकंप डेढ़ गुना मैं इसे डेमो के बारे में CLR पर चलता है।

0

एक साइड नोट के रूप में, मोनो रनटाइम को समाप्त करने, समय संकलित करने से पहले पूर्ण हो गया है। (मुझे लगता है कि वे आईफोन पर चल रहे हैं, जो कि किसी भी जेआईटी को प्रतिबंधित करता है।)

0

तो, इसका मतलब यह है कि हम पूरी तरह से संकलित और सी # प्रोग्राम का उपयोग कर सीमित कर सकते हैं (सीमित) .NET कॉल स्टैंडअलोन EXE में बिना .NET इंस्टॉल किए जा रहे हैं?

एफवाईआई: कुछ 5000 सर्वरों की सर्वर संपत्ति की जांच करने के बारे में 200 के बारे में भी पता चला।

इससे कोड के लिए समस्याएं उत्पन्न होती हैं जो "सभी विंडोज़ उदाहरणों" पर चलनी चाहिए। 2.0 सहित .NET 4.0+ के साथ यह खराब हो जाता है क्योंकि नई और पुरानी विंडोज मशीनों में 'दाएं' नहीं हो सकता है .नेट