लगभग सभी WP7 डेवलपर्स अपने काम में तीसरे पक्ष के नियंत्रण पुस्तकालयों का उपयोग करते हैं। एक डेवलपर के रूप में, क्या आप किसी विशेष पुस्तकालय के लिए उदाहरण डाउनलोड करने, उसे संकलित करने और अपने फोन पर स्थापित करने के माध्यम से गए थे? और क्या ऐसे क्षण थे जब आप ApplicationBar के लिए एक उपयुक्त आइकन की तलाश कर रहे थे? उसे खोजने में कितना समय लगा? और, शायद, नए आइकॉन के दिखाई देने के बारे में जानना चाहते थे? क्या आप यह और कुछ और चाहते हैं कि विंडोज फोन के लिए एक मुफ्त एप्लीकेशन में इकट्ठा किया जाए? यदि हाँ, तो बिल्ली का स्वागत करें, जहाँ आपको WinPhone DevHub एप्लिकेशन का विवरण और इसके निर्माण के कुछ तकनीकी विवरण मिलेंगे।
मैं खुद विंडोज फोन के लिए विकसित कर रहा हूं और अक्सर मुझे अपने फोन पर विभिन्न पुस्तकालयों से नियंत्रण के उदाहरण डालने पड़ते हैं। यह न केवल लंबा है, क्योंकि आपको लाइब्रेरी डाउनलोड करने, इसे संकलित करने और फोन पर चलाने की आवश्यकता है, लेकिन यह विकास अनुप्रयोगों के लिए उपलब्ध स्लॉट की संख्या को भी कम कर देता है (अब यह संख्या दस है)। समय की इस क्षति ने मुझे बहुत परेशान किया, क्योंकि उदाहरण के लिए, टेलरिक का मार्केटप्लेस में एक उत्कृष्ट
डेमो एप्लिकेशन है, जिसमें रेडकंट्रोल के उपयोग के उदाहरण हैं। मैंने
सिल्वरलाइट फोन टूलकिट ,
कोडिंग 4 फन टूलकिट ,
एम्चर्स जैसे पुस्तकालयों के डेवलपर्स की ओर रुख किया और पूछा कि क्या वे अपने पुस्तकालयों के लिए उदाहरणों के साथ एक एप्लिकेशन जारी करने की योजना बनाते हैं। सभी डेवलपर्स ने जवाब दिया कि उन्होंने इस बिंदु को नहीं देखा है। तब मेरे दिमाग में लोकप्रिय पुस्तकालयों के उदाहरणों को एक साथ लाने और इसे एक आवेदन के रूप में जारी करने का विचार था।
डेवलपर के लिए और क्या उपयोगी हो सकता है, इस पर विचार करते हुए, मुझे इस निष्कर्ष पर पहुंचा गया कि ApplicationBar के लिए आइकन बहुत लोकप्रिय हैं, क्योंकि लगभग हर कार्यक्रम में उपयोग किया जाता है।
इस प्रकार, आवेदन के पहले संस्करण के लिए, मैंने कई तृतीय-पक्ष पुस्तकालयों के उदाहरण नियंत्रण के लिए समर्थन लागू करने और कई लोकप्रिय आइकन सेट जोड़ने का फैसला किया।
मैंने निम्नलिखित नियंत्रण पुस्तकालयों का चयन किया:

जब आप लाइब्रेरी चुनते हैं, तो संबंधित डेमो लोड होता है।


संभवतः नियंत्रण के अन्य पुस्तकालयों को जोड़ने के लिए समझ में आता है, लेकिन प्रस्तुत सेट के पहले संस्करण के लिए पर्याप्त है।
आइकन सेट के बीच, मैंने तीन को चुना:


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

एप्लिकेशन उपयोगकर्ताओं को Uservoice सेवा का उपयोग करके एप्लिकेशन को बेहतर बनाने के लिए सुझाव भेजने की अनुमति देता है (देखें टैब या
आपके संवाद के बारे में आपका अंतिम भाग)।
कुछ तकनीकी बिंदु
सभी डेमो अनुप्रयोगों को संबंधित पुस्तकालयों से परियोजनाओं के रूप में लिया जाता है और आवेदन समाधान में शामिल किया जाता है। समाधान में एक मुख्य अनुप्रयोग है जो नियंत्रण अनुप्रयोग के संबंधित पुस्तकालय में जाने के लिए लिंक प्रदर्शित करता है।
प्रारंभ में, एप्लिकेशन को MVVM पैटर्न का अवलोकन किए बिना लिखा गया था: मुख्य लक्ष्य डेमो अनुप्रयोगों को लेना है, इन परियोजनाओं को अपने समाधान में शामिल करें, प्रत्येक डेमो एप्लिकेशन के मुख्य पृष्ठों के लिए लिंक प्रदर्शित करें, और आप इसका आनंद ले सकते हैं! जैसा कि अभ्यास ने दिखाया है, यह दृष्टिकोण आपको एक बार का आवेदन करने की अनुमति देता है, क्योंकि इसका विस्तार करना लगभग असंभव है, कोड एक क्लासिक स्पेगेटी कोड की तरह दिखता है, अधिक या कम जटिल स्वचालन का कार्यान्वयन बहुत मुश्किल है, आदि। वर्तमान में MVVM का उपयोग करके एप्लिकेशन को फिर से लिखा जा रहा है।
स्वाभाविक रूप से, शुरुआत में, मुख्य स्क्रीन पर, मैंने हार्ड-कोडित डेमो अनुप्रयोगों के लिए हार्ड-कोडेड रास्तों के साथ बटन लगाए। मुझे अपने हाथों से सब कुछ निर्धारित करना पड़ा, जो थकाऊ था और सुविधाजनक नहीं था। अंत में, आलस्य जीता और मैंने एक xml फ़ाइल बनाई, जिसमें मैंने प्रत्येक लाइब्रेरी के लिए सभी प्रासंगिक पैरामीटर बनाए, जैसे कि एप्लिकेशन का नाम, आइकन का पथ, मुख्य एप्लिकेशन फ़ाइल का पथ, आदि। इसने हमें एक एल्गोरिथ्म लागू करने की अनुमति दी - xml फ़ाइल को पढ़ता है और स्रोत बनाता है ListBox के लिए डेटा। अगर यह मेरे पास आता है (और यह निश्चित रूप से मेरे पास आता है!) एक नई डेमो परियोजना को जोड़ने का विचार मेरे दिमाग में आता है, तो मैं सिर्फ xml फ़ाइल को अपडेट करता हूं, इस परियोजना को समाधान में जोड़ता हूं और यही है!
<ControlToolkits> <ControlToolkit> <Id>1</Id> <Name>Coding4Fun Phone Toolkit</Name> <Version></Version> <MainPageUri>/Coding4Fun;component/MainPage.xaml</MainPageUri> <About></About> <Author>Coding4Fun</Author> <ImageLogo>Images/Coding4FunLogo.png</ImageLogo> <Background>#FFF09609</Background> <ToolkitUrl>http://coding4fun.codeplex.com/</ToolkitUrl> </ControlToolkit> <ControlToolkit> <Id>2</Id> <Name>Silverlight Phone Toolkit</Name> <Version></Version> <MainPageUri>/SilverlightToolkit;component/MainPage.xaml</MainPageUri> <About></About> <Author>Microsoft</Author> <ImageLogo>Images/SilverlightToolkitLogo.png</ImageLogo> <Background>#FF1BA1E2</Background> <ToolkitUrl>http://silverlight.codeplex.com/</ToolkitUrl> </ControlToolkit> .... </ControlToolkits>
प्रतीक के साथ कहानी समान है, लेकिन आलस्य ने मुझे बहुत तेजी से हराया, क्योंकि माउस की संख्या बहुत बड़ी है (इस समय 700 से अधिक), और मैंने अपने काम के स्वचालन के अगले स्तर तक पहुंचने की कोशिश की: जब माउस का एक सेट अपडेट करते हैं, तो मुझे केवल आइकन को अनपैक करना होगा VisualStudio में संबंधित प्रोजेक्ट फ़ोल्डर, देखें कि कौन सी नई फाइलें दिखाई दी हैं और उन्हें प्रोजेक्ट में जोड़ें। संकलन करना, एप्लिकेशन लॉन्च करना और आइकन के संबंधित सेट को खोलना यह सब स्क्रीन पर नए आइकन देखने के लिए किए जाने की आवश्यकता है। इस प्रकार, मैंने एक समान xml फ़ाइल बनाई, जहाँ मैंने उस फ़ोल्डर को पथ को इंगित किया जहाँ लाइब्रेरी, लेखक, विवरण, आदि आइकन संग्रहीत हैं। xml फ़ाइल से डेटा पढ़ना Linq-To-Xml तकनीक का उपयोग करके किया जाता है।
<IconSets> <IconSet> <Id>3</Id> <Name>Templarian Pack</Name> <Version>1</Version> <Path>/Icons/Templarian/</Path> <About>This is a project started a few months ago to supply creative commons licensed icons to Windows Phone developers. If you found these useful feel free to buy me a beer with the donate button in the footer.</About> <Author>Austin Andrews</Author> <Background>#FF00ABA9</Background> <PanoramaBackgroundPath>Images/PanoramaBackground4.jpg</PanoramaBackgroundPath> <Url>http://templarian.com/project_windows_phone_icons/</Url> </IconSet> .... </IconSets>
यहाँ मुझे बहुत सुखद आश्चर्य की उम्मीद नहीं थी, क्योंकि मुझे उन संसाधनों की सूची नहीं मिल सकती है जो दिए गए पथ में मेरी परियोजना में संग्रहीत हैं। एकमात्र विकल्प
Embedded Resource
रूप में ऐसे संसाधनों को चिह्नित करना है, और फिर आवश्यक आइकन को फ़िल्टर करना है। दूसरी ओर,
Embedded Resource
के रूप में चिह्नित आइकन डेटा बाइंडिंग में भाग नहीं ले सकते, जो आपको अतिरिक्त कोड लिखने के लिए मजबूर करता है। समाधान अचानक आया - मैं
T4 जैसे उपकरण का उपयोग करके वर्तमान परियोजना के मेटाडेटा (फ़ाइलें, फ़ोल्डर्स, उनके स्थान, आदि) के आधार पर किसी भी फाइल को उत्पन्न कर सकता हूं, जिसे VisualStudio में बनाया गया है। कोड की कुछ पंक्तियाँ और मेरे पास एक और xml फ़ाइल है जिसमें सभी आइकन हैं जो मैं प्रदर्शित करूँगा।
Embedded Resource
से
Content
तक आइकन की विशेषता को बदलकर, मैं उन्हें बाध्यकारी प्रक्रिया में उपयोग कर सकता हूं, जो प्रदर्शन में सुधार करेगा और कोड को सरल करेगा। कोड पीढ़ी के साथ समाधान आवेदन के अगले रिलीज में इस्तेमाल किया जाएगा।
यह ध्यान दिया जाना चाहिए कि उपयोगकर्ता इंटरफ़ेस पर तत्वों के निर्माण के लिए डेटा स्रोत के रूप में xml फ़ाइलों का उपयोग करने वाला दृष्टिकोण पुस्तकालय
आपके अंतिम डायलॉग के साथ भी उपयोग किया जाता है। आपको केवल प्रारंभिक डेटा (नाम, विवरण, पते, आदि) सेट करने की आवश्यकता है, और सिस्टम स्वयं मेट्रो अनुप्रयोगों के सभी नियमों के अनुसार एक उपयोगकर्ता इंटरफ़ेस का निर्माण करेगा।
इस एप्लिकेशन में, मैंने एनालिटिक्स और एरर ट्रैकिंग के लिए तैयार समाधानों को आजमाने का फैसला किया।
मैंने
फ्लेरी सेवा के माध्यम से विश्लेषणात्मक जानकारी प्राप्त करने का निर्णय लिया। यह सेवा विंडोज फोन के लिए एक पुस्तकालय प्रदान करती है, कनेक्शन बहुत सरल है -
App.xaml.cs
फ़ाइल में एक पंक्ति, एक विशिष्ट घटना भेजना एक अन्य पंक्ति है। मुख्य बात यह है कि आपके लिए कौन सी घटनाएं उपयोगी होंगी और किन मापदंडों को इंगित किया जाना चाहिए। WPDevHub में, मैं उन पुस्तकालयों को ट्रैक करता हूं जो नियंत्रण और आइकन उपयोगकर्ताओं के पास जाते हैं, साथ ही यह भी वर्णन करता है कि कौन से पुस्तकालय उपयोगकर्ता मेल द्वारा स्वयं को भेजते हैं।
त्रुटियों को ट्रैक करने के लिए, मैं
बगेंस सेवा का उपयोग करता
हूं (यह पहले से ही
काइपोइक एप्लिकेशन बनाने के बारे में लेख में हब पर
उल्लेख किया गया था)। यह सेवा
App.xaml.cs
फ़ाइल में एक पंक्ति जोड़कर भी जुड़ी हुई है। खाता के मुक्त संस्करण में निहित प्रतिबंधों के बावजूद सेवा बहुत सुविधाजनक और अत्यंत उपयोगी है। एक मुफ्त खाता आपको 7 दिनों के लिए सर्वर पर त्रुटियों को संग्रहीत करने की अनुमति देता है (नई त्रुटियों के मेल द्वारा अधिसूचना नियमित रूप से आती है), प्रति माह 500 से अधिक त्रुटियां प्राप्त नहीं होती हैं। सेवा स्वयं त्रुटि के बारे में विस्तृत जानकारी प्रदान करती है, जिसमें स्टैकट्रेस, फोन विवरण, ओएस संस्करण, देश, नेटवर्क कनेक्शन का प्रकार, त्रुटि की आवृत्ति आदि शामिल हैं। एक बहुत ही सुविधाजनक सुविधा त्रुटि को चिह्नित करने की क्षमता है, जैसे कि त्रुटि पहले से ही कोड में तय की गई है और नहीं होनी चाहिए। उसके बारे में ईमेल सूचनाएं भेजें। लेकिन त्रुटि के सभी मामले, निश्चित रूप से, सिस्टम द्वारा रिपोर्ट बनाते समय ध्यान में रखे जाएंगे।

यह ध्यान दिया जाना चाहिए कि डेमो प्रोजेक्ट्स में त्रुटियों के विशाल बहुमत की पहचान की गई थी। यह समझ में आता है, क्योंकि इन परियोजनाओं को पूरी तरह से परीक्षण नहीं किया गया था जो कि मार्केटप्लेस में प्रमाणन चरण को पारित करते समय आवश्यक है। बग्सेंस ने बहुत अच्छा काम किया और मुझे डेमो अनुप्रयोगों में एक दर्जन बग मिले, जिन्हें अगले रिलीज में तय किया जाना चाहिए।
बग्सेंस ओपन सोर्स प्रोजेक्ट्स के लिए प्रीमियम योजना का लाभ उठाने का अवसर प्रदान करता है (नियमित परियोजनाओं के लिए, इस तरह की योजना की लागत प्रति माह ~ 300 यूएसडी है)। मैं इस तरह के प्रस्ताव का लाभ उठाने में विफल नहीं रहूंगा और निकट भविष्य में मैं एक खुले लाइसेंस के तहत परियोजना प्रकाशित करूंगा।
विमुद्रीकरण के तंत्र के रूप में, मैंने विज्ञापन प्रदर्शित करने के लिए चुना। मैं एक विज्ञापन प्रदाता के रूप में
Microsoft PubCenter का उपयोग करता हूं, जिसकी कुछ उच्चतम विज्ञापन दरें हैं। दुर्भाग्य से (दुर्भाग्य से: पी),
AdControl
छुपाता है और विज्ञापन नहीं दिखाता है यदि उपयोगकर्ता के पास क्षेत्रीय सेटिंग्स हैं जो उन देशों के अनुरूप हैं जहां ये विज्ञापन प्रदाता समर्थित नहीं हैं। उदाहरण के लिए, बेलारूस और रूस समर्थित नहीं हैं। अगले संस्करणों में से एक में, मुझे
विंडोज फोन 7 एड रोटेटर पर स्विच करने की योजना है, जो आपको एक ही बार में कई विज्ञापन प्रदाताओं का उपयोग करने की अनुमति देता है, और इसके अलावा, राजस्व को अधिकतम करता है।
अगली रिलीज में, मैं मुख्य पृष्ठ के डिज़ाइन को फिर से बनाने की योजना बना रहा हूं ताकि आप नई संस्थाओं और नई सुविधाओं को जोड़ सकें। उदाहरण के लिए, मैं कुछ चेटशीट (जैसे डिजाइन गाइडलाइन्स, प्रमाणन, एप्लिकेशन प्रकाशित करते समय चेकलिस्ट आदि) जोड़ना चाहता हूं, जो डेवलपर्स के लिए उपयोगी होगा, नियंत्रण और आइकन के नए पुस्तकालयों को जोड़ सकते हैं, और कुछ और।
मुझे उम्मीद है कि विंडोज फोन के लिए सभी डेवलपर्स के लिए WinPhone DevHub एक डेस्कटॉप (हैंडहेल्ड?) एप्लिकेशन बन जाएगा, और मैं एप्लिकेशन को बेहतर बनाने के लिए सभी इच्छाओं को पूरा करने में सक्षम हो जाऊंगा। यदि आपके पास विचार हैं कि आप आवेदन में और क्या जोड़ सकते हैं, तो मुझे किसी भी तरह से तारीख जानने की आवश्यकता है।
यदि आप एप्लिकेशन डाउनलोड करते हैं, तो उसे मार्केटप्लेस में (लगभग टैब से या आपके लास्ट अबाउट डायलॉग से) रेट करने के लिए बहुत आलसी न हों।
बाज़ार में आवेदन के लिए
लिंक ।
कस्टम टिप्स और विचारों के लिए
लिंक ।
प्रतिक्रिया के लिए
मेल करेंव्यवसाय कार्ड साइट ।