2013-05-17 5 views
7

मैंने हाल ही में सी # सीखने और Xamarin पर सी # का उपयोग करके मोबाइल ऐप्स विकसित करने के लिए चुना है। विशेष रूप से विंडोज फोन और एंड्रॉइड विकास के लिए। मुझे पता है कि विंडोज फोन ऐप डेवलपमेंट ज्यादातर सी # है, और एक्समरिन एंड्रॉइड के लिए देशी कोड संकलित कर सकता है, लेकिन यह जावा में देशी विकास की तुलना कैसे करता है? क्या मैं एंड्रॉइड एसडीके के प्रत्येक या कम से कम सबसे अधिक (जैसे 90% +) और एक्समरिन का उपयोग कर एक्सटेंशन का उपयोग कर पाऊंगा?Android के लिए Xamarin (एंड्रॉइड के लिए मोनो) देशी एंड्रॉइड विकास की तुलना कैसे करता है?

+0

आप शायद एक्समरिन के दस्तावेज़ीकरण को पढ़ने में कुछ समय व्यतीत कर सकते हैं। लिंक- http://xamarin.com/ यहां है। – Anukool

+1

देशी कोड का कोई भी स्थान नहीं हो सकता है :) –

+1

Xamarin उनकी वेबसाइट पर: Xamarin.Android मानक एंड्रॉइड एपीआई तक पूर्ण पहुंच प्रदान करता है। –

उत्तर

1

आप सभी एंड्रॉइड कार्यक्षमता और जावा लाइब्रेरी इंटरऑप का उपयोग कर सकते हैं। भी, आपको linq सहित गैर विंडोज विशिष्ट .NET का लाभ मिलता है।

3

मैंने एंड्रॉइड जावा एपीआई के एक्समरिन सी # कवरेज का कोई आंकड़ा या अध्ययन नहीं किया, लेकिन मेरे काम में, जावा से सी # तक कोड पोर्ट करते समय मुझे जो कुछ चाहिए था, वहां था। इसके अलावा, एक्समरिन का कहना है कि नए एंड्रॉइड एसडीके रिलीज के लिए आमतौर पर सी # समकक्ष 24 घंटे के भीतर जारी होते हैं। और, जैसा कि @ डॉट टॉस्ट्रिंग ने टिप्पणी की है, आप जावा जार पुस्तकालयों को ज़ैमरिन सी # प्रोजेक्ट में जोड़ सकते हैं और यदि आवश्यक हो तो उन्हें कॉल कर सकते हैं।

प्रदर्शन एक और मामला है - मुझे विश्वास नहीं है कि यह एंड्रॉइड पर मूल रूप से चलता है। इसके बजाय, मोनो रनटाइम किसी भी तरह बाइट कोड की व्याख्या कर रहा है। मैं बनाम वास्तविक जीवन कोड पर Xamarin सी # कोड प्रदर्शन जावा के कुछ तुलना किया था, पर अधिक देखें:

Does anyone have benchmarks (code & results) comparing performance of Android apps written in Xamarin C# and Java?

ग्रेग

+2

कथन 'मोनो रनटाइम किसी भी तरह बाइट कोड की व्याख्या कर रहा है' सत्य नहीं है। –

+1

@ मार्कलोपेज़ - यदि आप बेहतर जानते हैं, तो कृपया बताएं कि यह वास्तव में क्या करता है। मूल कोड में .NET पॉकोड का सबसे अधिक "जस्ट-इन-टाइम" संकलन, निष्पादन से पहले - क्या - संपूर्ण ऐप, या एक विशेष मॉड्यूल, या एक समय में एक फ़ंक्शन? – gregko

+1

वास्तव में एक मोनोड्रॉइड ऐप चलाते समय दो अलग-अलग रनटाइम निष्पादित होते हैं, .NET के सीएलआर और मूल एंड्रॉइड दलविक वीएम का एक पट्टी संस्करण। .NET रनटाइम मोनो रनटाइम (Mono.Android.Platform.ApiLevel_XY.apk) के अंदर होस्ट किया जाता है जो आपके मोनोड्रॉइड ऐप के साथ तैनात हो जाता है। यह मोनोड्रॉइड रनटाइम है जो .NET CLR और Dalvik VM को सिंक (ऑब्जेक्ट सृजन और विनाश) में रखता है। – samosaris

7

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

जो कुछ भी आप चुनते हैं, उसके साथ शुभकामनाएं, जेम्स

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