स्व-अद्यतन अनुप्रयोग - दर्शन


15

यह एक दार्शनिक प्रश्न है।

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

  1. आईट्यून्स की तरह , यह देखने के लिए जांचता है कि क्या कोई नया संस्करण है और उपयोगकर्ता को नए संस्करण को डाउनलोड करने के लिए संकेत देता है। यदि ऐसा है, तो यह एक पूर्ण स्थापित निष्पादन योग्य डाउनलोड करता है (इस मामले में, एक Windows इंस्टालर फ़ाइल (.msi)) जो पूर्ण संस्करण को स्थापित करता है (पिछले संस्करण के लिए न केवल एक अपग्रेड - अगर वहाँ कई संस्करण हैं, तो प्रबंधित करने के लिए बहुत अधिक) । तो, मान लीजिए, यह संस्करण 10.1.1 है - चाहे आप ताज़ा स्थापित कर रहे हों या अपग्रेड कर रहे हों, आप उसी फ़ाइल का उपयोग करते हैं। डाउनलोड होने के बाद, यह उपयोगकर्ता को एप्लिकेशन को बंद करने और इंस्टॉल फ़ाइल को चलाने का निर्देश देता है।

  2. अन्य की तरह, यह एक नए संस्करण के लिए जाँच करता है और उपयोगकर्ता को इसे डाउनलोड करने के लिए प्रेरित करता है, लेकिन केवल एक निष्पादन योग्य डाउनलोड करने और उपयोगकर्ता को इसे चलाने के लिए प्रेरित करने के बजाय, यह वास्तव में इसे उनके लिए चलाता है - उनके द्वारा खुले प्रोग्राम को बंद करना, प्राप्त करना फ़ाइलों को स्थापित करने के लिए आवश्यक सुरक्षा।

# 2 के साथ मुद्दे: प्रोग्राम को बंद करने के आसपास के कई मुद्दे, क्योंकि प्रोग्राम अन्य प्रोग्राम ( आउटलुक और एक्सेल ) खोल सकता है , या अगर उपयोगकर्ता किसी चीज़ के बीच में था। सुरक्षा के आसपास भी, आपको स्थापित करने के लिए स्थानीय व्यवस्थापक पहुंच की आवश्यकता है, अगर आपके पास यह नहीं है तो क्या होगा? विंडोज के बाद के संस्करणों में, आप केवल व्यक्ति की सुरक्षा को ओवरराइड नहीं कर सकते।

# 1 के मुद्दे: कुछ लोगों का मानना ​​है कि यह अंतिम उपयोगकर्ता के लिए बहुत कठिन, बहुत अधिक प्रयास होगा।

मैं दृढ़ता से # 1 के साथ जाना पसंद करूंगा क्योंकि यह मेरी परियोजना पर 80-120 घंटे बचाएगा, और इसे लागू करने और बनाए रखने के लिए सरल है। हालांकि, हमारे पास ऐसे लोग हैं जो हर तरफ से दृढ़ता से महसूस करते हैं।

इस तरह की चीज के लिए सबसे अच्छा अभ्यास क्या है?


मुझे यकीन नहीं है कि यह दार्शनिक है, लगता है कि वह मेरे लिए एक समाधान की तलाश में है।

इसलिए यहां डिजाइन / वास्तु संबंधी प्रश्न पूछना ठीक नहीं है?

मेरा सवाल यह है कि # 2 को प्रोग्राम को बंद करने और फिर से चालू करने की आवश्यकता क्यों है? यदि यह एक सुरक्षा अद्यतन है, तो यह समझने योग्य है, लेकिन एक सामान्य उपयोगकर्ता दिन में कम से कम एक बार एक कार्यक्रम को बंद करता है और फिर से खोलता है यदि अधिक नहीं है, तो इसे पृष्ठभूमि में क्यों स्थापित न करें, उपयोगकर्ता को स्मृति में पुराने संस्करण का उपयोग करके प्रोग्राम चलाने दें , और फिर जब वे पुनः आरंभ करते हैं तो यह स्थापित किए गए नए संस्करण का उपयोग करता है। कोई उपद्रव नहीं, कोई झंझट नहीं।
माइक एस

@ माइक S: यह विंडोज़ पर संभव नहीं है (निष्पादन योग्य फ़ाइलें जो चल रही हैं उन्हें अधिलेखित नहीं कर सकती हैं) और यहां तक ​​कि लिनक्स पर भी यह एक विशेष रूप से अच्छा विचार नहीं है (यदि आप एक और उदाहरण खोलते हैं, तो आपके पास एक पुराना कोड और एक नया कोड चलाने वाला होगा। - अगर कोई आईपीसी हो रहा है, तो यह और भी बुरा है)
डीन हार्डिंग

अनुभव से: यदि आप अद्यतनों की जांच करते हैं, तो आपका कार्यक्रम रोजाना आधी रात या 3 बजे तक नहीं होना चाहिए। यह उचित प्रतीत होता है, लेकिन आप अपने स्वयं के सर्वर से DDOS'ing को समाप्त करते हैं। बस यादृच्छिकता के 3600 सेकंड तक जोड़ें; यह जरूरी नहीं है
एमएसल्टर्स

जवाबों:


20

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


4
गोगल्स के अच्छे व्यवहार को इंगित करने के लिए +1। इसके विपरीत एडोब एक्रोबेट रीडर है जो हर 2 वें दिन कुछ स्पष्ट रूप से जरूरी पैच स्थापित करता है, और किसी के काम में लगातार गड़बड़ी करता है।
इंगो

मुझे भी यह तरीका पसंद है। नकारात्मक पक्ष यह है कि यह केवल प्रति-उपयोगकर्ता प्रतिष्ठानों के लिए काम करता है जिन्हें उत्थान की आवश्यकता नहीं होती है। एक बार जब आपके पास ऊंचाई बढ़ाने का संकेत होता है, तो यह वास्तव में मायने नहीं रखता है अगर आपको अपडेट करने के लिए कुछ और क्लिक्स चाहिए (यह अब चुप नहीं है)।

@Cosmin यदि आप% appdata% का उपयोग नहीं करना चाहते हैं तो आप डाउनलोड की गई फ़ाइलों को संग्रहीत करने के लिए% ProgramData% का उपयोग कर सकते हैं। एक अधिक दार्शनिक रूप से सही तरीका संग्रह को स्टोर करने के लिए होगा, फिर अगली बार कार्यक्रम चलाने के लिए स्थापित करने के लिए उन्नत करें।
बेकन बिट्स

इस जवाब को प्यार करें और मैं इसे अपनी बैक-पॉकेट में डाल रहा हूं (अब के लिए, "इट्यून्स" स्टाइल डाउनलोड को लागत-बचत कारणों से व्यापक अपील मिली है।)
शैनन डेविस

3

Adobe Flash Player (जैसे कि उन सभी को ट्रैक करना कठिन है, और मैं चेक को अक्षम करने का तरीका नहीं खोज सकता ...) या iTunes को अपडेट करने के लिए आपको अनावश्यक स्टार्टअप प्रविष्टियां नहीं बनानी चाहिए। यह उपयोगकर्ता (geeks, वैसे भी) को परेशान करता है। एक बेहतर विकल्प फ़ायरफ़ॉक्स करता है जैसे एप्लिकेशन स्टार्टअप पर अपडेट के लिए जांचना होगा ।

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

बस एक विकल्प शामिल करना सुनिश्चित करें:

अद्यतनों की जाँच करें:

  • लॉग-ऑन (यदि आप गीक्स को परेशान करना चाहते हैं)
  • आवेदन स्टार्टअप ( पर डिफ़ॉल्ट रूप से)
  • हर कुछ सप्ताह ( डिफ़ॉल्ट रूप से बंद )

या ऐसा ही कुछ।


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


2

मुझे लगता है कि आप "ClickOnce" सेटअप चाहते हैं।

http://msdn.microsoft.com/en-us/library/142dbbz4(v=vs.90).aspx

ClickOnce एक परिनियोजन तकनीक है जो आपको स्व-अद्यतन विंडोज-आधारित एप्लिकेशन बनाने में सक्षम बनाती है जिन्हें स्थापित किया जा सकता है और न्यूनतम उपयोगकर्ता सहभागिता के साथ चलाया जा सकता है। क्लिकऑन तैनाती परिनियोजन में तीन प्रमुख मुद्दों पर काबू पाती है:

एप्लिकेशन अपडेट करने में कठिनाइयाँ। Microsoft Windows इंस्टालर की तैनाती के साथ, जब भी कोई एप्लिकेशन अपडेट किया जाता है, तो उपयोगकर्ता को पूरे एप्लिकेशन को फिर से इंस्टॉल करना होगा; ClickOnce परिनियोजन के साथ, आप स्वचालित रूप से अपडेट प्रदान कर सकते हैं। केवल उन एप्लिकेशन के कुछ हिस्से जो बदल गए हैं, डाउनलोड किए गए हैं, और फिर पूर्ण, अपडेट किए गए एप्लिकेशन को एक नए साइड-बाय-फोल्डर से पुनः इंस्टॉल किया गया है।

उपयोगकर्ता के कंप्यूटर पर प्रभाव। Windows इंस्टालर परिनियोजन के साथ, अनुप्रयोग अक्सर साझा किए गए घटकों पर निर्भर करते हैं, संघर्षों के संस्करण की क्षमता के साथ; ClickOnce परिनियोजन के साथ, प्रत्येक अनुप्रयोग स्व-निहित है और अन्य अनुप्रयोगों के साथ हस्तक्षेप नहीं कर सकता है।

सुरक्षा अनुमति। विंडोज इंस्टॉलर तैनाती के लिए प्रशासनिक अनुमति की आवश्यकता होती है और केवल सीमित उपयोगकर्ता इंस्टॉलेशन की अनुमति देता है; ClickOnce परिनियोजन गैर-प्रशासनिक उपयोगकर्ताओं को एप्लिकेशन के लिए आवश्यक उन कोड एक्सेस सुरक्षा अनुमतियों को स्थापित करने और अनुदान देने में सक्षम बनाता है।


यह एक बार क्लिक करने और एमएसआई (जिसमें आपके कई निष्कर्ष गलत और / या अपूर्ण हैं) के पेशेवरों और विपक्षों का सवाल नहीं था, बल्कि ऑटो अपडेटिंग समाधानों के लिए सर्वोत्तम प्रथाओं का सवाल था।
क्रिस्टोफर पेंटर

मैं इस जानकारी की वैसे भी सराहना करता हूं और इसे डेवलपर के साथ साझा करके देखूंगा कि क्या उसने इसे एक विकल्प के रूप में माना है - शायद उसने सोचा कि उसे खुद को अपडेट करने की प्रक्रिया विकसित करनी होगी।

खैर क्रिस्टोफर, इसे एमएस के साथ लें, यह एमएसडीएन से प्रत्यक्ष है। यह वास्तव में एक उपयोगी टिप्पणी भी है।

जब यह तैनाती प्रौद्योगिकियों के लिए कोड करता है, तो यह मुझे कभी भी आश्चर्यचकित नहीं करता है जब कोई एमएसडीएन पर पोस्ट करता है तो यह गलत है। हम में से बहुत कम विशेषज्ञ हैं जो वास्तव में इस सामान को समझते हैं।
क्रिस्टोफर पेंटर

2

मैं व्यक्तिगत रूप से उन अनुप्रयोगों की सराहना करने लगा जो स्पार्कल फ्रेमवर्क के समान हैं । मुझे लगता है कि यह केवल एक मैक बात है, लेकिन यह अनिवार्य रूप से निम्नलिखित करता है (मेरे सिर के ऊपर से - मुझे लगता है कि व्यवहार को समायोजित किया जा सकता है)।

  1. अपडेट के लिए जांचें (आमतौर पर एप्लिकेशन स्टार्टअप पर)
  2. यदि एक है, तो एक अलग विंडो को अच्छी तरह से स्वरूपित चैंज के साथ दिखाया गया है
  3. उपयोगकर्ता फिर उस संस्करण को छोड़ सकता है, इसे स्थापित कर सकता है या बाद में याद दिलाया जा सकता है
  4. यदि वह एप्लिकेशन इंस्टॉल करने का निर्णय लेता है, तो चैंज के नीचे एक प्रगति पट्टी दिखाई जाती है
  5. डाउनलोड के बाद उपयोगकर्ता आवेदन छोड़ने और तुरंत स्थापित करने या आवेदन छोड़ने के बाद स्थापित करने का निर्णय ले सकता है

यह देखते हुए कि आप .msi के बारे में बात कर रहे हैं, यह विशेष रूपरेखा वास्तव में लागू नहीं है, लेकिन इस मामले में मैं पहिया को सुदृढ़ करने के बजाय कुछ मौजूदा समाधान के साथ जाना चाहूंगा।


1

मैं कहूंगा कि आपको वास्तव में अपने उपयोगकर्ता को जानना होगा। अगर वे समझदार हैं और या डेट पर रहने में उनकी गहरी दिलचस्पी है, तो # 1 काम करेगा।

कभी भी किसी उपयोगकर्ता के आलस्य को कम मत समझो क्योंकि जब उनका कार्यक्रम अब काम नहीं करता है क्योंकि वे अब समर्थित नहीं हैं, तो आपको बाद में हेल्प डेस्क कॉल से बाढ़ आ जाएगी।

समय या तो विकास (# 2) या समर्थन (# 1) से आएगा।


1

इस बारे में क्या?

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

आपको उपयोगकर्ता को परेशान करने की आवश्यकता नहीं है, आपको कुछ भी बंद करने की आवश्यकता नहीं है ...


1

बीच में कुछ क्यों नहीं?

डाउनलोड किए गए अद्यतन को स्थापित करने के लिए शीघ्र समाप्त करने के बाद (या "स्वचालित रूप से डाउनलोड करें") डाउनलोड करने का संकेत दें (.msi निष्पादित करें)। इस तरह आप # 2 के नकारात्मक पक्ष (उपयोगकर्ता के काम के बीच में समापन) और फिर भी 1 अधिक क्लिक की लागत के साथ आराम को बनाए रखते हैं।

" बंद और स्थापित अद्यतन? " संवाद आसानी से सुलभ (लेकिन कष्टप्रद नहीं) होना चाहिए उपयोगकर्ता द्वारा पहली बार में गिरावट आती है। "लॉन्च <प्रोग्राम का नाम>?" .msi के अंत में चेकबॉक्स लगभग # 2 जैसा होगा जिसमें वास्तव में कोई और काम नहीं होगा

@ आधुनिक विंडोज़ में सुरक्षा
कार्यक्रम व्यवस्थापक अधिकारों की आवश्यकता वाले कार्यों को करने की अनुमति का अनुरोध कर सकते हैं (उपयोगकर्ता को शीघ्र प्रदर्शित किया जाता है जहां वह व्यवस्थापक का पासवर्ड टाइप करता है और फिर "हाँ / नहीं" का चयन करता है कि क्या अनुमति देना है)


1

मेरे पास 124 प्यादा कार्यशालाएं हैं, जो मेरे प्याऊ शॉप मैनेजमेंट डेस्कटॉप ऐप का उपयोग करती हैं। जब भी मेरे पास कोई नया अपडेट होता है, तो मैं उन्हें एक ईमेल प्रसारित करता हूं जिससे उन्हें अपडेट और उसके बारे में जानकारी मिलती है। फिर उनके पास मेरी वेबसाइट में लॉग इन करके एफ़टीपी करने का विकल्प है। उनके पास अपडेट रोलबैक करने का विकल्प भी है। मेरी वेबसाइट भी स्थापित किए गए प्रत्येक प्यादा कार्यशालाओं का ट्रैक रखती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.