बहुत से .NET सोर्स कोड उपलब्ध है, और इसका बहुत सारा ओपन सोर्स है, हालाँकि विभिन्न लाइसेंस के तहत। अभी भी अन्य कोड उपलब्ध है, लेकिन केवल संदर्भ उद्देश्यों के लिए और आपके कोड में उपयोग नहीं किया जा सकता है।
यह देखते हुए कि निर्धारित लक्ष्य है:
मैं एक जटिल मौजूदा एप्लिकेशन के लिए उस सीमा को बढ़ाना चाहूंगा जो इस सीमा को हिट करने के लिए बाध्य है। मैं प्रकार के इंटरफ़ेस को बदलना नहीं चाहता। मुझे विश्वास नहीं है कि मैं सभी कोड में सूक्ष्म बगों को पेश किए बिना टाइप के इंटरफ़ेस को बदल सकता हूं, जिसके परिणामस्वरूप बदलना होगा।
यदि इरादा वर्तमान पदानुक्रम प्रकार को अपडेट करने का है, तो कोड ओपन सोर्स है या नहीं, क्योंकि यह अप्रासंगिक है, भले ही आप समग्र प्रणाली में किसी भी परिवर्तन को लागू करने में सक्षम नहीं होंगे: भले ही आप विधानसभा की जगह ले सकें SQL सर्वर, आप इसे एक ही प्रमाणपत्र / निजी कुंजी के साथ साइन नहीं कर पाएंगे और इसलिए यह सिस्टम द्वारा उपयोग नहीं किया जाएगा।
हालाँकि, आप अपनी कार्यक्षमता बनाने के लिए अपनी SQLCLR उपयोगकर्ता-निर्धारित प्रकार (UDT) का निर्माण कर सकते हैं।
फिर भी , चूंकि यह .NET फ्रेमवर्क की बेहतर समझ प्राप्त करने से संबंधित है:
आप यहां अधिकांश सामग्री का स्रोत कोड देख सकते हैं: https://github.com/Microsoft/referencesource
और यहां तक कि अधिक सामान: https://github.com/dotnet/corefx
ऊपर उल्लिखित दोनों रिपॉजिटरी ओपन सोर्स हैं और ज्यादातर एमआईटी लाइसेंस के तहत शासित होते हैं, हालांकि आपको प्रत्येक स्थान में लाइसेंसिंग की जानकारी की समीक्षा करने की आवश्यकता होती है, और कभी-कभी विभिन्न फ़ोल्डरों में, निश्चित होने के लिए।
शेष कोड का एक बहुत कुछ यहाँ पाया जा सकता है: http://referencesource.microsoft.com/
ReferenceSource.Microsoft.com पर पाया गया कोड (ऊपर दिया गया लिंक) जो पहले दो लिंक पर भी नहीं मिला है (जो ओपन सोर्स हैं) ओपन सोर्स नहीं है और इसके बजाय MICROSOFT REFERENCE SOURCE LURENSE (MS-RSL) द्वारा शासित है , संबंधित भाग ("वाक्यांश के उपयोग की परिभाषा के बाद" संदर्भ उपयोग की परिभाषा डालने के लिए हल्के से संपादित किया जा रहा है):
लाइसेंसर आपको एक गैर-हस्तांतरणीय, गैर-अनन्य, दुनिया भर में, रॉयल्टी-फ्री कॉपीराइट लाइसेंस को संदर्भ उपयोग के लिए सॉफ़्टवेयर को पुन: प्रस्तुत करने के लिए अनुदान देता है: आपकी कंपनी के भीतर सॉफ़्टवेयर का उपयोग केवल संदर्भ के रूप में, डीबग करने के एकमात्र उद्देश्यों के लिए। आपके उत्पाद, आपके उत्पादों को बनाए रखना, या सॉफ़्टवेयर के साथ अपने उत्पादों की अंतर-क्षमता को बढ़ाना और विशेष रूप से आपकी कंपनी के बाहर सॉफ़्टवेयर वितरित करने के अधिकार को बाहर करता है।
हालाँकि, ऐसा प्रतीत होता है कि Microsoft.SqlServer.*
नामस्थान उन स्थानों में से किसी में उपलब्ध नहीं है। जिसका अर्थ है कि प्रश्न का सरल उत्तर है: "HierarchyID Open Source?" है: नहीं ।
यदि इच्छा स्रोत कोड को देखने की है, तो आपको DLL - Microsoft.SqlServer.Types.dll - को एक डिकम्पॉइलर के साथ खोलना होगा । लेकिन, वहाँ से निपटने के लिए संभावित कानूनी और / या नैतिक मुद्दे हैं। यह है स्वामित्व कोड तो वहाँ दो मुख्य बिंदुओं पर विचार करने के लिए कर रहे हैं:
जैसा कि SQL सर्वर एंड-यूज़र लाइसेंस एग्रीमेंट (EULA) में कहा गया है (और @ टॉमवी के उत्तर में उद्धृत किया गया है ), आप केवल " रिवर्स इंजीनियर, डिकम्पाइल या असम्बद्ध " गैर-प्रदान किए गए कोड "को केवल उस सीमा तक लागू कर सकते हैं, जिस पर कानून लागू होता है " । मतलब कि कुछ लोगों के लिए, ऐसा करना पूरी तरह से कानूनी है, लेकिन अन्य लोगों के लिए, इतना नहीं। तो आप एक स्थानीय बौद्धिक संपदा वकील से परामर्श करना चाह सकते हैं।
यदि यह आपके लिए विघटित करने के लिए कानूनी है, तो कानूनी भाषा का आशय, साथ ही यह तथ्य कि कुछ स्रोत कोड प्रदान किया गया है (जैसा कि शीर्ष पर जुड़ा हुआ है) लेकिन यह विशेष कोड नहीं है, निश्चित रूप से इसका मतलब है कि इच्छा आम जनता के लिए है। यह कोड देखें या न देखें। इसलिए विघटित होने के लिए कानूनी होना नहीं चाहिए क्योंकि यह भी नकल करने के लिए कानूनी है, लेकिन अधिक ताकि इसे एक संदर्भ के रूप में इस्तेमाल किया जा सके (यानी डीबगिंग, आदि के लिए)।