.NET (जानवर) के लिए या उसके खिलाफ मामला [बंद]


92

C ++ बिल्डर के उपयोग के लिए मैं जिस कंपनी में काम करता हूं, 6. हम गर्भाधान के बाद से देशी कोड विकसित कर रहे हैं। हमारा प्रमुख उत्पाद पूरी तरह से देशी कोड में लिखा गया है।

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

इस बिंदु पर मैं अपना बहुत पहला .NET अनुप्रयोग विकसित करना शुरू करता हूं। यह सब योजना के अनुसार चल रहा है। परियोजना हमारे उत्पाद का केवल एक घटक है। और इसलिए मैं इस नए घटक के लिए एक इंस्टॉलर बनाने के बिंदु पर जाता हूं। एक कंपनी के रूप में हम जितना संभव हो उतना आसान उपयोगकर्ता के लिए चीजें बनाने में गर्व करते हैं। यहां तक ​​कि हजारों डेवलपर्स के साथ Microsoft भी हम जैसे इंस्टॉलर नहीं बनाते हैं। जब आप उदाहरण के लिए Microsoft CRM स्थापित करते हैं, तो आपको केवल विफलताओं और पूर्वापेक्षाओं की एक सूची मिलेगी, जिन्हें जारी रखने से पहले आपको इंस्टॉल करने की आवश्यकता होगी। हम नहीं। कभी नहीँ। यदि आपको कुछ चाहिए, तो हम इसे आपके लिए स्थापित करेंगे।

यह हमारे प्रतिष्ठानों को इतना आसान महसूस कराता है। .NET फ्रेमवर्क स्थापित नहीं है? कोई दिक्कत नहीं है! हम आपके लिए करेंगे। SQL मूल ग्राहक की आवश्यकता है? ठीक!

मुद्दा यह है, अब हमारे समाधान का एक एकल घटक .NET में लिखा गया है, यह स्थापना प्रक्रिया को अविश्वसनीय रूप से जटिल करता है। इससे पहले कि मैं अपना उत्पाद स्थापित कर पाऊं, मुझे निम्नलिखित कार्य करने होंगे:

  • पता लगाएँ कि क्या पूर्वापेक्षा स्थापित की गई है

  • यदि यह नहीं है तो इसे स्थापित करें

  • सत्यापित करें कि यह सफलतापूर्वक स्थापित किया गया था

  • अगली शर्त

.NET फ्रेमवर्क स्थापित करने के लिए, मुझे पहले विंडोज इंस्टॉलर 4.5 की आवश्यकता है। लेकिन अलग-अलग OSes के लिए अलग-अलग संस्करण हैं, इसलिए मैं OS का पता लगाता हूं और सही EXE लॉन्च करता हूं। ओह, .NET फ्रेमवर्क पहले से ही 2k8 के साथ पैक किया गया है और इंस्टॉलर उस पर नहीं चल सकता है, आपको इसे स्थापित करने के लिए मापदंडों के साथ OCSetup.exe चलाना होगा।

और इसलिए यह आगे बढ़ता है। फिर SQL Express 2005 को स्थापित करने की आवश्यकता है। एक बार फिर निर्भरताएं बढ़ जाती हैं।

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

अचानक, हमारा इंस्टॉलर बड़े पैमाने पर है। .NET के लिए सभी आवश्यक शर्तें, 64 बिट समर्थन के बारे में बात नहीं करना, जिसमें स्थापित करने के लिए EXE की पूरी अलग श्रेणी है। तो अब यह उस बिंदु पर पहुंच जाता है जहां हम चाहते हैं कि उपयोगकर्ता "त्वरित" मूल्यांकन डाउनलोड करने में सक्षम हों। क्या मजाक है। आपको 30MB एप्लिकेशन चलाने के लिए 500MB डाउनलोड करना होगा। स्थापना पैकेज का अधिकांश हिस्सा पूर्वापेक्षाएँ हैं।

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

हाँ, .NET के कुछ अधिवक्ता दावा करेंगे कि सब कुछ एक पैचेड और अपडेटेड ऑपरेटिंग सिस्टम पर स्थापित होना चाहिए। यह सच है, लेकिन सभी ग्राहकों के पास यह नहीं है, और बस यह कह रहा है कि "मुझे क्षमा करें, पहले अपडेट करें" बस इसे काट नहीं करेगा। याद रखें, हम समग्र उपयोगकर्ता अनुभव में गर्व करते हैं।

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

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


23
एक प्यारी कहानी के लिए +1।
— jgauffin

25
क्या .net के लिए स्टब इंस्टॉलर नहीं हैं जो आवश्यकतानुसार घटकों को डाउनलोड करते हैं? पूर्ण इंस्टॉलर को छोटा करना डीवीडी रिलीज़ के लिए सही है, लेकिन यदि उन्होंने एक मूल्यांकन डाउनलोड किया है तो आप वास्तविक रूप से मान सकते हैं कि वे एक ऑनलाइन इंस्टॉलेशन .net के लिए ऑनलाइन हैं।
— Rup

4
विडंबना यह है कि मैंने अपने कॉलेज के दिनों में जो कुछ .NET किताबें सीखीं, उनमें XCOPY परिनियोजन को इसके प्रमुख लाभों में से एक बताया गया है :)
— मधुर आहूजा

25
आप विंडोज पर अपनी निर्भरता को शामिल करना भूल गए। यह गीगाबाइट का एक और युगल है। बूटस्ट्रैपर्स का उपयोग करें।
— हंस पैसेंट

13
दिलचस्प कहानी, शीर्षक होना चाहिए, "कैसे नहीं बदल सकता है कि आपकी पूरी कंपनी कैसे कुछ मार्केटिंग सामग्रियों को पढ़ने के आधार पर व्यापार करती है और सीखने से पहले आपको नए ढांचे को ठीक से उपयोग करने के लिए वास्तव में क्या करना होगा"
— एंड्रयू नाई

जवाबों:


50

यही कारण है कि कई कंपनियों ने वेब इंस्टालर पर स्विच किया है जो आपके होमपेज से मक्खी पर सभी आवश्यक शर्तें डाउनलोड करते हैं। चूंकि अधिकांश मामलों में, ओएस में 99% की आवश्यकता होती है (यदि उन्हें विंडोज अपडेट का उपयोग करके अपडेट किया गया है)।

मैं x64 और x32 के लिए सब कुछ एक ही इंस्टॉलर में नहीं डालूंगा। दो इंस्टॉलर बनाएं, प्रत्येक आर्किटेक्चर के लिए एक।


2
मुझे विश्वास नहीं है कि आप x64 और x86 इंस्टालेशन पैकेज को एक एकल MSI डेटाबेस में प्राप्त कर सकते हैं।
— डेविड हेफर्नन

सच। मैंने अभी जवाब दियाSuddenly, our installer is massive. All the prerequisites for .NET, not even talking about 64 bit support which has a whole seperate range of EXEs to install
— jgauffin

6
किसी भी सॉफ्टवेयर के लिए अलग x86 और x64 इंस्टॉलर की आवश्यकता होती है!
— Whining

4
abatishchev: यदि सॉफ़्टवेयर "किसी भी" आर्किटेक्चर के लिए सिर्फ एक .NET बाइनरी संकलित किया गया था, तो अलग-अलग x86 और x64 इंस्टॉल करने की कोई आवश्यकता नहीं होगी। यह केवल तब होता है जब आपको .NET फ्रेमवर्क स्थापित करना होता है जिसे आपको अलग से इंस्टॉलरों की आवश्यकता होती है।
— गेबे

यदि आप कृपया एक वेब इंस्टॉलर लिखते हैं, तो कृपया उन लोगों के बारे में याद रखें जो परदे के पीछे रहते हैं। यहां तक ​​कि माइक्रोसॉफ्ट अक्सर अपने ही आईएसए के पीछे रहने वाले लोगों के बारे में याद करने में विफल रहता है (मैं आपको वेब डेवलपर इंस्टॉलर देख रहा हूं)।
— ईगोर पावलखिन

39

पेंट.नेट डिफ़ॉल्ट रूप से इसके साथ .NET फ्रेमवर्क को बंडल किए बिना किसी और चीज की स्थापना को लपेटता है। अंतिम परिणाम एक मानवरहित शिम निष्पादन योग्य है जो .NET फ्रेमवर्क और कुछ अन्य सामानों के लिए जाँच करता है और आपके हाथ को स्थापित करते ही पकड़ लेता है; सभी मक्खी पर डाउनलोड की जरूरत के रूप में। वे तब एक WinForms एप्लिकेशन चलाते हैं जो MSI में pInvokes को कपास-ऊन में स्थापना को और अधिक लपेटने के लिए।

एक Google के लायक।

इस तथ्य की भी संभावना है कि बहुत सारी क्लाइंट मशीनों में पहले से ही .NET फ्रेमवर्क का कुछ संस्करण स्थापित होगा क्योंकि यह Microsoft अद्यतन का हिस्सा है - जिससे यह व्यापार की दुनिया में अधिक आसानी से उपभोग्य हो जाता है।

Paint.NET ब्लॉग स्थापित करने के बारे में पोस्ट:

http://blog.getpaint.net/2008/08/24/the-paintnet-install-experience-part-1-version-3xx/

http://blog.getpaint.net/2008/08/25/the-paintnet-install-experience-part-2-version-40/ (धन्यवाद रूप!)

कहानी में थोड़ा और पढ़ना, संभवतः प्रबंधन को कम से कम एक बार सी ++ आवेदन के साथ तैनाती के दर्द से गुजरना पड़ा, लेकिन अब इसे "आसान" के रूप में वर्गीकृत किया गया है। तैनाती के खिलाफ कुछ समय दें और इसे प्रबंधन को पेश करें और, दर्द को छिपाते हुए, उन्हें बताएं कि इसे स्थापित करना कितना आसान है :)


लिंक के लिए धन्यवाद। दूसरा भाग blog.getpaint.net/2008/08/25/… है (मैं पृष्ठ पर पहले से एक लिंक नहीं देख सका, हालांकि यह वास्तव में हेडर में है)
— Rup

@ अच्छा मिल! मैं एक संक्षिप्त देखो था और यह जगह नहीं थी। मैं इसे दिखाने के लिए अपने जवाब में संशोधन करूंगा।
— एडम हल्ड्सवर्थ

मुझे आश्चर्य है कि अगर Paint.net के लिए 4.0 एक के समान एक ओपन सोर्स इंस्टॉलर है। यह .net एप्लिकेशन को वितरित करने वाले किसी के लिए भी बहुत उपयोगी होगा।
— dbkk

1
@dbkk आप मुझे बता रहे हैं! पेंट.नेट का उपयोग प्रोग्राम और इंस्टॉलर के लिए कोड जारी करने के लिए किया जाता है, लेकिन लेखक द्वारा क्रेडिट नहीं देने के कारण कॉपी-कैट कार्यक्रमों के कारण इसे फिर से तैयार किया गया है।
— एडम हल्ड्सवर्थ

1
यदि आप Visual Studio ओपन के साथ Paint.NET स्थापित / अपडेट करते हैं, तो यह विज़ुअल स्टूडियो को भ्रष्ट कर सकता है। तो मैं कहूंगा कि उनके इंस्टॉलर को अभी भी कुछ काम चाहिए।
— ग्रेग

37

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

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

भविष्य के सभी अनुप्रयोगों के लिए, आप लगभग समान इंस्टॉलर का उपयोग कर रहे होंगे; आप अभी भी सभी आवश्यक जाँच करेंगे, लेकिन C: \ Foo में फ़ाइलों की प्रतिलिपि बनाने के बजाय, आप C: \ bar में कुछ अलग फ़ाइलों की प्रतिलिपि बना रहे हैं।

मेरी राय में, यह अर्थशास्त्र का एक सरल प्रश्न है। हाँ, .NET अनुप्रयोग के लिए एक (अच्छा / पूर्ण) इंस्टॉलर विकसित करना अधिक महंगा है, लेकिन अगर यह कदम आपको अपने विकास के समय को नाटकीय रूप से सुधारने के लिए एक बार लेने की आवश्यकता है , तो यह एक नो-ब्रेनर है। निवेश पर आपका रिटर्न शायद हफ्तों के क्रम में होगा।


1
.NET में एक अच्छा इंस्टॉलेशन अनुभव को पिन करना मुश्किल है, लेकिन जैसा कि आप कहते हैं, केवल एक-शॉट होना चाहिए। अधिकांश बॉयलरप्लेट सामान होने का लाभ जो आपको कभी भी सिस्टम की आवश्यकता होगी। सेलिंग। क्लैस लगभग अनमोल है और एक इंस्टॉलर-प्रेरित सिरदर्द या दो के लायक है।
— एडम हल्ड्सवर्थ

2
मैं विस् बर्न की रिलीज के लिए उत्सुकता से देख रहा हूं , जो पहले बूटस्ट्रैपर है जो वास्तव में काम करता है (मुझे आशा है)। DotNetInstaller NSIS के साथ है जो मैं वर्तमान में उपयोग कर रहा हूं। लेकिन UAC हैंडलिंग अभी तक एकदम सही नहीं है।
— उवे कीम

1
@ हमें ऐसा लगता है कि Wix Burn को ड्यूक नुकेम फॉरएवर के समान ही रिलीज़ किया जाएगा ।
— dbkk

वह महान होगा। मैंने पहले से ही ड्यूक नुकेम फॉरएवर के पूर्वावलोकन स्क्रीनशॉट देखे । तो यह जल्द ही होना चाहिए ;-)
— Uwe Keim

17

मुझे लगता है कि मुझे इस कथन पर प्रतिक्रिया देने की आवश्यकता है:

हाँ, .NET के कुछ अधिवक्ता दावा करेंगे कि सब कुछ एक पैचेड और अपडेटेड ऑपरेटिंग सिस्टम पर स्थापित होना चाहिए। यह सच है, लेकिन सभी ग्राहकों के पास यह नहीं है, और बस यह कह रहा है कि "मुझे क्षमा करें, पहले अपडेट करें" बस इसे काट नहीं करेगा। याद रखें, हम समग्र उपयोगकर्ता अनुभव में गर्व करते हैं।

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

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


2
मुझे लगता है कि निर्माता याद करेंगे कि एक सादृश्य के संदर्भ में एक छोटे से अधिक-शीर्ष है - मैं कहूंगा, यह एक कार ड्राइविंग की तरह है जो एयर-बैग या एबीएस को पूर्व-तिथि देता है - गुणवत्ता में सुधार के साथ नई विशेषताएं आई हैं, और बढ़ाएं गुणवत्ता बार। पुराना सामान अचानक टूट या खतरनाक नहीं हो जाता है, यह अब आज के मानकों में बार के नीचे होने के रूप में स्वीकार किया जाता है, मुझे यकीन है कि विंडोज 95 टीम यह तर्क देगी कि उस समय उन्हें लगा था कि बार काफी ऊंचा है! :-) फिर भी मैं आपसे सहमत हूँ, गुणवत्ता की प्रगति का अज्ञान कोई गुण नहीं है।
— एडम हल्ड्सवर्थ

11
मैं 100% असहमत हूं। ग्राहकों को बहुत लंबे समय तक जानकार होना आवश्यक है। मुझे यह क्यों जानना चाहिए कि मैं x86 हूं या x64? मुझे यह क्यों जानना चाहिए कि मैं कौन सा सर्विस पैक चला रहा हूं? मुझे अपना सॉफ़्टवेयर खरीदने दें और आप यह पता लगा लें कि इसे चलाने के लिए क्या होना चाहिए। उपभोक्ता सॉफ्टवेयर अनिवार्य रूप से एक iOS / Android / AppStore मॉडल की ओर बढ़ रहा है और किसी भी डेवलपर को उपयोगकर्ताओं को अपने डिवाइस के बारे में सबसे बुनियादी विवरणों के अलावा कुछ भी जानने की आवश्यकता होती है, जो पीछे छोड़ दिया जाएगा।
— कुब्बी

1
@kubi बेशक iOS सादृश्य इस धारणा के साथ आता है कि हार्डवेयर परिवर्तित नहीं होता है क्योंकि यह विक्रेता नियंत्रित है। पीसी पूरी तरह से कॉन्फ़िगर करने योग्य हैं इसलिए कुछ ज्ञान या आवश्यकताओं के बारे में जागरूकता की आवश्यकता होती है - या किसी की आवश्यकता के बारे में बहुत कम जागरूकता होने पर किसी को पता है कि वे क्या कर रहे हैं। मैं या तो अपने टायरों का आकार जानता हूं या अपनी कार किसी ऐसे व्यक्ति को देता हूं, जो जानता हो कि मैं अपने टायरों को बदलने जा रहा हूं।
— एडम हल्ड्सवर्थ

3
@kubi: मैं आपके साथ आकस्मिक उपयोगकर्ता मॉडल पर सहमत हूं - यहाँ अंतर यह है कि उपयोगकर्ता के लिए कोई भी कारण नहीं है कि सभी तकनीकी मुद्दों को मंच के संस्करण की तरह न प्रस्तुत किया जाए i) निर्माता या ii) मुझे, एक डेवलपर के रूप में। इसलिए वे कोई समस्या नहीं हैं। जो उपयोगकर्ता एक समस्या है वह एंटरप्राइज़ उपयोगकर्ता है जो जरूरी नहीं है कि उनके कॉन्फ़िगरेशन पर एक कहा जाए और जिनके पास इन मुद्दों को हल करने के लिए एक सक्षम आईटी प्रदाता होना चाहिए।
— टॉम डब्ल्यू

4
उपयोगकर्ताओं को हमारे किसी भी तर्क की परवाह नहीं है, हालांकि ध्वनि। वे आपके सॉफ़्टवेयर का उपयोग करना चाहते हैं ... लेकिन यदि इंस्टॉलेशन बहुत दर्दनाक है, तो छोड़ दें। वे कम परवाह कर सकते हैं कि यह किसकी गलती है - Microsoft, विक्रेताओं, या अपने स्वयं के।
— dbkk

7

किसी भी विजुअल C ++ ऐप में पूर्वापेक्षाएँ / बाहरी निर्भरताएँ भी हैं: रनटाइम 6.0, 2003, 2005, 2008 या 2010? कोई सपा, SP1 या SP2? x86 या x64? 2005 SP2 को Windows इंस्टालर के किस संस्करण की आवश्यकता है? और क्या 2008 SP1? वगैरह वगैरह।

इस प्रकार यह दूर की दलील है! .NET के बारे में जोएल के बड़बड़ा की तरह । और देखो अब क्या है !


3
जोएल की वेबसाइट से लिंक करने के लिए +1
— सिक्योरिटी हाउंड

-1 जोएल की वेबसाइट से लिंक करने के लिए।
— फिल

आप क्रमिक रूप से रनटाइम से लिंक कर सकते हैं, इसलिए आपको उन निर्भरताओं की आवश्यकता नहीं है।
— टोनी एडगेकोम्बे

1
@Tony: 21 वीं सदी के 10 के दशक में स्टेटिकली लिंकिंग? पूर्ण मौविस टन ;)
— abatishchev

जोएल की वेबसाइट से लिंक करने के लिए +1
— शाहिद एम जुबैर

3

मैं नहीं देखता कि C ++ बिल्डर पर .net के लिए काफी अधिक पूर्व-आवश्यकताएं कैसे हैं। आप SQL सर्वर के बारे में शिकायत करते हैं, लेकिन आप इस तथ्य को नजरअंदाज कर देते हैं कि आपको C ++ बिल्डर के साथ कुछ डेटाबेस भी स्थापित करना है। आप x64 बनाम x32 के बारे में शिकायत करते हैं, लेकिन .NET को किसी भी बदलाव की आवश्यकता नहीं है .. एक ही exe दोनों पर चलता है (और या तो पर्यावरण के लिए स्वयं को संकलित करता है)। C ++ बिल्डर के बारे में भी ऐसा नहीं कहा जा सकता है। आपको SQL सर्वर के अलग-अलग संस्करणों की आवश्यकता हो सकती है, लेकिन फिर से C ++ बिल्डर पर लागू होगा (जब तक कि आप हर चीज पर x32 स्थापित नहीं करते)।

हां, नए इंस्टॉलर संस्करण समस्याएँ हैं, लेकिन वे घटक बहुत बड़े नहीं हैं। और आप वास्तव में इंस्टॉल कर सकते हैं केवल डाउनलोड करने और इंस्टॉल करने के लिए आवश्यक हैं।

C ++ बिल्डर शायद आपके लिए आसान है क्योंकि आपने पहले से ही एक अच्छा इंस्टॉलर बनाने में समय लगाया है। आपको .NET के लिए ऐसा ही करने की आवश्यकता है, और फिर आप वास्तविक मुद्दों के आधार पर चुन सकते हैं .. और यह नहीं।

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

आप कम जानकार लोगों के लिए "इसे आसान बनाने" के रूप में देखते हैं, वास्तव में चीजों को उन लोगों के लिए कठिन बना रहे हैं जो जानते हैं कि वे क्या कर रहे हैं।

यहाँ एक अच्छा उदाहरण है। एक बात जो मैं पूरी तरह से घृणा करता हूं , जब मैं एक ऐप इंस्टॉल करता हूं जिसमें SQL सर्वर की आवश्यकता होती है, और यह SQL सर्वर के अपने इंस्टेंस को स्थापित करता है, भले ही मेरे पास पहले से ही कई उदाहरण हो सकते हैं जो इसका उपयोग कर सकते हैं। नौसिखिए के लिए आसान, मेरे लिए गधा में एक दर्द है जो आपके एकल उदाहरण के साथ काम करने की कोशिश करता है।


1

यदि आपका ऐप मोनो के अंतर्गत चलता है, तो मोनो रनटाइम के साथ अपने ऐप को शिपिंग करना कम दर्दनाक हो सकता है।

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