2011-07-18 13 views
7

मैं अपनी खिलौना भाषा के लिए डीएलआर का उपयोग करने में देख रहा हूं, और मैं थोड़ा उलझन में हूं। यदि .NET 4.0 में LINQ अभिव्यक्ति पेड़, गतिशील ऑब्जेक्ट्स और "गतिशील" प्रकार है, तो क्या हमें वास्तव में अब डीएलआर की आवश्यकता है? डीएलआर क्या प्रदान करता है कि मेरे जीवन में एक भाषा डेवलपरक्या डीएलआर को .NET 4.0 में आवश्यक है?

--- संपादित के रूप में आसान बनाने के हैं ----

मुझे मेरे सवाल का एक सा बेहतर समझाता हूँ। कोडप्लेक्स (dlr.codeplex.com) पर मिली डीएलआर परियोजना, क्या अब इसके लिए बहुत आवश्यकता है? क्या इस डीएलआर परियोजना की सभी विशेषताएं .NET 4 में घुमाई गई हैं? या क्या डीएलआर में कुछ मूल्य बचा है?

+0

"गतिशील" प्रकार हुड के नीचे डीएलआर का उपयोग करता है। –

+0

गतिशील == डीएलआर। तो नहीं। –

उत्तर

2

यह आपके प्रश्न का काफी जवाब नहीं देता है लेकिन मुझे थोड़ी देर पहले माइक्रोसॉफ्ट छोड़ने के बारे में जिम ह्यूगुनिन के संदेश को पढ़ने में बहुत दिलचस्पी थी।

उन चीजों में से एक जो उन्होंने इंगित किया था कि डीएलआर हमारे पास बहुत अच्छी प्रगति के पीछे ड्राइवर था। नेट 4.0 जो अब आप कहते हैं कि आपको अब डीएलआर की आवश्यकता क्यों नहीं है।

संपादित करें: पृष्ठभूमि में से लिंक करें - http://hugunin.net/microsoft_farewell.html

दूसरी ओर, मुझे लगता है कि DynamicSite प्रणाली अभी भी कुछ है कि, के लिए काफी मूल्यवान है, जबकि जरूरी कुछ महत्वपूर्ण CLR अपने आप में डाल करने के लिए नहीं है।

दूसरा संपादन: यह वास्तव में एक दिलचस्प सवाल है, मैं कोडप्लेक्स पर दस्तावेज़ों को देख रहा हूं। जैसा कि आप बताते हैं और स्पष्ट करते हैं, .NET 4.0 सीएलआर डीएलआर विशेष बनाने के लिए उपयोग की जाने वाली चीजों को लागू करता है; डीएलआर सिंहावलोकन पढ़ना, मुझे लगता है कि मूल रूप से विचार यह है कि डीएलआर के साथ लागू की जाने वाली चीजों को फ्रेमवर्क के नए संस्करण की प्रतीक्षा करने के बाद नई सुविधाओं तक पहुंच प्राप्त करने का लाभ होता है।

यह म्यूट हो सकता है क्योंकि उन्होंने कुछ समय के लिए डीएलआर का एक नया संस्करण जारी नहीं किया है! इस कोर में से एक है -

साझा एएसटी (अभिव्यक्ति पेड़):

एक अन्य संभावित लाभ है, लेकिन मैं मानता मैं ठीक से इस का पता लगाया नहीं किया है, कि डीएलआर में एएसटी में अधिक सुविधाएं हैं है डीएलआर के खंभे। हमने LINQ अभिव्यक्ति पेड़ को प्रवाह, असाइनमेंट इत्यादि शामिल करने के लिए विस्तारित किया है। हम सभी अभिव्यक्ति पेड़ v1 और v2 (डीएलआर के लिए नई सामग्री) के स्रोत भी भेजते हैं। अभिव्यक्ति ट्रेस एनईईटी को भाषाओं को पोर्ट करने के लिए बार को कम करने के भाग हैं, और हम उन्हें बाइंडर्स और डायनामिक मेटा ऑब्जेक्ट प्रोटोकॉल में उपयोग करते हैं।

+0

मेरे प्रश्न को बेहतर तरीके से समझाने के लिए एक संपादन जोड़ा गया। –

1

इस विकी पेज (http://en.wikipedia.org/wiki/Dynamic_Language_Runtime) के अनुसार, डीएलआर का उपयोग आयरनपीथन और आयरन रूबी के साथ किया जाता है, इसलिए हाँ, इसकी अभी भी आवश्यकता है।

यदि आप अपने विकास के लिए अधिक गतिशील भाषा का उपयोग कर सकते हैं तो यह आपके जीवन को आसान बना देगा।

1

कोडप्लेक्स पर डीएलआर खुला स्रोत है, इसलिए आपकी भाषा की ज़रूरतों को पूरा करने के लिए सुधार/परिवर्धन करना बहुत आसान है।

3

डीएलआर के विकास के दौरान हमने इसे दो हिस्सों में विभाजित किया - आंतरिक परत और बाहरी परत। आंतरिक परत में कॉल साइट कैशिंग, विस्तारित अभिव्यक्ति पेड़, और मेटा ऑब्जेक्ट प्रोटोकॉल शामिल था। इसका उद्देश्य था .NET 4.0 में जोड़ा गया था।

बाहरी परत में होस्टिंग एपीआई, अभिव्यक्ति वृक्ष दुभाषिया, COM इंटरऑप समर्थन, .NET विधियों को कॉल करने के लिए एक अनुकूलन अधिभार रिज़ॉलर, अधिकांश डीएलआर संचालन के लिए एक डिफ़ॉल्ट बाइंडर और कई अन्य विभिन्न सहायक शामिल थे। इनमें से कोई भी डब्ल्यू/.NET ढांचे को भेज दिया गया है लेकिन अभी भी आपके लिए उपयोगी हो सकता है। .NET 4.0 पर इसका उपयोग करते समय यह डीएलआर एपीआई को डब्ल्यू/.NET 4.0 भेज दिया जाता है।

बाहरी परत को दो हिस्सों में विभाजित किया गया - होस्टिंग API (Microsoft.Scripting.dll) और बाकी सब कुछ (Microsoft.Dynamic.dll)। यदि आप चाहते हैं कि लोग आयरनपीथन और आयरन रूबी की मेजबानी करते हैं तो आप अपनी भाषा को होस्ट करने में सक्षम होना चाहते हैं, तो आप डीएलआर होस्टिंग एपीआई को लक्षित कर सकते हैं। और आप या तो Microsoft.Dynamic.dll का उपयोग कर सकते हैं या चक्र से फिर से आविष्कार करने के बजाय बस इसके उपयोगी कोड खींच सकते हैं। किसी भी मामले में यदि आप नवीनतम संस्करण चाहते हैं तो आपको IronPython/IronRuby वेब साइट्स की जांच करने की आवश्यकता होगी क्योंकि माइक्रोसॉफ्ट अब सक्रिय परत घटकों को सक्रिय रूप से विकसित नहीं कर रहा है।