2012-07-03 10 views
5

सबसे पहले, कुछ पृष्ठभूमि के लिए:एक पार मंच के लिए देख रहे हैं, एंड-टू-एंड सी के ++ उदाहरण WPF/कोको अंतर

मैं एक नई जमीन एकाधिक पर चलने के लिए ऊपर से तैयार किया गया परियोजना शुरू करने के लिए तय कर लिया है प्लेटफ़ॉर्म (विंडोज़, आईओएस, ओएसएक्स, लिनक्स, एंड्रॉइड)। चूंकि मेरी पृष्ठभूमि ज्यादातर सी ++ है, मैं सी ++ 11 का उपयोग करके मूल कार्यक्षमता लिखना चाहता हूं। ऐसा कहा जा रहा है कि, प्रत्येक प्लेटफ़ॉर्म पर मुझे एक प्लेटफ़ॉर्म-विशिष्ट UI लिखना होगा जो सी ++ कोर के साथ इंटर-ऑपरेट कर सकता है।

पहले मंच मैं लक्षित कर रहा विंडोज है (दूसरा आईओएस है)। मैं एक SQLite डेटाबेस के साथ ही है कि (पंक्तियों डालने, मौजूदा डेटा जोड़ तोड़, आदि) एक WPF डेटा ग्रिड का उपयोग कर दर्ज किया जाएगा उपयोगकर्ता के आपूर्ति डेटा में संग्रहीत डेटा होगा। यह पहली बार डब्ल्यूपीएफ के साथ काम कर रहा है (हालांकि मैंने विंडोज फॉर्म का उपयोग किया है) और मेरा पहला समय एक प्रबंधित वातावरण में सी ++ के साथ काम कर रहा है। मैं इसे एक एमवीसी-स्टाइल आर्किटेक्चर बनाने की योजना बना रहा हूं, इसलिए मेरे दिमाग में SQLite मॉडल है, डब्ल्यूपीएफ दृश्य है, और सी ++ कोड नियंत्रक है।

वहाँ किसी भी उदाहरणों में दर्शाई गई एक सी ++ इंटरफ़ेस से डेटा हड़पने और सी # और WPF/का उपयोग कर नष्ट किए बिना mangling सी ++ कोड ही (क्योंकि यह कई पर काम करना चाहिए यह प्रदर्शित करने के लिए कैसे कर रहे हैं:

मेरा प्रश्न यह है प्लेटफार्मों)? मैं पी/आह्वान के बारे में एक छोटा सा पढ़ा है (थकाऊ है, लेकिन काम करता है) और मिश्रित विधानसभाओं (काम करता है, लेकिन मेरी सी वध करना होगा ++?), लेकिन गूगल उपयोगी नहीं किया गया है जब यह उदाहरण ठोस करने के लिए आता है (विशेष रूप से शामिल उन को आबाद करने WPF नियंत्रण एक सी ++ डीएलएल के माध्यम से प्राप्त डेटा के साथ)।

धन्यवाद!

संपादित करें: इस समस्या को मैं CXXI ​​में आए के दृष्टिकोण के लिए खोज है। मैं इससे बहुत परिचित नहीं हूं लेकिन ऐसा लगता है कि यह मेरी समस्या का एक आसान समाधान हो सकता है। कोई विचार? इन सभी अवधारणाओं की मेरी समझ सीमित है।

+1

मेरे पास कोई WPF अनुभव नहीं है, लेकिन मैं आपको बता सकता हूं कि आप जो कर रहे हैं वह कुछ मुश्किल हो जाएगा। जब आप ओएस एक्स ऐप पर जाते हैं (और मुझे यकीन है कि आईओएस एक जैसा है), आपको ऑब्जेक्टिव-सी कोड का थोड़ा सा लिखना होगा। मुझे लगता है कि यह आपके द्वारा बनाए जा रहे ऐप की प्रकृति पर निर्भर करता है, लेकिन आपको मूल रूप से प्रत्येक प्लेटफॉर्म के लिए इसे अधिकतर लिखना होगा। – Hassan

+1

आपके इनपुट हसन के लिए धन्यवाद।मुझे पता है कि मेरे पास मेरे सामने बहुत काम है लेकिन मेरा लक्ष्य प्रत्येक मंच के लिए यूआई को मूल रूप से कोड करना है। मुझे लगता है कि सर्वोत्तम उपयोगकर्ता अनुभव के साथ-साथ सर्वश्रेष्ठ शिक्षण अनुभव भी प्रदान करता है :) –

+1

आप सही हैं, यह सर्वोत्तम उपयोगकर्ता अनुभव प्रदान करता है। और यदि यूआई का सबसे कठिन हिस्सा टेबल है, तो मैं कहूंगा कि आप अच्छे आकार में हैं। मुझे आशा है कि कोई वास्तव में अब जवाब देगा ... – Hassan

उत्तर

3

दोनों XAML और WinForms के साथ काम करने के बाद, मुझे नहीं लगता कि आप मिल जाएगा WPF भी बहुत कुछ "मूल" अपने WinForms अनुभव की तुलना में महसूस किए जाने की है। दोनों मामलों में, सब कुछ .NET द्वारा सारणित है। लेकिन अगर आप डब्ल्यूपीएफ सीखना चाहते हैं, तो इसके लिए जाएं।

पी \ आह्वान ठीक कॉम करता है के रूप में काम करता है। सी ++ से अन्य भाषाओं में डेटा प्राप्त करने के अन्य तरीकों के लिए, इसे एक भाषा की बजाय आईपीसी समस्या के रूप में आने पर विचार करें। एक प्रक्रिया को दूसरे के बच्चे के रूप में चलाएं और sockets और अन्य प्रक्रियाओं से बात करने के लिए 0mq/clrzmq (see this for 0mq on iPhone - this for Android) और Thrift पर लाइब्रेरी देखें।

सॉकेट/0 एमक्यू के साथ, आप xml/json/Protobuf/Protobuf-net का उपयोग एक भाषा से दूसरी भाषा में क्रमबद्ध करने और deserialize करने के लिए कर सकते हैं। प्रोटोबफ के साथ, आपको केवल जेसन-एस्क्यू डेटा ऑब्जेक्ट्स का एक सेट बनाना होगा और कोड उत्पन्न करने के लिए लैंगेज-विशिष्ट टूल का उपयोग करना होगा। यह प्लेटफॉर्म और भाषाओं में आपकी डेटा ऑब्जेक्ट्स का ख्याल रखेगा, जिससे आप मजेदार सामान पर ध्यान केंद्रित कर सकते हैं। सीरियलाइजेशन एसक्यूएल के साथ भी अच्छी तरह से काम करेगा। इन सभी तकनीकों को कार्यान्वित करना आसान है और प्रत्येक के पास भाषा कार्यान्वयन का स्कोर है, जिससे आपके अगले जीयूआई तक चीजों को तार करना आसान हो जाता है।

उदाहरणों के संबंध में, यह सब इस बात पर निर्भर करता है कि आप रनटाइम के बीच अपना डेटा कैसे ले जाना चाहते हैं।

+0

क्या आप सुझाव दे रहे हैं कि WinForms आसान हो सकता है? मैंने अभी माना है कि डब्ल्यूपीएफ डाटाग्रिड के साथ काम करना सबसे आसान होगा। मुझे वास्तव में आईपीसी का उपयोग करने का विचार पसंद है लेकिन इस परियोजना के लिए मुझे लगता है कि यह अत्यधिक जटिल और ओवरकिल है। हालांकि इसके लिए धन्यवाद। बहुत ही रोचक। इस बिंदु पर मैं अभी भी बाहरी कोड (कम से कम रनटाइम पर) पर भरोसा किए बिना एक उदाहरण खोजना चाहता हूं। CXXI दिलचस्प लग रहा है। –

+1

डब्ल्यूपीएफ की तुलना में विनफॉर्म बहुत आसान है। ईमानदारी से, मुझे लगता है कि आप अपने डेस्कटॉप जीयूआई के लिए मोनो के साथ सबसे अच्छा होगा, लेकिन यह आपका कॉल है। – 0x1mason

+1

यदि यह मैं था, तो मैं मोनो या कुछ अन्य क्रॉस-प्लेटफार्म जीयूआई अबास्ट्रक्शन लेयर के साथ जाऊंगा, लेकिन यह ज्यादातर इसलिए है क्योंकि मुझे यूआई काम का आनंद नहीं मिलता है;)। उस ने कहा, मैं सराहना करता हूं कि आप प्लेटफॉर्म पर काम कैसे करते हैं, यह सीखकर आप क्या करने की कोशिश कर रहे हैं। हो सकता है कि आपको "मूल" से क्या मतलब है, उसे स्पष्ट करने की आवश्यकता हो - क्या आप विभिन्न तकनीकों की कोशिश करने में सबसे अधिक रुचि रखते हैं या क्या आप प्रत्येक ओएस पर नट्स और बोल्ट तक पहुंचने में सबसे अधिक रुचि रखते हैं? – 0x1mason