2011-09-17 11 views
16

बिल्ड 2011 मुख्य नोट और डेमो में, वे हमेशा सी ++, सी #, विजुअल बेसिक और जावास्क्रिप्ट के बारे में बात कर रहे थे। क्या मैं मेट्रो स्टाइल ऐप को एफ # के साथ नहीं बना सकता? या यह कहना सुरक्षित है कि अगर यह सी # के साथ काम करता है, तो यह एफ # के साथ भी काम करता है?एफ # के साथ मेट्रो स्टाइल एप्स?

उत्तर

12

या यह कहने योग्य है कि यह सी # के साथ काम करता है तो यह एफ # के साथ भी काम करता है?

हां, इस तरह यह काम करना चाहिए। जावास्क्रिप्ट और सी/सी ++ के अलावा, सीएलआर के शीर्ष पर चलने वाली किसी भी सीएलएस अनुपालन वाली भाषा के पास WinRT API तक पहुंच होगी।

वी.एस. 2011 एक्सप्रेस संस्करण आप टूलींग समर्थन नहीं मिलता है, लेकिन मैं यह अनुमान में

दुर्भाग्य से या अन्य संस्करणों को उत्तरोत्तर जोड़ दिया जाएगा:

enter image description here

+18

यह काफी आसान नहीं है। सच है, रनटाइम प्रोजेक्शन आईएल को संकलित करने वाली किसी भी चीज़ के लिए पूरी तरह से पारदर्शी है, लेकिन अधिकांश कंपाइलरों को संकलन-समय (प्रकार की जांच के लिए) पर असेंबली से टाइप जानकारी लोड करने की भी आवश्यकता होती है। इसका मतलब है .winmd फ़ाइलों को पढ़ने और विश्लेषण करने में सक्षम होना, जिनके पास वेनिला सीएलआई असेंबली की तुलना में कुछ एक्सटेंशन हैं। इसके अलावा .winmd फ़ाइलें सीएलआर प्रोजेक्शन नियमों को लागू किए बिना WinRT प्रकारों का वर्णन करती हैं - उदा। यदि आप उन्हें पढ़ते हैं तो आपको 'IIterable ' WinRT इंटरफ़ेस को लागू करने वाला एक प्रकार दिखाई देता है, लेकिन रनटाइम पर सीएलआर इसे 'आईनेमेरेबल ' पर मैप करेगा। तो संकलक समर्थन की जरूरत है। –

8

मैं एक ही सवाल था और एक ब्लॉग पोस्ट बनाया: Create a Metro App in F# (NOT)

कुछ मुद्दों के होते हैं:

  • आप संदर्भ नहीं दे सकता साधारण नेट dll के (यहां तक ​​कि सी # में)। उन्हें को WinRT के "संदर्भ" के साथ पुन: संकलित किया जाना चाहिए। इस के कारण आप F # dll का संदर्भ नहीं दे सकते। मुझे लगता है कि यह हल हो जाएगा जब F # 3.0 जारी हो जाएगा (स्रोत: बिल्ड पर डॉन सिमे से F # स्लाइड को समझना)।
  • मेट्रो ऐप्स बनाने के लिए F # की क्षमता। यह एफ # टीम द्वारा निर्मित होना चाहिए। यह एक खुला प्रश्न है। यह सब-एफ # दृष्टिकोण है (डब्ल्यूपीएफ में यह आज संभव है लेकिन अनुशंसित नहीं है)।
  • निर्माण मेट्रो फ्रंट-एंड परियोजनाओं के लिए टूल समर्थन। एफ # 3.0 रिलीज के लिए यह मामला नहीं होगा। (स्रोत: बिल्ड पर डॉन सिमे से एफ # स्लाइड को समझना)।
6

दृश्य स्टूडियो 11 डेवलपर पूर्वावलोकन (पूर्ण, एक्सप्रेस नहीं), मैं निम्न चेतावनियां के साथ एक सी # मेट्रो शैली आवेदन से संदर्भ और एफ # कोड को चलाने के लिए सक्षम था का उपयोग करना:

  • आप एक मिल जाएगा चेतावनी बनाएं कि यह कहें कि परियोजना को संदर्भित नहीं किया जा सकता है, भले ही विजुअल स्टूडियो आपको इसे जोड़ने की अनुमति दे।

  • आपको FSharp.Core सहित F # प्रोजेक्ट में सभी डीएलएल के सभी संदर्भों को हटाना होगा।

इन चरणों का यह एक सी # मेट्रो शैली आवेदन से एफ # कोड चलाया जा सकता है का पालन करके, लेकिन यह मूल भाषा पुस्तकालयों के लिए संदर्भ के बिना एफ # में किसी भी उपयोगी कोड लिखने के लिए लगभग असंभव है। आइए आशा करते हैं कि वे लाइब्रेरी को जल्द ही WinRT संगत होने के लिए अपडेट करें।

1

प्रश्न यहाँ उत्तर दिया गया है: Windows 8 and F# यद्यपि आप नहीं बना सकते और डिजाइन मेट्रो एफ # में सीधे एप्लिकेशन, आप अभी भी तथाकथित पोर्टेबल पुस्तकालय एफ # में सभी मॉडल और ViewModels साथ बना सकते हैं और एक और मेट्रो परियोजनाओं में इसका इस्तेमाल कर सकते हैं। यह आदर्श नहीं है, लेकिन यह काम करता है।

1

मैंने पोर्टेबल लाइब्रेरी में .NET3.5-4.0 के लिए अपनी स्टॉक चार्ट लाइब्रेरी पोर्ट की है, यह सी # मेट्रो एप्लिकेशन और कुछ मेट्रो यूआई पुल के साथ मेट्रो पर काफी अच्छी तरह से काम करता है। मुझे आश्वस्त है कि मैं कई हिस्सों में मेट्रो एप्लिकेशन बनाने के लिए एफ # का उपयोग कर सकता हूं।

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