यह देखने के लिए कि हम अपने .NET क्लास लाइब्रेरी, या कम से कम इसके हिस्सों को सिल्वरलाइट में लाने के लिए कितना काम करेंगे, ताकि हम दो दुनिया के बीच व्यापार तर्क का पुन: उपयोग कर सकें। मैं सोच रहा हूं कि दूसरों को इस तरह की चीज़ों का अनुभव है या नहीं।.NET और Silverlight के बीच साझा कोड की व्यवहार्यता?
बातें मैंने देखा है, मेरे सिर के ऊपर से: (उदाहरण के लिए ब्राउज़ करने योग्य (गलत)) लापता विशेषताओं की
- बहुत सारे
- इंटरफेस लापता, या वर्तमान, लेकिन खाली बहुत सारे (ICloneable है छिपा, ITypedList लापता)
- प्रतिबिंब मतभेद (सब कुछ से पहुंचा जा सकता जरूरतों सार्वजनिक होने के लिए)
- कुछ आधार वर्ग मतभेद (कोई घटक?)
तो मैं सोच रहा हूं, क्या यह वास्तव में मेरे लिए संभावना के रूप में देखने के लिए संभव है?
मुझे प्रारंभिक कोड चल रहा है, लेकिन मुझे केवल मूलभूत कार्यक्षमता पर टिप्पणी करना पड़ा, ज्यादातर सूचियों को संभालने के आसपास, क्योंकि वे आईटीप्डलिस्ट और कुछ बेस क्लास पर आधारित हैं। स्पष्ट रूप से मुझे सिल्वरलाइट में ऑब्जर्जेबल कोलेक्शन में बदलने की जरूरत है, इसलिए सामना करने के लिए पूरे बेस-कोड को बदलने की जरूरत है।
मैंने बनाया वास्तविक व्यापार परीक्षण वर्ग 99.5% है जो मैंने .NET के लिए किया होगा, केवल कुछ मामूली परिवर्तन जो आसानी से .NET में उपयोग किए जा सकते हैं, जैसा कि मैंने किया होगा सिल्वरलाइट को देखने से पहले। दूसरे शब्दों में, यह व्यापार तर्क साझा करने के लिए व्यवहार्य दिखता है, बशर्ते मैं आधार वर्ग को संगत बना सकूं।
बस इतना स्पष्ट है कि मैं किस बारे में बात कर रहा हूं, यह है कि मैं मूल रूप से दो परियोजना फाइलें, एक .NET के लिए, और सिल्वरलाइट के लिए एक होगा, लेकिन वास्तविक सी # स्रोत कोड समान होगा, साझा किया जाएगा दो।
तो क्या किसी के पास इसका कोई अनुभव है? कोई सुझाव या दिशानिर्देश?
क्या यह इसके लायक होगा? यह निश्चित रूप से अधिक देखने की गारंटी देता है।
ठीक है, तो, मुझे लगता है कि आप किसी भी असुरक्षित समस्याओं को नहीं मानते हैं। यह सुनना अच्छा है, तो मैं निश्चित रूप से इस परियोजना के साथ आगे बढ़ जाऊंगा। –
लास: निश्चित रूप से कुछ चीजें गायब हैं; मैं अपने सिर के शीर्ष से याद नहीं कर सकता, लेकिन कुछ प्रतिबिंब चीजें, log4net, और इसी तरह से।लेकिन यह निश्चित रूप से surmountable है; (हालांकि, कम से कम वीएस -2008 में, कभी-कभी कुछ 'विषम' चीजें होती हैं; जब आप मुख्य प्रोजेक्ट से मौजूदा कक्षा को जोड़ने और इसे बदलने के लिए 'लिंक के रूप में जोड़ें' का उपयोग करते हैं, तो आपको इसे खोलना होगा (वास्तव में इसे खोलना) सिल्वरलाइट प्रोजेक्ट इससे पहले कि यह परिवर्तनों को पहचान सके)। फिर भी, कोई आत्मा-नष्ट करने वाले मुद्दों :) –
अच्छा। सबसे बड़ी समस्या की तरह दिखने वाली बात यह है कि मुझे अपनी सूची कक्षाओं के लिए आधार को फिर से लागू करना है, क्योंकि हम अपने व्यापार तर्क के माध्यम से सूचियों का उपयोग करते हैं, और हमारे पास कुछ विशेष सूची वर्ग हैं जो जानते हैं कि वे "व्यापार तर्क दुनिया में हैं ", लेकिन यह देखते हुए कि ऑब्जर्वेबल कोलेक्शन का उपयोग कैसे किया जाता है, ऐसा लगता है कि यह वही करेगा जो हमें चाहिए, बस इसे निपटने के लिए कोड को बदलना होगा। हमारे आईओसी कंटेनर ने minus app.config कॉन्फ़िगरेशन काम किया है, लेकिन हम वैसे भी इसका उपयोग नहीं करेंगे। बस आश्चर्य हुआ कि किसी और को कोई खनन क्षेत्र मिला है जिसे मैं तुरंत नहीं देख सका। –