.NET Platform and Related Languages

.NET Framework Platform and Languages: यदि हम किसी .NET Supported Programming Language को सीखना चाहते हैं, तो हमें पूरे .NET Framework को सीखना जरुरी नहीं होता। क्योंकि .NET Framework व .NET Supported Programming Languages दो एकदम अलग Concepts हैं। वास्तव में हम .NET Framework को मूल रूप से तीन भागों में Divide कर सकते हैं:

  • .NET Supported Programming Language
  • .NET Framework
  • .NET Platform or CLR

जहां .NET Supported Programming Language वे Programming Language हैं, जिनके Code Syntaxes का प्रयोग करके हम .NET Framework Based Applications Develop करते हैं। इन Programming Languages का .NET Framework व Platform से Direct सम्बंध होता है क्योंकि Develop किए जा रहे Application की विभिन्न प्रकार की जरूरतों को आसानी से पूरा करने के लिए .NET Framework विभिन्न प्रकार की Predefined Classes की Library Provide करता है।

हालांकि सामान्‍यत: .NET Framework को तभी Modify किया जाता है, जब किसी नए तरह की Requirement को पूरा करना होता है और नए तरह की Requirement को पूरा करने के लिए जब किसी Concept को .NET Platform में Implement किया जाता है या किसी नए Namespace अथवा Class को Define किया जाता है, तो .NET Supported Programming Language को नई तरह की Functionality से अवगत करवाने के लिए Programming Language को भी Modify किया जाता है।

लेकिन इसका मतलब ये नहीं है कि जब भी कभी .NET Framework में किसी Namespace या Class को Add करते हुए .NET Framework को Modify किया जाएगा, तो उसके साथ ही .NET Supported Programming Language को भी Modify करना होगा।

इसीलिए जब .NET Framework का 1.1 Version Launch किया गया था, तब C#.NET के 1.2 Version में किसी भी नए Feature को Add नहीं किया गया था, क्योंकि .NET Framework के 1.1 Version में ऐसी कोई नई Functionality Add नहीं की गई थी, जिससे C# 1.2 को अवगत करवाने की जरूरत होती।

इसी तरह से .NET Framework में किसी तरह का कोई परिवर्तन करने का मतलब ये नहीं है कि .NET Platform या CLR में भी किसी तरह का Change किया जाना जरुरी हो। इसीलिए जब CLR का Version 2.0 Define किया गया, उसके बाद .NET Framework का Version 2.0, 3.0 व 3.5 Launch हुए और तीनों ही Versions पूरी तरह से CLR 2.0 पर निर्भर थे। जबकि .NET Framework 3.0 व 3.5 Versions के Launch होने पर भी C# Programming Language के Version में किसी तरह का परिवर्तन नहीं किया गया था।

यानी कहने का मतलब ये है कि .NET Platform या CLR में यदि किसी तरह का परिवर्तन किया जाता है, तो ये इसी बात का संकेत है कि .NET Application को Run करने के तरीके में किसी तरह का परिवर्तन किया जा रहा है। जबकि .NET Framework में किसी तरह का परिवर्तन इस बात का संकेत होता है कि Framework में किसी नई Functionality को Add किया गया है।

इसलिए यदि CLR में परिवर्तन किया जाए, तो सम्भव है कि .NET Framework व .NET Supported Programming Language दोनों में ही कुछ Change किया जाए। इसी तरह से यदि .NET Framework में किसी तरह का परिवर्तन हो, तो सम्भव है कि Programming Language में भी किसी तरह का परिवर्तन हो।

लेकिन Programming Language में किसी तरह का परिवर्तन करने का मतलब ये नहीं है कि .NET Framework व .NET Platform में भी परिवर्तन किया जाए। इसी तरह से .NET Framework में परिवर्तन करने का मतलब ये नहीं है .NET Platform में भी परिवर्तन किया जाए। इस पूरी प्रक्रिया को हम निम्न चित्रानुसार आसानी से समझ सकते हैं:

Microsoft .NET Platform Framework and Language - C#.NET in Hindi

जैसाकि इस चित्र द्वारा हम समझ सकते हैं कि यदि .NET Framework में किसी तरह का Modification किया जाता है, तो जरुरी नहीं होता कि CLR यानी .NET Application को Run करने के तरीके में भी किसी तरह का Modification हो।

लेकिन यदि .NET Platform के किसी हिस्से या CLR में किसी तरह का कोई Change किया जाए, तो सम्भावना यही रहती है कि .NET Framework व Programming Language में भी किसी न किसी तरह का परिवर्तन जरूर होगा और परिवर्तन के रूप में .NET Framework में नई Classes व नए Namespaces को Add किया जा सकता है जबकि Programming Language में नए Features को Append किया जा सकता है।

जैसाकि उपरोक्त चित्र में दिखाया गया है कि CLR 2.0 के साथ .NET Framework 2.0, 3.0 व 3.5 Launch हुआ जबकि C# Programming Language का 2.0 व 3.0 Version Launch हुआ। CLR 2.0 के साथ तीन अलग Version के Frameworks व दो अलग Versions की C# Programming Language इसलिए Launch हो सकी क्योंकि ये एक दूसरे से Tightly Bind नहीं हैं।

केवल CLR के परिवर्तन से ही नए Namespace व नई Classes बनाने की जरूरत नहीं पडती, बल्कि .NET Platform के कई हिस्से होते हैं, जिनमें से CLR भी एक हिस्सा होता है। इसलिए .NET Platform के किसी भी हिस्से में Change करने की वजह से .NET Framework व C# Programming Language को Modify करने की जरूरत पड सकती है।

यही वजह है कि CLR 2.0 के साथ तीन .NET Framework Versions व दो C# Programming Language Versions को Launch किया जा सका क्योंकि इन तीन Versions में CLR को नहीं बल्कि .NET Platform के किसी अन्‍य हिस्से को Change किया गया था।

चूंकि, Base Class Library भी .NET Platform का ही एक हिस्सा होता है, इसलिए इस Base Class Library में नए Namespace व नई Classes Add करके भी .NET Framework व C# Programming Langue में नए Features को Append किया जा सकता है।

यही वजह है कि बिना CLR 2.0 को Change किए हुए केवल कुछ नए Namespaces जैसे कि LINQ, WPF, WCF, WF आदि को Base Class Library में Append करके भी .NET Framework के 3.0 व 3.5 Versions को Launch किया जाना सम्भव हो सका, जबकि .NET Framework व C# Programming Language में नए Features को Add करते समय CLR 2.0 को Modify करने की जरूरत नहीं हुई।

इस तरह से यदि सरल शुब्दों में कहें, तो .NET Platform, .NET Framework व .NET Programming Language, तीनों अपने स्तर पर अलग&अलग Update हो सकते हैं और तीनों पूरी तरह से एक दूसरे पर निर्भर नहीं हैं।

लेकिन .NET Platform को Update करने पर बहुत सम्भावना है कि .NET Framework को Change करना पडे और .NET Framework को Change करने पर बहुत सम्भावना है कि .NET Programming Language को भी Update करना पडे।

लेकिन Programming Language में Change करने पर .NET Framework को Update करना जरुरी नहीं है और .NET Framework को Change करने पर .NET Platform को Update करना जरुरी नहीं है।

कोई भी .NET Programming Language अपने स्तर पर पूरा Application Develop करने में सक्षम नहीं है और किसी भी Application को Develop करने के लिए उसे .NET Framework की विभिन्न Core Classes व अन्‍य FCL की Classes को Use करने की जरूरत होती है। इसलिए यदि किसी भी तरह से .NET Framework में कोई परिवर्तन होता है, तो बहुत सम्भावना है कि उस Change के अनुसार Programming Language को भी Modify करने की जरूरत पडे।

इसी तरह से कोई भी Programming Language हमेंशा .NET Platform यानी CLR पर Run होने के लिए ही .NET Application Assembly Create करता है, इसलिए यदि .NET Platform में किसी तरह का Change होता है, तो निश्चित रूप से Programming Language व .NET Framework दोनों को ही Update करना जरुरी हो जाता है। क्योंकि Programming Language, .NET Framework का प्रयोग करते हुए ही .NET Platform के लिए Application Program Create करता है।

चूंकि .NET Supported Programming Languages में Generics, Partial Types, Anonymous Methods, Iterators, Nullable Types, Private Setters Delegates की सुविधाओं को Append करना था, इसीलिए CLR को Modify करके CLR 2.0 Design किया गया। साथ ही .NET Framework 1.1 को भी पूरी तरह से Redesign करके .NET 2.0 बनाया गया था, क्योंकि .NET 1.1, CLR 2.0 द्वारा .NET Supported Programming Languages के लिए Define किए जाने वाले इन नए Features के बारे में नहीं जानता था।

इसी तरह से .NET Supported Programming Languages में Implicit Type Local Variables, Object and Collection Initializers, Auto Implemented Properties, Anonymous Types, Extension Methods, Query Expressions, Lambda Expressions, Expression Trees Partial Methods की सुविधाओं को Append करना था, इसीलिए केवल .NET Framework 3.0 व 3.5 Design किया गया। यहां CLR को Modify करने की जरूरत नहीं थी, क्योंकि .NET Supported Programming Languages में इन Features को BCL Classes में Modification करके व BCL में नई Classes Add करके प्राप्त किया जा सकता था।

इसी तरह से .NET Supported Programming Languages में Dynamic Binding, Named and Optional Arguments, Generic Co and Contravariance   Embedded Interop Types (“NoPIA”) की सुविधाओं को Append करना था, इसीलिए केवल CLR 4.0 Design किया गया। यहां CLR को इसलिए Modify करने की जरूरत पडी, क्योंकि .NET Supported Programming Languages में इन Features को BCL Classes में Modification करके अथवा BCL में नई Classes Add करके प्राप्त नहीं किया जा सकता था।

हालांकि Modified CLR द्वारा Provided सुविधाओं को .NET Supported Programming Languages प्राप्त करने के लिए .NET Framework को भी Modify करके .NET Framework 4.0 Design करना पडा, जिसमें इन नई प्रकार की जरूरतों को पूरा करने से सम्बंधित जरुरी Classes को Define किया गया था।

जबकि .NET Supported Programming Languages में Asynchronous Methods Caller Info Attributes की सुविधाओं को Append करना था, इसीलिए केवल CLR 4.5 Design किया गया। यहां भी CLR को इसलिए Modify करने की जरूरत पडी, क्योंकि .NET Supported Programming Languages में इन Features को BCL Classes में Modification करके अथवा BCL में नई Classes Add करके प्राप्त नहीं किया जा सकता था।

साथ ही Modified CLR द्वारा Provided सुविधाओं को .NET Supported Programming Languages प्राप्त करने के लिए .NET Framework को भी Modify करके .NET Framework 4.5 Design करना पडा, जिसमें इन नई प्रकार की जरूरतों को पूरा करने से सम्बंधित जरुरी Classes को Define किया गया था।

इस तरह से Programming Language के Core Concepts को समझने के लिए जरुरी नहीं है कि हम .NET Framework की विभिन्न Classes को भी समझें। बल्कि Programming Language की Core Functionalities से सम्बंधित कुछ Base Class Library की Classes को उपयोग में लेते हुए भी हम .NET Supported Programming Languages के Core Concepts को आसानी से समझ सकते हैं। (.NET Framework Platform and Languages)

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

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

BUY NOW GET DEMO REVIEWS