2011-01-06 5 views
12

के बीच कोड साझा करने का सबसे अच्छा तरीका मेरे पास एक समाधान है जिसमें सिल्वरलाइट 4 और एक WPF 4 समाधान दोनों शामिल हैं। एक ऐप का वेब संस्करण है और एक डेस्कटॉप संस्करण है।WPF और Silverlight

दोनों परियोजनाओं में समान डोमेन कक्षाएं और इंटरफेस होते हैं और दोनों स्टोरेज और अन्य सामान के लिए क्लाउड तक पहुंचते हैं।

मैं एक सामान्य इंटरफेस और क्लासेस प्रोजेक्ट बनाना चाहता था, इसलिए मैंने कक्षा पुस्तकालय बनाया, लेकिन आप इसे नहीं जानते, सिल्वरलाइट क्लास लाइब्रेरी का संदर्भ नहीं जोड़ सकता है। तो मैं एक Silverlight कक्षा लाइब्रेरी के रूप में आम प्रोजेक्ट बनाया, लेकिन जब मैं WPF परियोजना से संदर्भ है कि मैं चेतावनी मिलती है:

Warning The project 'Interface.Common.Silverlight' cannot be referenced. The referenced project is targeted to a different framework family (Silverlight)

और जब मुझे लगता है कि पुस्तकालय से किसी भी वर्ग का उपयोग मैं भी वर्ग लोड हो रहा है क्रम त्रुटियों मिल क्योंकि "System.Windows रनटाइम पर नहीं मिल सकता"

मैं दो परियोजनाओं के बीच कोड साझा करना चाहता हूं, यह एक साफ तरीके से कैसे प्राप्त किया जा सकता है?

किसी भी मदद के लिए धन्यवाद आप दे सकते हैं

+1

MSDN से संदर्भित किया जा सकता - शेयरिंग सिल्वरलाइट और WPF के बीच कोड: http://msdn.microsoft.com/en-us/library/ff921109(v=pandp.40).aspx –

+0

धन्यवाद , मैं अब यह कर रहा हूं, लेकिन अभी भी बहुत सारे प्रश्न हैं ... जैसे कि आप एसएल और डब्ल्यूपीएफ के बीच एज़ूर एक्सेस कोड साझा कर सकते हैं? – Mark

+2

ध्यान देने वाले खोजकर्ता! [पोर्टेबल क्लास लाइब्रेरीज़] देखें (http://msdn.microsoft.com/en-us/library/gg597391.aspx), अब .NET 4.0 में समर्थित है! – Will

उत्तर

7

दो समानांतर परियोजनाओं WPF के लिए एक और Silverligth के लिए एक बनाएं। परियोजनाओं में से एक के लिए, फ़ाइलों को फ़ाइलों के बजाय लिंक के रूप में जोड़ें।

मैं सिल्वरलाइट 4, WPF, और विंडोज फोन के लिए एक कोड आधार के साथ Microsoft Silverlight Analytics Framework के लिए इस सफलतापूर्वक किया है 7.

+0

तो दो कॉमन। इंटरफेस प्रोजेक्ट्स (कॉमन.इंटरफेस.एल. और कॉमन.इंटरफेस.पीएफएफ) बनाएं और इनमें से एक में फाइलें (कौन सा?) वास्तविक फाइलों के बजाय लिंक होंगे? यह क्या हासिल करता है? – Mark

+0

प्रोजेक्ट में -> मौजूदा आइटम जोड़ें बटन जोड़ें के बगल में ड्रॉपडाउन तीर देखें। लिंक्ड सी # फाइलों का उपयोग करके स्लीवरलाइट और डब्ल्यूपीएफ परियोजनाओं के बीच कोड-शेयरिंग के उदाहरण के लिए एमवीएमएमलाइट टूलकिट डाउनलोड करें: http://mvvmlight.codeplex.com/ –

+0

हाँ, यह वही है जो मैं ज्यादातर लोगों को कर रहा हूं। इससे कोई फर्क नहीं पड़ता कि किस परियोजना में फाइलें हैं और जिनके पास "लिंक किए गए आइटम" हैं। फिर यदि आपके पास कोड है जो केवल एक मंच होना चाहिए, तो यह केवल एक प्रोजेक्ट में हो सकता है, और यदि कोई वर्ग थोड़ा अलग होना चाहिए तो आप #ifdef सिल्वरलाइट जैसी चीजें कर सकते हैं, या एक विधि/संपत्ति/आदि। प्रत्येक प्लेटफॉर्म के प्रोजेक्ट में एक ही कक्षा के दूसरे भाग में अलग-अलग परिभाषित किया गया है। –

0

क्या Silverlight के साथ XAML बंटवारे कोड और WPF

0

के बारे में "Portable" प्रोजेक्ट बनाएं । कि दोनों WPF और Silverlight

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