.NET फ्रेमवर्क के कई "फ्लेवर" हैं :
- पूर्ण ("सामान्य")
- ग्राहक प्रोफ़ाइल सबसेट
- वेब ब्राउज़र में सिल्वरलाइट
- विंडोज फोन पर "सिल्वरलाइट"
- कॉम्पैक्ट फ्रेमवर्क
- WinRT
जब एक नए प्लेटफ़ॉर्म पर C # कोड की आवश्यकता होती है, तो ऐसा लगता है कि Microsot पूर्ण CLR लेना पसंद करता है और इसे एक छोटे उपसमुच्चय पर ले जाता है, नई असेंबलियों को बनाने और इधर-उधर घूमने के बजाय, केवल मौजूदा असेंबलियों जैसे कि BCL में उपयोग करना। । उदाहरण के लिए सिल्वरलाइट में WPF के समान कार्यान्वयन को संदर्भित करने के बजाय, WPF के लिए अलग-अलग कक्षाएं / विधियाँ हैं (थोड़े अलग हस्ताक्षर या बहुत अलग कार्यान्वयन वाले कुछ तरीकों के लिए भी) List<T>
।
क्या यह आदर्श वास्तुकला है, या विरासत का संकेत है? क्या बीसीएल को सभी प्लेटफार्मों पर नहीं चलना चाहिए, प्रत्येक पर सिर्फ अलग प्रस्तुति / आईओ लाइब्रेरी के साथ? या बीसीएल और अन्य पुस्तकालयों को भी फूला हुआ है, और उन्हें अलग करने से कई पिछड़ी संगतता समस्याएं पैदा होंगी, स्वीकार्य होने के लिए?
यदि हम एक रिक्त कैनवास से शुरू करते हैं और पीछे की संगतता के बारे में चिंतित नहीं थे, तो क्या मौजूदा स्थिति वास्तव में कई प्लेटफार्मों को संभालने का सबसे अच्छा तरीका होगा?