2013-04-27 5 views
10

मैं विजुअल स्टूडियो, विनफॉर्म के साथ एक एप्लिकेशन बना रहा था और मैं ओपनटीके का उपयोग कर रहा हूं। हाल ही में मैंने इसे क्रॉस-प्लेटफ़ॉर्म बनाने के बारे में सोचा था। मैं मोनो का उपयोग करने जा रहा हूं, क्योंकि मुझे कुछ और नहीं पता है। और मुझे जीटीके + के साथ पूरी तरह से कोई अनुभव नहीं है। मेरे आवेदन में, वर्तमान में 4 खिड़कियां हैं (बेशक भविष्य में और भी अधिक होगा)। मैं विंडोज, लिनक्स और ओएस एक्स में तेजी से आवेदन करना चाहता हूं। मैंने पढ़ा है कि जीटीके + WinForms से बेहतर है, लेकिन अभी भी यह सुनिश्चित नहीं है कि कौन से चयन करना है। तो, क्या मुझे जीटीके + के लिए सब कुछ रीमेक करना चाहिए या WinForms और के साथ रहना चाहिए क्यों? इसके अलावा, क्या कोई उपकरण है, जो मेरे लिए यह काम करेगा?क्या मुझे मोनो के लिए WinForms के बजाय जीटीके + के साथ जीयूआई फिर से लिखना चाहिए?

+0

[मोनो के साथ WinForms बनाम GtkSharp] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/751884/winforms-vs-gtksharp-with-mono) –

+1

मोनो बहुत गति प्राप्त कर रहा है, खासकर .NET कोर के साथ 5 इसके पीछे अपना समर्थन फेंक रहा है। एएसपी.NET भी यूआई विकास विकल्प के रूप में एक बड़ा खिलाड़ी बन रहा है और मोनो के साथ अच्छा खेलेंगे। – VoteCoffee

+0

WinForms के साथ संघर्ष करने के बाद मैं आपको बता सकता हूं कि जीटीके + निश्चित रूप से बहुत बेहतर है। साथ ही प्रत्येक जीटीके + लिखित ऐप में एक बोनस के रूप में एक अलग फ़ाइल चीजों में कॉन्फ़िगर करने का एक तरीका होता है जिसे प्रोग्रामर ओवरराइड नहीं किया जाता है। जैसे प्रत्येक पाठ विजेट के लिए Emacs आंदोलन कुंजी सक्षम करें। –

उत्तर

14

ईमानदारी से, आप हमें अपनी दर्शकों/इरादा बाजार के बारे में अधिक बताने के लिए एक महान जवाब है, लेकिन कुछ विकासशील अनुभव से मेरी $ 0.02 उपलब्ध कराने की आवश्यकता के लिए जा रहे डेस्कटॉप पर मोनो के लिए कि जीयूआई विकास एक बहु है यदि आप इसे "सही" करना चाहते हैं तो लक्ष्य संबंध। आपको साझा बैकएंड को असाधारण रूप से मॉड्यूलरली विकसित करने की आवश्यकता होगी, और उसके बाद प्रति मंच एक बार यूआई लिखें।

विंडोज

Windows.Forms मोनो पर लागू के रूप में आप Windows तुरंत लक्षित करते हैं और ओएस एक्स और लिनक्स पर कुछ हद तक एक अपंग फैशन में तैनात करने के लिए अनुमति देता है, यदि आपके ऐप अपनी प्रारंभिक अवस्था में है एक महान बैसाखी है। नोट, हालांकि, मुझे आईआरसी पर बताया गया है कि मोनो पर विंडोज़.फॉर्म विकास अनिवार्य रूप से मर चुका है। पुरानी बग्स अपडेट नहीं होती हैं, और, उदाहरण के लिए, मैं चयन बॉक्स में भाग गया जो ओएस एक्स पर रिचटेक्स्टबॉक्स में काम नहीं कर रहा है (परीक्षण के कुछ मिनटों के भीतर यह विंडोज़ के लिए लिब मोनो का उपयोग करता है। ओएस एक्स पर फोरम का उपयोग करता है)। यह सुनिश्चित करें कि यह वहां है, शायद त्वरित उपयोगिताओं के लिए अच्छा है जहां आप इसकी सीमाओं के आसपास कोड कर सकते हैं (उदाहरण के लिए here देखें)।

ओएस एक्स

ओएस एक्स लक्ष्य करते समय आप एक वास्तविक, वाणिज्यिक, अंतिम-उपयोगकर्ता एप्लिकेशन है, तो आप Interface Builder साथ इंटरफ़ेस, करने के लिए, उम आदत हो की जरूरत के लिए जा रहे हैं। मुझे यह स्पष्ट करना चाहिए कि एक्सकोड और इंटरफेस बिल्डर का उपयोग करने के लिए बिल्कुल की आवश्यकता है कि आपके पास ओएस एक्स चलाने वाले बॉक्स तक पहुंच है अन्यथा, आप विंडोज़ के साथ फंस गए हैं। फर्म या, अधिमानतः, मुझे लगता है, जीटीके #।

एक्समरिन ने एक्ससीओडी में बनाए गए मूल यूआई के लिए अपने आईडीई स्टब आउट कनेक्शन बनाने के लिए एक महान काम किया है। इस तरह वे आईओएस विकास के लिए भी करते हैं। यह काफी अच्छी तरह से काम करता है, हालांकि दस्तावेज कमजोर है। great video from 2011 from Michael Hutchingson describing this process है, हालांकि मुझे लगता है कि यह दांत में लंबा हो रहा है (यानी, "पुराना")। (Direct link to video)

मुझे लगता है कि यदि आप मैक ऐप स्टोर को लक्षित करना चाहते हैं तो इंटरफ़ेस बिल्डर भी आपकी एकमात्र असली पसंद है। लेकिन देखो, यह एक मूल यूआई है जो आपके सी # कोड पर है, जो कि सभी चीजों को माना जाता है, एक महान समझौता है।

लिनक्स

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

त्वरित टिप्पणी के

उदाहरण: BansheeGtk# का उपयोग करता है लक्षित करने के लिए OS X, Windows (अल्फा) और लिनक्स। आप कितना मुश्किल its mailing list और अन्य संसाधनों को देख कर एक बड़ी आवेदन पार मंच पर जीटीके # उपयोग करने के लिए है के लिए कुछ महान संदर्भ प्राप्त कर सकते हैं।

क्षमा करें समाचार कोई आसान नहीं है। कोई चांदी बुलेट/एकल सही जवाब नहीं है।


201607 अद्यतन: मुझे लगता है कि इस सवाल का जवाब धीरे धीरे पार मंच को लक्षित करने के Xamarin.Forms उपयोग करने के लिए हो रहा है। आप अभी भी एक अलग मैक इंटरफ़ेस लिखने में फंस सकते हैं, लेकिन इस बात पर विश्वास करने का कारण है कि Xamarin.Forms कुछ बिंदु पर भी समर्थन करेगा; निचे देखो।

दुर्भाग्यवश, अगर आप लिनक्स लक्षित कर रहे हैं, मुझे लगता है कि आप एक ही नाव में अभी भी कर रहे हैं के रूप में आप अब के लिए पहले थे।

  • विंडोज़: अब आप Xamarin.Forms and UWP का उपयोग कर सकते हैं।
  • MacOS: आप अभी भी मूलतः एक ही स्थान पर हैं, लेकिन मैं एक Xamarin कर्मचारी मुझे पिछले सप्ताहांत कि Xamarin.Forms ओएस एक्स के लिए विकास में अनधिकृत रूप से है बता मेरा मानना ​​है कि this is the repo on GitHub था। (टीवीओएस के लिए भी एक शाखा है।)
+1

अपने अनुभव को साझा करने के लिए धन्यवाद। –

+0

आप जावाएफएक्स का उपयोग क्यों नहीं करना चाहते हैं? यह गतिशील जीयूआई क्रॉस-प्लेटफॉर्म के निर्माण का समर्थन करता है। http://docs.oracle.com/javafx/ –

+0

@OlowookereEmmanuel खैर, ओपी निश्चित रूप से उपयोग कर रहा है और एक Microsoft विकास के वातावरण से परिचित है, और जीटीके # बनाम मोनो के बारे में विशेष रूप से पूछा। यद्यपि जावा और सी # अक्सर बहुत समान महसूस करते हैं, एक से दूसरे में जाने से भी गंभीर सिर का पुनरावृत्ति होता है, और आपको अपनी पसंदीदा भाषा में लिखे गए पुस्तकालयों का लाभ उठाने की अनुमति नहीं दी जाएगी - यहां, सी #। उस ने कहा, जावाएफएक्स एक दिलचस्प विकल्प हो सकता है।उम्मीद है कि स्विंग की तुलना में यह बेहतर है! ; ^) – ruffin

10

मैं सुझाव दूंगा कि आप विचार करें कि आपके लक्षित दर्शक क्या हैं। जीटीके # जैसे ढांचे का उपयोग करके यूआई लिखना एक अच्छा विचार प्रतीत हो सकता है लेकिन औसत उपयोगकर्ता के लिए आपका एप्लिकेशन उनके अन्य विंडोज़/ओएसएक्स अनुप्रयोगों की तरह नहीं दिखता है जो आसानी से लोगों को इसका उपयोग करने से रोक सकता है (जब तक कि यह किसी अन्य तरीके से वास्तव में असाधारण न हो)।

ऐसा करने का सबसे अच्छा तरीका (जो समय/बजट बाधाओं के कारण संभव नहीं हो सकता है) अपने आवेदन तर्क को एक अलग असेंबली में रखना है और फिर विंडोज के लिए विनफॉर्म (या डब्ल्यूपीएफ) का उपयोग करके प्रत्येक प्लेटफ़ॉर्म के लिए यूआई लिखें, लिनक्स के लिए MonoMac/ओएसएक्स और जीटीके # के लिए कोको। यह आपको उन सभी सुविधाओं पर उपयोग करने के लिए सीमित नहीं करेगा जो सभी प्लेटफ़ॉर्म पर उपलब्ध हैं जो उपयोगकर्ता अनुभव को बहुत कम कर देगा।

+2

+1 डब्ल्यूपीएफ का उल्लेख करने के लिए, जो आईएमओ विंडोज़ में एक गंभीर डेस्कटॉप यूआई बनाने के लिए एकमात्र सही व्यवहार्य तरीका है। देशी यूआई पर –

+0

दूसरा। यदि आपको मूल यूआई की आवश्यकता नहीं है, तो इसे इसके बजाय वेब/ब्राउज़र एप्लिकेशन के रूप में क्यों न करें? प्रत्येक आधुनिक मंच एचटीएमएल कर सकता है, और यह जीटीके + की तुलना में काफी बेहतर है। – Mathieson

1

मैं अब एक ऐसी ही समस्या का सामना कर रहा हूँ - क्या लेकिन कार्ल जोहन आवेदन तर्क अलग काम बहुत आसान हो जाएगा रखने के बारे में कहा। एक ViewModel पैटर्न (MVVM) में देखो, और के रूप में केंद्रीय तर्क यूआई नास्तिक हो जाता है कि आप प्रत्येक मंच के लिए बहुत कम कोड के पुनर्लेखन के लिए और परीक्षण होगा,।

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

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