क्या c # वास्तव में एक मल्टीप्लाकटर भाषा है?


20

C # (और सामान्य रूप से .net प्लेटफ़ॉर्म) ऐसा लग रहा है जैसे यह एक अच्छा विकल्प बन रहा है बहु-लक्ष्यीकरण ऐप:

  • आधिकारिक एमएस .नेट ढांचा: पूर्ण झटका विंडोज़ विकास, asp.net देव, विंडोज फोन देव, आदि।
  • मोनो और इसके सभी व्युत्पन्न: मोनोटूच, मोनोडायर: दुनिया के बाकी। यह उपकरण आज आरटीएम हैं।

  • क्या इसका मतलब है कि C # सबसे लोकप्रिय प्लेटफार्मों को लक्षित करने के लिए एक अच्छी भाषा बन रही है: डेस्कटॉप, वेब और मोबाइल?

  • क्या लक्ष्य प्लेटफार्मों (उद्देश्य सी, जावा, आदि) की "मूल" भाषा का उपयोग करना बेहतर है।
  • क्या यह केवल धुएं की स्क्रीन है और केवल मार्केटिंग भाषा है?

कृपया ध्यान दें कि मैं वास्तव में सचेत हूं कि मैं प्लेटफार्मों के बीच कोड को कॉपी / पेस्ट नहीं कर पा रहा हूं। लेकिन मुझे यकीन है कि अनुप्रयोगों (मॉडल, व्यापार, आदि) की निचली परतों का पुन: उपयोग किया जा सकता है, लेकिन मुझे पता है कि मुझे उच्च परतों (गुई, आदि) को मंच के अनुकूल बनाना होगा। मेरा लक्ष्य तकनीकी कोड साझाकरण की तुलना में आवश्यक कौशल पर अधिक केंद्रित है।

[संपादित करें] मैं एक कंपनी में एसी # डेवलपर हूं जो बड़े पैमाने पर c # का उपयोग करता है। इसलिए मैंने अपनी कंपनी में लक्ष्य प्लेटफार्मों की सीमा का विस्तार करने की योजना में c # के बारे में बात की।

जवाबों:


12

हां, सामान्य तौर पर, .NET फ्रेमवर्क उन ऐप्स के लिए बहुत अच्छा है जो उपकरणों की एक विस्तृत श्रृंखला को लक्षित करते हैं। लेकिन यह .NET के लिए अद्वितीय नहीं है; जावा बहुत पहले से ऐसा कर रहा था। ध्यान रखने वाली बात यह है कि किसी खास प्लेटफॉर्म के लिए देशी टूल्स का कोई वास्तविक विकल्प नहीं है।

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

लिनक्स और विंडोज में जीयूआई सिस्टम कुछ अधिक लचीले होते हैं, जिससे एप्लिकेशन "देशी" दिखते हैं और प्लेटफॉर्म के साथ अच्छी तरह से फिट होते हैं। लेकिन मैं मुख्य रूप से स्पष्ट इंटरफ़ेस दिशानिर्देशों की कमी और इस तथ्य पर दोष लगाता हूं कि आवेदन डेवलपर्स ऐतिहासिक रूप से उन लोगों की उपेक्षा करने के लिए तैयार हैं जो मौजूद नहीं हैं। कई मैक उपयोगकर्ता अपने सुसंगत उपयोगकर्ता इंटरफ़ेस के कारण मैक को ठीक से पसंद करते हैं ।

यह देखते हुए कि आपको GUI परत को विशिष्ट प्लेटफ़ॉर्म पर अनुकूलित करना होगा (और संभवतः इसे किसी अन्य भाषा में पूरी तरह से फिर से लिखना होगा, जैसे कि Objective-C), जो आपको केवल .NET कोड के लिए .NET प्लेटफ़ॉर्म का लाभ देता है। और फिर मेरी राय में C # over C ++ के लिए बहुत स्पष्ट जीत नहीं है।

तेजी से अनुप्रयोग विकास के लिए, कुछ विकल्प हैं जो C # और .NET से बेहतर हैं। और किसी ऐप को तेज़ी से धकेलना और तुरंत प्लेटफ़ॉर्म की विविधता पर उपलब्ध होना निश्चित रूप से व्यावसायिक लाभ है। लेकिन सच्चे बहु-मंच अनुप्रयोगों के लिए जो उपयोगकर्ता को वास्तव में संतुष्ट करने का लक्ष्य रखते हैं, जरूरी नहीं कि यह चांदी की गोली का समाधान हो।


9
"मैक अनुप्रयोग जो आप .NET के साथ बनाते हैं, वह मूल मैक ओएस एक्स अनुप्रयोगों की तरह कभी नहीं दिखेगा ..."। मैं आपको मोनोमैक से परिचित करवाता हूं: mono-project.com/MonoMac

3
@Dimitris: आइए हम कहते हैं कि मुझे संदेह है, सबसे अच्छा। क्यूटी लोगों ने यह कोशिश की, और लोग अभी भी इसे हासिल करने के बारे में ऊपर और नीचे कूदते हैं। वे गलत हैं: उन्होंने नहीं किया। Qt एप्लिकेशन मूल OS X अनुप्रयोगों की तरह नहीं दिखते हैं। वे सिर्फ ... गलत हैं। मैंने आपके द्वारा सुझाए गए लिंक में कोई स्क्रीनशॉट नहीं देखा है, लेकिन भले ही उन्हें UI एकदम सही मिले, फिर भी वे सभी व्यवहार और कार्यान्वयन विवरणों को याद नहीं करेंगे। संदर्भ के लिए धन्यवाद, यद्यपि। इसके बारे में आशावादी होना कुछ है।
कोड़ी ग्रे

7
@ कोडी ग्रे: मोनोओक मूल दिखता है और कार्य करता है क्योंकि यह क्रॉस प्लेटफॉर्म एपीआई नहीं है, बल्कि इसके बजाय अंतर्निहित कोको एपीआई को लपेटता है। यह मूल दिखता है और कार्य करता है क्योंकि यह मूल निवासी है।

1
@ कोडी ग्रे: मोनोओक मैक के लिए है जो मोनोऑच आईओएस के लिए है। आप मूल एप्लिकेशन लिख सकते हैं, आप सिर्फ ओब्ज-सी के बजाय सी # का उपयोग करते हैं। यह "मैक पर WinForms या Gtk अच्छा नहीं बनाते हैं"।

2
बस ऊपर की बातचीत पर चिप लगाना चाहता था क्योंकि मैं iPad और Windows Phone, ASP.NET MVC3 और NT सेवाओं को रोबोटिक्स कंट्रोल सिस्टम के साथ इंटरफेस करने के बीच में सही हूं। कोड़ी के रूप में ऊपर बताए गए मोनो, मोनोएड्रोइड, मोनोआटच, आदि, C # में कोड लिखने का एक तरीका है, जो आपको C # की शक्ति का लाभ उठाने की अनुमति देता है और .NET फ्रेमवर्क (Linq सहित), जबकि आपके लिए अनफ़िल्टर्ड एक्सेस का आनंद भी ले सकता है। चुने गए प्लेटफ़ॉर्म के "देशी" एपीआई के ... अधिकांश देशी C / C ++ / ObjC कोड में निहित कई स्मृति प्रबंधन मुद्दों से बचने के दौरान।
रिचर्ड टर्नर

6

Microsoft .NET आधिकारिक CLR, DLR, BCL, CLI और CLS कार्यान्वयन है। अन्य कंपनियां, समूह, समुदाय या कार्यसमूह Microsoft के साथ इस तरह से संबद्ध नहीं हैं कि इनमें 1: 1 नवीनतम फ्रेमवर्क और भाषा संस्करण का कार्यान्वयन हो सकता है।

मूल रूप से, आपको यह समीक्षा करने की आवश्यकता है कि आप किस भाषा और ढांचे की सुविधाओं के लिए एक ठोस परियोजना में लाभ लेना चाहते हैं और जांच लें कि क्या ये अनौपचारिक .NET कार्यान्वयन में मौजूद हैं।

यदि आप एक संकलन-एक बार समाधान की उम्मीद कर रहे हैं और हर जगह वितरित कर रहे हैं, तो आप गलत हैं: आपको एक केस स्टडी करने की आवश्यकता है।


कि TLA का एक बहुत कुछ है !
तमलिन


अब जब .NET का इतना खुला स्रोत है, तो चीजें बदल गई हैं ....
इयान

@ इयान श्योर .......
मैटिस फिडेमाइज़र

2

मैं XBOX और विंडोज मशीनों पर चलने वाले गेम में C # का उपयोग करता हूं, मैं इसे रोबोटिक्स के समाधान के लिए कॉम्पैक्ट फ्रेमवर्क ऐप में उपयोग करता हूं, मैं iPad के विकास के लिए मोनो-टच का उपयोग करता हूं, मेरे पास लिनक्स पर चलने वाले कुछ वेब एप्लिकेशन और कुछ अन्य समाधान हैं। आमतौर पर एक तरीका है कि आप किसी दिए गए प्लेटफॉर्म पर अपनी बात कैसे करें। मुख्य परत उनमें से अधिकांश के लिए समान है (केस स्टडी वास्तव में आवश्यक है)। समस्या - और मैं इसे एक श्रृंखला के रूप में मानता हूं - विकास का वातावरण है। मुझे Visual Studio और इसकी विशेषताओं के लिए उपयोग किया जाता है। लेकिन MonoDevelop उदाहरण के लिए मुझे पागल ड्राइव।


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