2009-04-13 22 views
6

मैं रूबी को अपने ऐप में एकीकृत करने के बारे में सोच रहा हूं, लेकिन मेरे कुछ दोस्तों ने मुझे बताया कि सी # पहले से ही बहुत उच्च स्तर है। लेकिन मेरे लिए ऐसा लगता है कि बहुत तेज़ चीजें करने के लिए इसमें अधिक सामान है।क्या सी # ऐप्स में स्क्रिप्टिंग भाषाओं को एकीकृत करने के लिए यह समझ में आता है?

आप क्या सोचते हैं?

अगर मैं एकीकृत करता हूं, तो क्या इसे सीमित करने के लिए यह समझ में आता है ताकि आप ऐप की मौजूदा कार्यक्षमता का उपयोग करके कुछ भी कर सकें, लेकिन इसे विस्तारित नहीं कर सकते?

इसका कारण यह है कि भाषाओं को स्क्रीपिंग प्रदर्शन के लिए जाना जाता है, और यदि आप कहते हैं कि लोगों को ब्लर, कंट्रास्ट इत्यादि जैसे फ़िल्टर लिखने के लिए कहा जाता है, तो वे उन तरीकों से धीमे होंगे जो उन्हें होना चाहिए और अनुभव को कम करना चाहिए स्क्रिप्टर का ग्राहक, है ना?

+0

कई बार मैं चाहता हूं कि मैं यह भी कर सकूं। यकीन नहीं है कि यह व्यावहारिक है हालांकि। – CookieOfFortune

उत्तर

7

मैंने अनुप्रयोगों में स्क्रिप्टिंग (lua) को एकीकृत किया है, और मैंने उपयोगकर्ता द्वारा प्रदान किए गए कोड से गतिशील असेंबली ऑन-द-फ्लाई संकलित करके सी # खुद को "स्क्रिप्टिंग भाषा" के रूप में भी उपयोग किया है। मैंने उपयोगकर्ता द्वारा प्रदत्त असेंबली का उपयोग करके "प्लग-इन" सिस्टम भी लागू किए हैं जो विशिष्ट इंटरफेस या बेस क्लास के अनुरूप हैं।

विचार करने के लिए सुरक्षा, प्रदर्शन से लेकर अंतिम उपयोगकर्ता भ्रम पर विचार करने के लिए बहुत सी चीजें हैं। मुझे नहीं लगता कि आप "कंबल भाषाएं अनुप्रयोगों में नहीं हैं" जैसे कंबल कथन बना सकते हैं, या यहां तक ​​कि "स्क्रिप्टिंग भाषाएं अनुप्रयोगों में हैं"। किसी दिए गए विशिष्ट मामले को सभी विकल्पों और उन विकल्पों के परिणामों पर सावधानीपूर्वक विचार करने की आवश्यकता होती है जो चलने से पहले और कुछ ऐसा कर रहे हैं जिसे आप बाद में पछतावा कर सकते हैं।

3

किसी विशेष सुविधा जब अपने एप्लिकेशन के माध्यम से मूल रूप से एक स्क्रिप्ट इंटरफेस के माध्यम से कार्यान्वित करने के लिए एक प्रदर्शन हिट भी हो सकते हैं, लेकिन अगर आप अपने अनुप्रयोग स्क्रिप्ट के लिए अपने उपयोगकर्ताओं की अनुमति देने के लिए करना चाहते हैं और यह उन्हें एक विशेषता है कि लागू करने के लिए अनुमति देता है उनके लिए उपयोगी है जो आपके ऐप में मूल रूप से समर्थित नहीं है, तो यह मेरे लिए एक अच्छा विचार प्रतीत होता है। यदि आप किसी विशेष उपयोगकर्ता स्क्रिप्ट के साथ समाप्त होते हैं जो बहुत लोकप्रिय है तो आप इसे बाद में रिलीज में अपने ऐप की मूल विशेषता के रूप में रिलीज़ कर सकते हैं यदि आप इसके प्रदर्शन में सुधार कर सकते हैं। उम्मीद है की यह मदद करेगा!

+0

धन्यवाद। मेरी मुख्य चिंता चीजों को तेज़ी से करने की क्षमता देना था, जैसे कि सभी ब्लर नोड्स का चयन करें, उनके माध्यम से पुनरावृत्त करें, नाम एकत्र करें, उन्हें तेज करें, उनके मूल्यों को बदलें, आदि। मैंने एक ऐप भी इस्तेमाल किया जो स्क्रिप्टिंग को सीमित करता है ताकि आप नहीं कर सकें नए नोड्स नहीं लिखते हैं, इसलिए मैंने सोचा। –

+0

+1 - स्क्रिप्ट से कोर कार्यक्षमता में रूपांतरण को बहुत आसान बना दिया जाएगा यदि यह ऐप की मूल भाषा में लिखा गया था। यदि यह एक इच्छित विशेषता है, तो एक प्लगइन आर्किटेक्चर आदर्श प्रतीत होता है। –

+0

बहुत अच्छा बिंदु SnOrfus –

3

मुझे किसी एप्लिकेशन की कार्यक्षमता बढ़ाने के लिए स्क्रिप्ट लिखने में सक्षम होना पसंद है। यहां तक ​​कि बेहतर जब स्क्रिप्टिंग भाषा एक प्रसिद्ध व्यक्ति है।

मैं प्रदर्शन के बारे में चिंताओं के आधार पर एक स्क्रिप्ट कर सकते हैं कार्यक्षमता को सीमित नहीं करेगा। आप नहीं जानते कि उदाहरण के लिए भविष्य के हार्डवेयर पर कुछ कैसे व्यवहार करेगा; हालांकि, आपको सुरक्षा/कार्यक्षमता के लिए क्या करना चाहिए, इसे सीमित करना चाहिए।

यदि आपके पास प्रदर्शन संबंधी चिंताएं हैं, तो मैं स्क्रिप्ट के माध्यम से एक्सटेंशन पॉइंट्स को कार्यान्वित करता हूं लेकिन प्लगइन के माध्यम से भी संकलित कोड को निष्पादित और चलाने की अनुमति देता हूं।

संपादित

सामान्य तौर पर मैं इसे नहीं लगता कि अब तो उदाहरण के लिए में एक प्लग के माध्यम से एक आवेदन पत्र का विस्तार कमजोरियों परिचय देता है। विशिष्ट भेद्यता के लिए, मैं वास्तव में आपके आवेदन के बारे में और जानने के बिना नहीं कह सकता था। लेकिन उदाहरण के लिए वेब ब्राउज़र ले लो। आईई में बहुत सारी सुरक्षा त्रुटियां हैं क्योंकि स्क्रिप्ट अधिक संसाधनों तक पहुंच सकती हैं, तो उन्हें होना चाहिए था।

संकलित कोड के माध्यम से किए जाने वाले एक्सटेंशन को मजबूर करने से आप हमलों को रोकने में मदद के लिए तंत्र का लाभ उठाने की अनुमति देते हैं। उदाहरण के लिए आप एक असेंबली का निरीक्षण कर सकते हैं (यहां मानते हैं।)। आसानी से दुर्भावनापूर्ण कोड की तलाश में है (हां आप इसे स्क्रिप्टिंग के साथ भी कर सकते हैं), या आप कोड एक्सेस सुरक्षा के कुछ संसाधनों तक पहुंच को रोक सकते हैं। आप कोड हस्ताक्षर का लाभ उठा सकते हैं, और भरोसेमंद प्रकाशकों से केवल प्लगइन लोड कर सकते हैं।

+0

धन्यवाद जोश, क्या आप कृपया मुझे एक स्क्रिप्टिंग भाषा का उपयोग करने के लिए संभावित सुरक्षा समस्याएं बता सकते हैं? –

3

जो आप पूरा करने की कोशिश कर रहे हैं उसके आधार पर, आप पावरशेल को ऑफर करना चाहते हैं। आप अपना एप्लिकेशन कस्टम पावरशेल स्क्रिप्टिंग होस्ट बना सकते हैं, या केवल cmdlets प्रदान कर सकते हैं जो एप्लिकेशन में हेरफेर करते हैं।

किसी भी मामले में, आपके उपयोगकर्ताओं को अंतर्निहित .NET/COM/WMI समर्थन के साथ एक समृद्ध, शक्तिशाली, समझदार पटकथा भाषा से लाभ होता है, लेकिन उन्हें डेवलपर्स का उपयोग करने की आवश्यकता नहीं है।

आप एक ऐसे कौशल पर भी निर्माण कर रहे हैं जो आपके उपयोगकर्ताओं के पास हो सकता है। यदि उनके पास पहले से नहीं है, तो वे इसे आपके आवेदन के लिए सीख सकते हैं, और फिर भविष्य में इसका लाभ उठा सकते हैं।

एक्सचेंज सर्वर 2007 एक कस्टम स्क्रिप्टिंग होस्ट लागू करता है, यदि आप एक उदाहरण देखना चाहते हैं कि यह कैसे काम करता है।

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

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