2009-04-22 8 views
5

चलिए बस इसके आनंद के लिए कहते हैं, मैं तय करता हूं कि मैं जावा में डेस्कटॉप एप्लिकेशन लिखना नहीं चाहता, बल्कि सी # का उपयोग करने के लिए स्विच करना चाहता हूं। मैं एक ऐसा एप्लिकेशन बनाने में सक्षम होना चाहता हूं जो कुछ मुख्यधारा के लिनक्स वितरण पर चलता है, और हाल ही में एमएस विंडोज़ की रिलीज होगी। इसमें एक जीयूआई घटक होगा।क्या सी #/नेट के लिए एक क्रॉस-प्लेटफार्म जीयूआई ढांचा है?

जावा में मैं स्विंग का उपयोग करने वाले एक एप्लिकेशन का निर्माण कर सकता हूं। एक बार जब मैं इसे काम कर लेता हूं, तो मैं उस जार फ़ाइल को विंडोज से लिनक्स या इसके विपरीत कॉपी कर सकता हूं, जहां मैंने इसे विकसित किया था। और यह आम तौर पर java -jar myapp.jar के साथ चलाएगा।

सी # में ऐसा करना संभव है? क्या सी # में स्विंग या एडब्ल्यूटी के बराबर एक कार्यात्मक है?

+1

आप नवम्बर कोशिश कर सकते हैं। यह कार्यात्मक रूप से स्विंग –

उत्तर

2

आप WxWidgets आज़मा सकते हैं। इसमें सी # के लिए कई अन्य भाषाओं के बीच समर्थन है, और क्रॉस-प्लेटफार्म है। प्रत्येक मंच के लिए एकमात्र नकारात्मक पक्ष एक पुन: संकलित है। वैकल्पिक रूप से आप मोनो को आजमा सकते हैं जो बहुत अच्छा है, लेकिन सावधान रहें कि अनुकूलता के मुद्दों के साथ कुछ स्नैग हैं। जावा के पास जार के साथ अभी तक सी # ऐप्स के लिए कोई पूर्वनिर्धारित "रन कहीं भी" फ़ाइल नहीं है, हालांकि, यदि आप संगतता सुनिश्चित करना चाहते हैं तो आप प्रत्येक प्लेटफ़ॉर्म के लिए पुन: संकलित करना चाहते हैं।

2

मैंने जो सबसे नज़दीकी चीज देखी है वह मोनो है - हालांकि यह सभी सीएलआर पुस्तकालयों का समर्थन नहीं करता है, लेकिन मेरा मानना ​​है कि यह क्रॉस-प्लेटफ़ॉर्म है।

5

मुझे विश्वास है कि WinForms का एक अच्छा हिस्सा मोनो में लागू किया गया है। इसके लिए आपको लिनो के तहत मोनो इंस्टॉल करना होगा। आपके पास संगतता समस्याएं हो सकती हैं, हालांकि, चूंकि मोनो माइक्रोसॉफ्ट प्रयास नहीं है और आधिकारिक तौर पर उनके द्वारा समर्थित नहीं है।

+3

हां के बराबर है, लेकिन यह एक बहुत अच्छा * सामुदायिक प्रयास है, और मैंने केवल संगतता की समस्याएं देखी हैं जब मैं पूरी तरह से हास्यास्पद कुछ कर रहा था (टिप्पणियां वर्णन करने के लिए बहुत कम हैं: डी)। सामान्य डेस्कटॉप प्रोग्रामिंग आमतौर पर ठीक है। –

+0

@ व्यक्ति-बी, मैं मानता हूं, यह एक बहुत अच्छा सामुदायिक प्रयास है :-) –

+2

जहां तक ​​मुझे पता है कि WinForms 2.0 के सभी लागू किए गए हैं। –

13

शायद GTK# निकटतम होगा।

मुझे पता है कि दूसरों ने मोनो कहा है, लेकिन यह बिल्कुल सही नहीं है। .NET के लिए मोनो है क्योंकि माइक्रोसॉफ्ट के जावा वीएम सूर्य के जावा रनटाइम के लिए है। मोनो वास्तव में स्विंग के रूप में एक ही वैचारिक अंतरिक्ष में नहीं है। इसके लिए, जीटीके # एक करीबी मैच है।

+2

मुझे पता है कि आप क्या कह रहे हैं, अपने प्रश्न में उन्होंने एडब्ल्यूटी या स्विंग के बारे में पूछा - लेकिन मुझे लगता है कि वह वास्तव में पूछ रहा है कि "मैं क्रॉस-प्लेटफार्म सी # ऐप्स कैसे लिख सकता हूं?"। –

5

This page में मोनो द्वारा समर्थित जीयूआई टूलकिट की एक सूची है, जिसमें उनमें से प्रत्येक के लिए पेशेवर और विपक्ष शामिल हैं। जैसा कि अन्य ने सुझाव दिया है, WinForms, GTK #, और WxNet सभी व्यवहार्य विकल्प हैं।

0

Windows.Forms के बावजूद नेट

के लिए जीयूआई अनुप्रयोगों के विकास के लिए मानक पुस्तकालय बहुत अच्छी तरह से Windows पर समर्थित किया जा रहा, संस्करण 2.0 पूरी तरह से भी मोनो द्वारा कार्यान्वित किया जाता है, जो यह मोनो द्वारा समर्थित सभी प्लेटफार्मों पर उपलब्ध हो जाता है ।

दूसरी ओर डब्ल्यूपीएफ अवधारणात्मक रूप से नई लाइब्रेरी है, क्योंकि अब यह मुख्य रूप से केवल विंडोज़ पर ही समर्थित है और इसके सिल्वरलाइट कार्यान्वयन - मूनलाइट द्वारा मोनो द्वारा समर्थित इसका सबसेट है।

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

यदि आप कुछ नया प्रयोग करना और सीखना चाहते हैं या यदि आप विंडोज के लिए नया एप्लीकेशन विकसित कर रहे हैं तो WPF जाओ। क्लाइंट जीयूआई अनुप्रयोगों के लिए यह नई तकनीक है।

+0

मोनो विंडोज़ नहीं चला सकता है। विंडोज़ से लिनस या मैक पर फोरम। फोरम Win32 एपीआई कॉल पर निर्भर करता है। –

16

है Eto.Forms, जो के शीर्ष WPF, WinForms, जीटीके पर एक अमूर्त परत है (GitHub पर), और MonoMac/कोको - तो आप बिना सभी प्लेटफार्मों पर एक देशी यूआई प्राप्त कर सकते हैं प्रत्येक मंच के लिए फिर से लागू करने के लिए।आपको सबसे कम आम denominator से पीड़ित नहीं है, क्योंकि आप प्रत्येक प्लेटफार्म के लिए विशिष्टताओं को लागू कर सकते हैं (यदि वांछित है, लेकिन आवश्यक नहीं है)।

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

+0

हैलो! क्या मैं विंडोज पर जीटीके # के साथ ईटो.फॉर्म का उपयोग कर सकता हूं? धन्यवाद! –

+0

@ user2656632 हाँ, आप निश्चित रूप से कर सकते हैं। बस उपयुक्त मंच को Eto.Forms.Aplication कन्स्ट्रक्टर को पास करें। (; – Curtis

2

आईओएस, एंड्रॉइड और विंडोज मोबाइल के लिए, Xamarin.Forms है। http://xamarin.com/forms यह एक अमूर्त परत है जो आपको क्रॉस-प्लेटफ़ॉर्म कोड लिखने की अनुमति देती है, जो हुड के नीचे देशी जीयूआई टूलकिट से जुड़ी होती है।

मैं इस तरह अधिक समाधान के लिए देख रहा हूँ - मुझे परवाह न केवल मोबाइल प्लेटफार्मों, लेकिन यह भी डेस्कटॉप प्लेटफार्मों (विंडोज, मैक OSX, फेडोरा/Ubuntu/आदि लिनक्स)

3

यह एक पुराना सवाल है, लेकिन जैसा कि के बारे में एक अद्यतन, मोनो और ज़ैमरिन का संयोजन आपके आधुनिक क्रॉस-प्लेटफ़ॉर्म की ज़रूरतों के लिए काम करना चाहिए।

http://www.mono-project.com/docs/gui/winforms/

माइक्रोसॉफ्ट सिर्फ मुक्त-स्रोत बना नेट है और उनके अगले संस्करण के साथ Linux और MacOS के लिए नेट कोर लाने के लिए प्रतिबद्ध है। माइक्रोसॉफ्ट ने मोनो और एक्समारिन के साथ विशेष रूप से अपने एंड्रॉइड और लिनक्स पुस्तकालयों की सहायता के लिए घनिष्ठ साझेदारी भी की है। https://www.nevron.com/products-open-vision.aspx:

http://www.hanselman.com/blog/AnnouncingNET2015NETAsOpenSourceNETOnMacAndLinuxAndVisualStudioCommunity.aspx

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