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 पर जारी रखना चाहता हूं?