Why Microsoft developed .NET Framework?

.NET Framework in Hindi: Hardware और Software दो ऐसी चीजें हैं, जिनके बीच आपस में हमेंशा होड लगी रहती है और किसी भी समय ये दोनों एक समान स्थिति में नहीं होते। कभी Hardware आगे निकल जाता है तो कभी Software और इन दोनों के एक दूसरे से आगे बढने के Competition में नई-नई तकनीकों का विकास होता है। लेकिन इन दोनों के ही विकास का मूल कारण है जरूरत।

जैसे-जैसे हम भविष्‍य की ओर बढते जा रहे हैं, हमारी जरूरतें बदलती जा रही हैं और हमारी जरूरतों को पूरा करने के लिए नई-नई तरह की Devices बनाई जाती हैं। फिर इन नई तरह की Devices को उपयुक्त तरीके से Handle करने के लिए नए तरह के Software बनाए जाते हैं। फिर Software बनाने की प्रक्रिया को आसान बनाने के लिए और नए तरह के Design Patterns बनाए जाते हैं और ये प्रक्रिया अनवरत रूप से जारी रहती है।

यानी नई तरह की जरूरत, फिर इस जरूरत को पूरा करने के लिए नए तरह के Devices का विकास, फिर इन नए तरह के Devices को आसानी से उपयोग में लेना सम्भव बनाने के लिए नए तरह के Software का विकास, फिर नए तरह के Software को आसानी से Manageable बनाने के लिए नए तरह के Design Patterns का विकास व नए तरह के Design Patterns को आसानी से किसी Programming Language में Implement करने के लिए नई तरह की Programming Languages का विकास और जब तक हम इस विकास चक्र में Programming Language तक पहुंचते हैं, तब तक फिर एक नई तरह की Requirement पैदा हो जाती है, जिसे Handle करने के लिए फिर एक नई तरह की Device का विकास करने की जरूरत महसूस होती है और ये प्रक्रिया अनवरत रूप से लम्बे समय से इसी तरह से चली आ रही है।

यानी हमारे सामने हमेंशा किसी न किसी तरह की समस्या रहती है, जिसका हम हमेंशा सरल समाधान खोजते रहते हैं और हमेंशा चीजों को आसान बनाने की कोशिश करते रहते हैं, जिसकी वजह से नई तरह की समस्याऐं सामने आने लगती हैं, जिन्हें फिर समाधान की जरूरत होती है और समाधान के रूप में फिर एक नई समस्या बन जाती है और हम इन विभिन्न प्रकार की समस्याओं को Devices के माध्‍यम से Solve करने की कोशिश करते हैं और तरह-तरह की नई-नई Devices बनाते रहते हैं। इस प्रक्रिया को एक उदाहरण द्वारा समझने की कोशिश करते हैं।

क्योंकि समस्याऐं हमेंशा Circular होती हैं, इसलिए समस्या की शुरूआत कहां से हुई होगी, इसके बारे में निश्चित रूप से कुछ भी नहीं कहा जा सकता। लेकिन हम ये मान लेते हैं कि सभ्‍यता की शुरूआत से ही मानव ने Information के महत्व को समझा होगा और पाया होगा कि सभी तरह की जानकारियों को याद रखना सम्भव नहीं हो सकता। इसलिए मानव ने कागज और कलम व भाषा का विकास किया ताकि वह जानकारियों को लिखकर भविष्‍य में उपयोग में लेने के लिए सहेज सके।

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

लेकिन जब वे समूह एक-दूसरे से अलग हुए होंगे तो भी आपस में जुडे रहने के लिए किसी न किसी तरह के माध्‍यम की तलाश की होगी। इसी तलाश ने उन्हें विज्ञान का विकास करने पर मजबूर किया होगा। परिणामस्वरूप लम्बे समय की खोजबीन के बाद Radio का विकास सम्भव हुआ होगा।

Radio की अपनी स्वयं की Limitation थीं क्योंकि Radio से सिर्फ आवाज को ही एक स्थान से दूसरे स्थान पर भेजा जा सकता था, चित्र को नहीं। इसलिए फिर एक समस्या पैदा हो गई कि आवाज के साथ चित्र को भी किस तरह से एक स्थान से दूसरे स्थान पर भेजा जा सके, ताकि दो दूरस्थ स्थानों पर रहने वाले मानव समूहों के बीच आपसी सम्बन्ध बना रहे। परिणामस्वरूप Television का विकास हुआ।

कुछ समय तक ठीक रहा लेकिन फिर मानव ने महसूस किया कि हालांकि Television दो दूरस्थ स्थानों के बीच सम्बंध तो बना देता है, लेकिन वह सम्बन्ध Live नहीं होता। क्योंकि Television व Radio केवल One-Way Communication ही Provide करते हैं। परिणामस्वरूप विकास किया गया Telephone का।

Telephone एक ऐसी Device थी, जिससे लोग एक दूसरे से Live बात कर सकते थे व एक दूसरे से Connected रह सकते थे। लेकिन फिर एक समस्या पैदा हो गई कि हालांकि Telephone से दो लोग आपस में Two-Way Communication तो कर सकते थे, लेकिन वे एक दूसरे से तभी बात कर सकते थे, जबकि दोनों समान समय पर Telephone Device के पास हों।

परिणामस्वरूप एक ऐसी Device की कल्पना की गई, जिसे साथ लेकर घूमा जा सके, ताकि कभी भी और किसी भी समय किसी के साथ भी Communication किया जा सके। परिणाम था Mobile Phone और अब लोग एक दूसरे को देखते हुए आमने-सामने बात करना चाहते हैं, जिसका परिणाम है Smart Phone, Tablet PC व Computer पर की जाने वाली Online Net MeetingChatting, Instance Messanging जैसी व्‍यवस्थाऐं।

यानी इन्सानी जरूरतें तय करती हैं कि किस तरह के Device का विकास करने की जरूरत है और फिर उस Device को उपयुक्त स्तर पर विकसित करने में Software अपनी अहम भूमिका निभाता है क्योंकि किसी भी Hardware Device को जीवन देने का काम Software का ही होता है। बिना Software कोई भी Hardware किसी काम का नहीं है।

उदाहरण के लिए यदि आपके पास जो Mobile Phone है, उसके किसी भी Button को Press करने पर आपके Screen पर आपको उस Button से सम्बंधित कोई Response ही प्राप्त न हो, तो वह Mobile Phone आपके किसी काम का नहीं है।

क्योंकि आपको आपका Mobile उसी स्थिति में जीवित यानी उपयोगी व Working State में मालूम पडता है, जब आप उस Mobile Interface के साथ कुछ प्रक्रिया करते हैं और वह Mobile आपके हर Action का जवाब किसी Response से देता है और ये Response हमेंशा Software द्वारा तय होता है।

चूंकि कोई भी Hardware Device हमारी भाषा को तो समझता नहीं है, बल्कि हर Device समझता है केवल मशीनी भाषा यानी Binary Digits के Patterns को और Binary Digits के Patterns को हम नहीं समझते।

परिणामस्वरूप हमें एक Software Developer के रूप में जरूरत पडती है किसी न किसी तरह के Programming Language की, जो कि पूरी तरह से उस Device पर निर्भर करती है कि कौनसा Device किस भाषा को समझेगा और किस भाषा में किस तरह का Response देगा।

इसलिए जो कम्पनी Device बनाती है, वही कम्पनी उस Device की एक मशीनी भाषा भी बनाती है, लेकिन मशीनी भाषा को समझना सामान्‍य लोगों के बस की बात नहीं है, इसलिए कुछ अच्छे जानकार लोग बनाते हैं कम्पाईलर यानी एक ऐसा Intermediate Software, जो कि हमारी भाषा समझाता है Device को और Device की भाषा समझाता है हमें।

लेकिन अलग-अलग कम्पनियां यदि अलग-अलग Device के लिए अलग-अलग भाषाऐं बनाए, तो हर Device की एक अलग भाषा होगी, जिसकी वजह से हर Device के लिए Software बनाने हेतु एक नई Programming Language सीखनी पडेगी।

इस समस्या का समाधान ये निकाला गया कि एक ऐसा Chip बनाया जाए, जिसकी भाषा लगभग Common रहे और उसी Chip को अपनी जरूरत के अनुसार अलग-अलग तरह से Program कर के अलग-अलग तरह की जरूरतों को पूरा किया जाए।

परिणामस्वरूप इस Chip को ही Microprocessor नाम दिया गया और वर्तमान समय में Mobile, Computer, Laptop, Notebook, Tablet PC, Smart Phone, Dish, D2H, CD/DVD Player आदि सभी लगभग समान मशीनी भाषा वाले Microprocessors को ही Use करते। फिर भी हम समझ सकते हैं कि ये सभी Devices एक दूसरे से कितना भिन्न तरीके से काम करते हैं और कितना अलग तरह का Output Generate करते हैं।

यानी DVD Player हमें Audio सुनाता है या Video दिखाता है जबकि हमारा Mobile Phone हमें किसी दूसरे के साथ Communicate करने की सुविधा Provide करता है, जबकि Internally दोनों ही Devices समान Family के Microprocessors पर आधारित हैं और दोनों के लिए बनाया गया Software भी लगभग Internally समान Programming Language में ही Develop किया गया है। ऐसा इसीलिए सम्भव हो पाता है क्योंकि इन सभी Devices में एक ही Family के Microprocessors को अलग-अलग तरह से Program किया गया होता है और Program करने का काम किया जाता है किसी न किसी Programming Language में।

यानी किसी भी Device की जान तो Software ही होता है और Software बनाया जाता है हमेंशा किसी न किसी Programming Language में। लेकिन जैसाकि हमने पहले भी कहा कि जब तक Programming Language का विकास किया जाता है, तब तक एक और नए प्रकार का Device आ जाता है, जिसके लिए फिर से एक नई Programming Language की जरूरत पड जाती है।

इस तरह से हर Device के लिये एक नई Programming Language Develop करने से सम्बंधित Circular समस्या से बचने के लिए ही किया गया पहला प्रयास Sun Microsystems द्वारा Developed Programming Language Java था और दूसरा प्रयास Microsoft Company द्वारा किया गया Framework .NET व Programming Language C# है।

इन दोनों Programming Languages की अपनी विशेषता है और दोनों Programming Languages वर्तमान समय की Modern and Smart Programming Languages हैं। साथ ही इन्हें इस तरह से विकसित किया जा रहा है कि इन्हें समझ लेने के बाद किसी भी Device को Program करने के लिए किसी भी अन्‍य Programming Language को सीखने की जरूरत न रहे।

हालांकि Java एक Platform व Hardware Architecture Independent Programming Language Framework है, जो किसी भी Device के लिए Software Develop करने हेतु उपयुक्त है, लेकिन .NET को केवल Microsoft Platform को ही ध्‍यान में रखकर Develop किया गया है। हालांकि इसे भी Hardware Architecture Neutral बनाया जा सकता है।

लेकिन Java को जिस तरह से Platform व Hardware Architecture Neutral बनाने के लिए विशेष ध्‍यान दिया गया था, .NET को Programming Language Neutral बनाने पर विशेष ध्‍यान दिया गया है। ताकि .NET Framework का प्रयोग करके किसी भी .NET Supported Programming Language मे Application Software Develop किया जाए, वे सभी आपस में एक दूसरे के Compatible व Interoperable हों।

यानी .NET Platform को केवल Microsoft द्वारा Supported Programming Languages द्वारा ही उपयोग में नहीं लिया जा सकता, बल्कि कोई भी ऐसी Programming Language, जिसे Microsoft .NET Architecture को ध्‍यान में रखकर Design किया गया हो, इन .NET Framework को Use कर सकता है और बहुत सारी ऐसी Languages Develop भी की गई हैं, जो कि .NET Framework को Use करते हुए Linux, Unix, MacOS जैसे Platform के लिए भी Software बनाने हेतु Use होती हैं, लेकिन चूंकि इनका Market बहुत कम है, इसलिए ये Programming Languages ज्यादा Famous नहीं हो पाई हैं।

हालांकि Microsoft ने .NET के लिए जिस नई Programming Langue को बिल्कुल शुरू से Design किया है, वह C# ही है जबकि VB.NET को तो .NET Framework को Use करने लायक बनाने हेतु Redesign किया गया है। इसीलिए वर्तमान समय में VB.NET का Scope धीरे-धीरे समाप्त होता जा रहा है और Microsoft का पूरा ध्‍यान केवल C# पर है।

चूंकि Desktop Technology में अभी भी लगभग 95% लोग Window Operating System Use करते हैं, इसलिए Microsoft केवल 5% Market Cover करने के लिए ज्यादा महत्व नहीं देता। हालांकि Windows 8 जैसा Operating System Develop करके Microsoft ने Tablet PC, Microsoft के Smart Phone व Intel Architecture Based Computers के Market को उपयुक्त तरीके से Cover किया है, जिनके लिए Develop किया जाने वाला Software पूरी तरह से .NET Framework आधारित मूल Programming Languages VB.NET व C# में Develop किया जा सकता है।

हालांकि पहले से ही बहुत सारी Programming Languages उपलब्ध थीं और स्वयं Microsoft ने भी कई Programming Languages के Compiler पहले भी Design किए थे, लेकिन फिर भी Microsoft ने C# Language को मूल रूप से .NET Framework के लिए Develop किया।

Microsoft ने ऐसा क्यों किया, इसे समझने के लिए हमें पहले Programming Language के विकास के इतिहास को जानना होगा तभी हमें उन Programming Language Related समस्याऐं भी समझ में आऐंगी और तभी हम .NET के लिए Special रूप से अलग से Develop की गई Programming Language C# की विशेषता को भी समझ पाऐंगे। (.NET Framework in Hindi)

C# in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook C#.NET in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

C#.NET in Hindi | Page:908 | Format: PDF

BUY NOW GET DEMO REVIEWS