2009-10-28 8 views
6

पर प्रत्यक्ष एकीकरण होना चाहिए मेरी टीम और मैं हमारे अगले उत्पाद के हिस्से के रूप में डायग्नोस्टिक टेस्ट टूल डिज़ाइन कर रहा हूं। परीक्षण उपकरण एक अनुरोध/प्रतिक्रिया API का प्रयोग करेगा और असीमित घटनाओं को प्रदर्शित करेगा। डायग्नोस्टिक टूल सूट के हिस्से के रूप में, हम पूरे उत्पाद एपीआई के लिए cmdlets भी प्रदान करेंगे।मैं एक मोटी यूआई डायग्नोस्टिक टूल डिज़ाइन कर रहा हूं, क्या इसे PowerShell

क्या टूल यूआई में पावरशेल निष्पादन एम्बेड करना उचित है? अन्य विकास दल क्या कर रहे हैं?

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

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

उत्तर

5

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

पावरशेल एम्बेड करने का एक कारण आपके मूल निदान और निगरानी इंजन के हिस्से के समान पावरशेल cmdlets निष्पादित करना है। इस तरह आपको अपने डायग्नोस्टिक टूल ऐप इंजन और cmdlets के बीच कार्यक्षमता को डुप्लिकेट करने की आवश्यकता नहीं है जो आपके ग्राहक स्वचालन के लिए उपयोग करते हैं। ऐसा लगता है कि आप डायग्नोस्टिक्स करने के लिए उपयोग किए जाने वाले कोड और ऐप में निगरानी cmdlets में कोड से अलग है? या ऐप और cmdlets के बीच साझा किया गया सामान्य कोड है?

पावरशेल को एम्बेड करने का एक अन्य कारण यह है कि ऐप को स्वयं को स्क्रिप्ट करने योग्य होने दें, लेकिन यह आपके परिदृश्य में फिट नहीं दिखता है।

PowerShell को एम्बेड करने का एक अन्य कारण यह है कि यदि आप एक नया होस्ट लागू कर रहे हैं - यानी आप कुछ अद्वितीय संपादन या खोल कार्यक्षमता प्रदान करते हैं। ऐसा करने वाले कुछ ऐप्स PowerGUI (जो आपको स्क्रिप्ट आईआईआरसी लॉन्च करने की अनुमति देता है) और पावरशेल प्लस हैं।

फिर भी एक अन्य कारण में मैंने एप्लिकेशन में पावरशेल को एम्बेड किया है क्योंकि मुझे पता था कि मैं समकक्ष सी # कोड की तुलना में बहुत कम कोड में कुछ परिणाम प्राप्त कर सकता हूं। यह एक कमजोर कारण है और शायद मैं इसे वाणिज्यिक ऐप में नहीं करूँगा लेकिन मैंने इसे एक-ऑफ प्रोग्राम के लिए उपयोग किया है।

0

हाँ, मुख्य कारण मैं वास्तव में विचार करूँगा कि परिदृश्य में PowerShell को एम्बेड करता है, तो अपने यूआई कार्यों उपयोगकर्ताओं यूआई में ले लिए PowerShell स्क्रिप्ट उत्पन्न कर सकता है, ताकि वे देख सकते हैं कि क्या हो रहा है, और आसानी से सीख है इसे स्वचालित कैसे करें। इसके लिए शुरुआत से PowerShell के आधार पर यूआई को डिजाइन करने की आवश्यकता होगी ... तो यह मुझे लगता है जैसे आप cmdlets और नमूने प्रदान करने से बेहतर हैं;)

2

मैं जयकुल और कीथ हिल दोनों से सहमत हूं - जवाब है हाँ।

ऐसे कई दृष्टिकोण हैं जिनका आप उपयोग कर सकते हैं।लेकिन सामान्य रूप से, मैं आपको सलाह दूंगा) ए) के लिए यूआई के हिस्से के रूप में कुंजी cmdlets बनाएं और बी) आप पावरशेल के शीर्ष पर जीयूआई बनाते हैं (उसी तरह एक्सचेंज टीम ने किया है।

ऐसा करना माइक्रोसॉफ्ट के लीड का पालन करता है (सभी अनुप्रयोगों में पावरशेल इंटरफ़ेस होना चाहिए) जिसे दूसरों द्वारा भी लिया जा रहा है (उदाहरण के लिए वीएमवेयर, और यहां तक ​​कि सिमेंटेक लीवरेज पावरशेल उनके अनुप्रयोगों में।

cmdlets (और संभवतः एक प्रदाता) बनाना बहुत सरल है - इस उपकरण के लिए हाल ही में जारी एक महान cmdlet डिजाइनर (http://blogs.msdn.com/powershell/archive/2009/10/16/announcing-open-source-powershell-cmdlet-and-help-designer.aspx देखें)

आशा है कि इससे मदद मिलती है!

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