2012-09-09 14 views
21

! चीजों को सरल बनाने के लिए मैं विंडोज स्टोर अनुप्रयोगों (मेट्रो या आधुनिक यूआई के रूप में भी जाना जाता है) के रूप में "ऐप" के रूप में और सामान्य डेस्कटॉप अनुप्रयोगों को "एप्लिकेशन" के रूप में संदर्भित करता हूं!विंडोज स्टोर ऐप और मूल डेस्कटॉप एप्लिकेशन के बीच संचार

मेरा मानना ​​है कि यह अभी भी डेवलपर्स के लिए ऐप-डेवलपमेंट से संबंधित सबसे अस्पष्ट अभी तक महत्वपूर्ण प्रश्नों में से एक है, जिन्होंने पहले ही बाजार पर अनुप्रयोग स्थापित किए हैं: विंडोज 8 सिस्टम पर ऐप्स और एप्लिकेशन के बीच संचार का प्रबंधन कैसे करें? (कृपया सिद्धांतों पर बहस शुरू न करें - ऐसे बहुत सारे उपयोग मामले हैं जहां यह वास्तव में आवश्यक है!)

मैं मूल रूप से पिछले कुछ दिनों में लेखों के हंड्रेट पढ़ता हूं लेकिन फिर भी यह स्पष्ट नहीं है कि इसे कैसे करना है पहली बार से। मुख्य रूप से क्योंकि मुझे कई विरोधाभासी जानकारी मिलीं। मेरे प्रश्न के साथ मैं अंतिम विंडोज 8 संभावनाओं के दृष्टिकोण से इस समस्या को दोबारा संपर्क करना चाहता हूं।

को देखते हुए स्थिति:

  • अनुप्रयोग और एक ही सिस्टम पर आवेदन रन
  • 1: 1 संचार
  • आवेदन देशी (डेल्फी में लिखित) है
  • प्रशासक या यदि आवश्यक हो तो भी प्रणाली विशेषाधिकार आवेदन के लिए उपलब्ध हैं
  • 9 0% उपयोग मामलों में ऐप एप्लिकेशन और रिकॉर्ड्स द्वारा किए जाने वाले कार्यों का अनुरोध करता है कुछ पाठ परिणाम देता है। इस के लिए ऐप नहीं छोड़ा जाना चाहिए और न ही जमे हुए!
  • 10% में एप्लिकेशन एक क्रिया (कुछ ईवेंट द्वारा ट्रिगर) करता है और ऐप को सूचित करता है - परिणाम हो सकता है: टाइल पर या पहले से चल रहे और सक्रिय ऐप में कुछ जानकारी दिखा रहा है या यदि संभव हो तो ऐप चला रहा है/इसे ला रहा है अग्रभूमि के लिए।

अब "सरल" सवाल यह है कि इसे कैसे प्राप्त किया जाए?

  • क्या स्थानीय वेबसर्वर एक्सेस वास्तव में अब अनुमति है? (मुझे विश्वास है कि यह लंबे समय तक नहीं था लेकिन अब अंतिम रिलीज के बाद से है)
  • डब्ल्यूसीएफ? (-> स्पष्ट रूप से MS doesn't recommend that anymore)
  • स्थानीय आरईएसटी/एसओएपी सर्वर पर HTTP अनुरोध?
  • WinRT syndication API? (आरएसएस/परमाणु प्रतिक्रियाओं के साथ webservice पहुंच का एक और रूप)
  • WebSockets (जैसे MessageWebSocket)?
  • टीसीपी/आईपी संचार का कुछ अन्य रूप?
  • इन-आउटपुट के लिए एक टेक्स्ट फ़ाइल साझा करना (वास्तव में बस इस दर्द के बारे में सोचना, लेकिन कम से कम यह संभावना है कि एमएस ब्लॉक नहीं कर सकता ...)
  • नामित पाइप्स की अनुमति नहीं है, है ना?

एसओ पर इस विषय पर कुछ चर्चाएं हैं, हालांकि उनमें से अधिकतर अब अद्यतित नहीं हैं क्योंकि एमएस विंडोज 8 के अंतिम संस्करण को रिलीज़ करने से पहले बहुत कुछ बदल गया है।पुरानी और नई जानकारी को मिश्रित करने के बजाय मैं अपने लिए और अन्य सभी विंडोज़ एप्लिकेशन और ऐप डेवलपर्स के लिए इस समस्या का एक निश्चित और वर्तमान उत्तर खोजना चाहता हूं। धन्यवाद!

+0

मैं स्थानीय फ़ाइल के माध्यम से संवाद करने में सक्षम होने पर भी भरोसा नहीं करता। AFAIK, WinRT और डेस्कटॉप वर्तमान में एक ही सुरक्षा टोकन साझा करते हैं, लेकिन यूएसी के समान एक स्प्लिट-टोकन सिस्टम समझदार होगा और विंडोज के भविष्य के संस्करणों में अच्छी तरह से पेश किया जा सकता है। (एनबी: मैं * अनुमान लगा रहा हूं * यहां, यह प्राप्त जानकारी पर आधारित नहीं है।) इसके अलावा, यदि एमएस विंडोज स्टोर ऐप के किसी भी प्रकार की ऑडिटिंग करता है, तो क्या आप यह देखकर बाहर निकल जाएंगे कि आप क्या कर रहे थे? –

+0

@ हैरी वैसे मुझे लगता है कि इसे बाहर करने के लिए कोई रास्ता नहीं है ... यह वास्तव में बहुत दुखद है कि एमएस कैसे अनुप्रयोगों और ऐप्स को एक साथ लाने के इस पूरे परिदृश्य को समझता है। एक तरफ वे एक ही डिवाइस में दोनों दुनिया से शादी करने की कोशिश करते हैं - यह इंगित करते हुए कि यह वास्तव में Win8 टैबलेट चुनने का सबसे अच्छा कारण है। दूसरी ओर वे उन दुनिया को सबसे अधिक संभव रखने के लिए सबकुछ करते हैं। वह कितना मूर्ख है? मुझे पता नहीं। – CodeX

उत्तर

11

यदि आप स्टोर में जा रहे किसी एप्लिकेशन के बारे में बात कर रहे हैं, तो किसी भी तंत्र के माध्यम से स्थानीय सिस्टम के साथ संचार की अनुमति नहीं है। ऐप विकास को आसान बनाने के लिए स्थानीय सिस्टम के साथ संचार कुछ डीबग परिदृश्यों में समर्थित है।

आप विंडोज स्टोर अनुप्रयोगों से फ़ाइल या प्रोटोकॉल हैंडलर के साथ डेस्कटॉप एप्लिकेशन लॉन्च कर सकते हैं, लेकिन कोई प्रत्यक्ष संचार नहीं है।

तो, बिंदु को दोहराने के लिए ... विंडोज़ स्टोर अनुप्रयोगों के लिए WinRT और डेस्कटॉप के बीच संचार की अनुमति नहीं है। केवल दो डीबग में दो वातावरण के बीच संचार की अनुमति है।

पीजी ने विभिन्न स्थानों पर पोस्ट किया है क्योंकि क्यों संचार की अनुमति नहीं है, सुरक्षा से लेकर, WinRT जीवन चक्र तक (यानी, आप ऐप निलंबित हो जाते हैं - यह फिर से कैसे संभाला जाता है: संसाधन, सॉकेट, रिमोट ऐप इत्यादि। - विफलता बिंदुओं के बहुत सारे) और तथ्य यह है कि स्टोर ऐप्स को बाहरी प्रोग्रामों पर निर्भरता नहीं हो सकती है (यानी, मुझे ऐप चलाने के लिए आपके स्थानीय डेस्कटॉप ऐप/सेवा की आवश्यकता है, लेकिन मैं आपके ऐप/सेवा को कैसे इंस्टॉल करूं? आप स्टोर ऐप में एकीकृत नहीं हो सकता है। आप एक और स्टोर डेस्कटॉप ऐप एंट्री प्रदान कर सकते हैं, लेकिन यह एक खराब उपयोगकर्ता अनुभव है।) वे उच्च स्तर के सारांश हैं।

+2

यह एक फ़ाइल के माध्यम से किया जा सकता है - जो अवरुद्ध नहीं है। यह सुंदर नहीं कह रहा है, लेकिन यह संभव है। मैं भी एक नामित पाइप काम करता हूं, लेकिन मुझे यकीन नहीं है। –

+1

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

+0

@ डोमिनिक होप्टन फाइलों पर सही है, हालांकि यह वास्तव में प्रत्यक्ष संचार नहीं है :) AFAIK नामित पाइप काम नहीं करते हैं। यह पहले पीजी द्वारा किए गए बयानों पर आधारित है। शायद कुछ बदल गया, लेकिन मुझे किसी भी बदलाव से अवगत नहीं है। –

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