.नेट फ्रेमवर्क

आम भाषा मूलभूत संरचना (सी एल आई (CLI))

सामान्य भाषा मूलभूत संरचना, या सी एल आई (CLI) का उद्देश्य, एक भाषा-अपवाद हैंडलिंग, कचरा संग्रहण, सुरक्षा और अंतरसंक्रियता के लिए कार्य सहित आवेदन विकास और कार्यान्वयन के लिए तटस्थ मंच प्रदान करना है। सी एल आर (CLR) के दायरे के भीतर.NET फ्रेमवर्क (.NET Framework) के मुख्य पहलुओं को लागू करने से, यह कार्यशीलता एक भाषा से नहीं बांधा जा सकता, लेकिन कई रूपरेखा द्वारा समर्थित भाषाओं में उपलब्ध होगा। सी एल आई (CLI) के माइक्रोसॉफ्ट के कार्यान्वयन को साझा भाषा क्रम या सी एल आर (CLR) कहा जाता है।

असेंम्बलियाँ

NET असेंब्ली में सी आई एल (CIL) कोड रखे गए हैं। जैसा कि विनिर्देशन द्वारा सौंपा गया है, अस्सेम्बली पोर्टेबल निष्पादन योग्य (पीई) स्वरूप में, सभी डीएलएल (DLL) और ईएक्सई (EXE) फ़ाइलों के लिए विण्डोज़ (Windows) मंच पर संग्रहीत हैं। असेम्बली में एक या अधिक फ़ाइलें होते हैं जिनमें से एक प्रकट होना चाहिए, जो विधानसभा के लिए मेटाडाटा (metadata) है। एक विधानसभा का पूरा नाम (डिस्क पर फ़ाइल नाम के साथ नहीं भ्रमित करने के लिए) अपनी साधारण पाठ का नाम, संस्करण संख्या, संस्कृति हैं और सार्वजनिक कुंजी टोकन है। सार्वजनिक टोकन कुंजी एक अद्वितीय हैश उत्पन्न है जब असेम्बली संकलित हो, इस प्रकार दो असेम्बली की रूपरेखा को देखने के लिहाज़ से एक ही टोकन सार्वजनिक कुंजी कि गारंटी दी जा सके। एक निजी कुंजी ही असेम्बली के निर्माता का नाम भी निर्दिष्ट कर सकता है और मजबूत नामकरण के लिए इस्तेमाल किया जा सकता है और इसकी गारंटी देता है कि असेम्बली उसी लेखक की ओर से होता है जब असेम्बली का एक नया संस्करण तैयार होता है (वैश्विक असेंब्ली कैशे के लिए एक असेंब्ली जोड़ने की जरूरत पड़ती है).

मेटाडाटा

सभी सी आई एल (CIL), .NET मेटाडाटा (.NET metadata) के माध्यम से स्वयं का वर्णन करते हैं। सी एल आर मेटाडाटा (CLR Metadata) यह जांचता है ताकि सही तरीके को सुनिश्चित किया जा सके। मेटाडाटा (Metadata) आम तौर पर भाषा पर संकलक डेवलपर्स द्वारा उत्पन्न किया जाता है लेकिन कस्टम गुण के माध्यम से डेवलपर्स अपने मेटाडाटा (Metadata) बना सकते हैं। मेटाडाटा (Metadata) असेम्बली के बारे में जानकारी है और यह .NET फ्रेमवर्क (.NET Framework) क्षमताओं को लागू करने के लिए भी प्रोग्रामिंग को प्रतिबिंबित करता है।
फुच्क उ?????

सुरक्षा

.NET की अपनी सुरक्षा व्यवस्था के साथ साथ दो सामान्य विशेषताएं: कोड प्रवेश सुरक्षा (सी ए एस (CAS)) और प्रमाणीकरण और सत्यापन की है। कोड प्रवेश सुरक्षा सबूत आधारित है और एक विशेष सभा के साथ जुड़ा हुआ है। आम तौर पर सबूत विधानसभा का स्रोत है (चाहे वह स्थानीय मशीन पर स्थापित है या इंट्रानेट या इंटरनेट से डाउनलोड किया गया है). कोड प्रवेश सुरक्षा सबूत का उपयोग करता है ताकि कोड के लिए दी गई अनुमति का निर्धारण किया जा सके। अन्य कोड यह मांग कर सकते हैं कि एक कोड को निर्दिष्ट अनुमति दे दी जाये. मांग सी एल आर (CLR) कारणों के लिए एक कॉल चिति चल: कॉल चिति में प्रत्येक पद्धति के हर असेम्बली प्रदर्शन के लिए आवश्यक अनुमति की जाँच की जाती है, अगर किसी असेम्बली के लिए ऐसी अनुमति नहीं ली गयी है तो यह एक सुरक्षा अपवाद है।
जब एक असेम्बली भरी जाती है तो सी एल आर (CLR) विभिन्न परीक्षण करता है। ऐसे दो परीक्षण प्रमाणीकरण और सत्यापन हैं। प्रमाणीकरण के दौरान सी एल आर (CLR) यह जांच करती है कि क्या असेम्बली में वैध मेटाडाटा और सी आई एल (CIL) है और क्या आंतरिक टेबल सही हैं। सत्यापन इतना सटीक नहीं है। सत्यापन प्रणाली यह चेक करता है कि क्या कोड कुछ ऐसा भी करता है जो कि असुरक्षित है। एल्गोरिथ्म का उपयोग काफी रूढ़िवादी है, इसलिए कभी कभी सुरक्षित कोड है भी पास नहीं किये जाते है। असुरक्षित कोड केवल तभी कार्य में लाया जाता है जब असेम्बली द्वारा सत्यापन छूट की अनुमति हो, जिसका आमतौर पर मतलब यह होता है कि कोड स्थानीय मशीन पर स्थापित है।
.NET फ्रेमवर्क (.NET Framework) एक प्रक्रिया में चल रहे अलग कोड के लिए एक तंत्र के रूप में एपडोमेंज़ (AppDomains) का उपयोग करता है। एपडोमेंज़ (AppDomains) अन्य एपडोमेंज़ (AppDomains) से स्वतंत्र रूप से लोड या अनलोड और बनाया जा सकता है। यह आवेदन की गलती सहनशीलता बढ़ाने में मदद करता है, ताकि दोष या दुर्घटनाओं के एक एपडोमेंज़ (AppDomains) में आवेदन के शेष प्रभावित नहीं हों. एपडोमेंज़ (AppDomains) विभिन्न सुरक्षा विशेषाधिकारों के साथ भी स्वतंत्र रूप से कॉन्फ़िगर हो सकती है। यह संभावित असुरक्षित कोड अलग से आवेदन की सुरक्षा की वृद्धि में मदद कर सकता है। बहरहाल डेवलपर, आवेदन को उप डोमेंज़ में विभाजित करता है, ऐसा सी एल आर (CLR) द्वारा नहीं किया जाता है।

मेमोरी मैनेजमेंट

.NET फ्रेमवर्क (.NET Framework) सी एल आर (CLR) डेवलपर को स्मृति प्रबंध के बोझ से मुक्त कर देते (कार्य के दौरान आवंटन और मुक्त करता है); बजाय यह स्वयं स्मृति प्रबंधन ही है। इसे समाप्त करने के लिए, . NET प्रकार (वस्तुओं) को स्मृति की instantiations को प्रबंधित ढेर, स्मृति का एक पूल सी एल आर (CLR) द्वारा प्रबंधित से रेगुलर आबंटित किया जाता है। जब तक वहाँ एक वस्तु है, जो, वस्तु या तो एक वस्तु को एक प्रत्यक्ष संदर्भ या वस्तु का ग्राफ के द्वारा हो सकता है तब तक वस्तु को सी एल आर (CLR) द्वारा उपयोग में माना जाता है। जब किसी वस्तु के लिए कोई संदर्भ नहीं हो और यहाँ तक पहुँच नहीं हो या इस्तेमाल नहीं किया जा सके, तो यह कचरा बन जाता है। हालांकि, यह अभी भी यह स्मृति आवंटित करने पर अडिग रहती है। .NET फ्रेमवर्क (.NET Framework) एक कचरा कलेक्टर है जो समय समय पर आवेदन धागे से एक अलग धागा पर चलाया जाता है और यह सब व्यर्थ वस्तुओं की गणना करता है और इसमें उन्हें आवंटित स्मृति सुधारना शामिल हैं।
. NET कचरा (जी सी (GC)) कलेक्टर एक गैर नियतात्मक, संक्षिप्त, फुटकर और झाडू कचरा कलेक्टर है। जी सी (GC) केवल तभी चलाया जाता है जब स्मृति का एक निश्चित राशि का इस्तेमाल किया गया हो या वहाँ सिस्टम पर स्मृति के लिए काफी दबाव हो। चूंकि यह शर्त स्मृति को पुनः प्राप्त करने के लिए पहुँच की गारंटी नहीं है, इसलिए जी सी (GC) रन गैर नियतात्मक हैं। प्रत्येक .NET अनुप्रयोग रूट का एक सेट है, जो प्रबंधित ढेर पर वस्तुओं की ओर इशारा (प्रबंधित वस्तुओं) करता है। इनमें स्थिर वस्तुओं और स्थानीय चर या विधि मानकों के रूप में परिभाषित की वस्तुओं को शामिल किया जाता है। साथ ही सीपीयू रजिस्टर द्वारा निर्दिष्ट वस्तुओं को संदर्भित किया जाता है। जब जी सी (GC) रन किया जाता है, तो यह आवेदन को पॉज़ करता है और रूट में निर्दिष्ट प्रत्येक वस्तु के लिए, यह सभी वस्तुओं की रीकर्सिव्ली गणना करता है और उन्हें रीचेबुल चिह्नित करता है। यह .NET मेटाडाटा (.NET Metadata) का उपयोग करता है और वस्तुओं की खोज प्रतिबिंब को समझाकर फिर उन्हें रीकर्सिव्ली चलाता है। तब यह ढेर पर सभी वस्तुओं की गणना करता है जो (शुरू में लगातार आबंटन की होती हैं) प्रतिबिंब का उपयोग कर रहे थे। सभी वस्तुएं जो चिह्नित नहीं हैं, कचरा होती हैं। इस निशान चरण है। जब तक कचरा द्वारा आयोजित की स्मृति का कोई भी परिणाम नहीं निकलता है, इसे मुक्त स्थान माना जाता है। बहरहाल, यह वस्तुओं के बीच मुक्त स्थान छोड़ देता है, जो इसके पड़ोस का हिस्सा है। वस्तुओं को एक साथ जमा करने के लिए मुक्त स्पेस के द्वारा उन्हें फिर से मिलाने के लिए मेम्स्पी (memcpy) का उपयोग कर पुनः मुक्त स्पेस में कॉपी किया जाता है। किसी वस्तु के लिए कोई संदर्भ वस्तु को मूव कर अवैध किया जाता है और यह GC द्वारा नए स्थान के अद्यतन को प्रतिबिंबित है। कचरा संग्रहण ख़त्म होने के बाद आवेदन फिर से शुरू हो जाता है।
.NET फ्रेमवर्क (.NET Framework) द्वारा इस्तेमाल जी सी (GC) वास्तव में पीढ़ीगत है। वस्तुओं को एक पीढ़ी सौंपा जाता है; नव निर्मित वस्तुएं पीढ़ी 0 से संबंधित होती हैं। कचरा संग्रहण से बचानेवाली वस्तुएं 1 जनरेशन के रूप में चिह्नित की जाती है और जनरेशन 1 वस्तुओं को बचानेवाली वस्तुएं 2 जनरेशन की होती है। .NET फ्रेमवर्क (.NET Framework) जनरेशन को 2 वस्तुओं का उपयोग करता है। उच्च उत्पादन वस्तुएं अक्सर कम उत्पादन वस्तुओं से भी कम समय में कचरा एकत्र कर रहे हैं। यह कचरा संग्रहण की क्षमता बढ़ाने में मदद करता है, जैसे कि पुरानी वस्तुओं को नये वस्तुओं की तुलना में ज्यादा जीवन भर देते हैं। इस प्रकार, उम्र (और इस प्रकार अधिक संग्रह जीवित रहने की संभावना को हटाने की वस्तुओं) एक संग्रह रन की गुंजाइश से, कम वस्तुओं की जाँच और ठोस करने की आवश्यकता है।

मानकीकरण और लाइसेंस

अगस्त 2000 में, माइक्रोसॉफ्ट, हेवलेट-पेकार्ड (Hewlett-Packard) और इंटेल ने सीएलआई (CLI) मानकीकृत और सी प्रोग्रामिंग भाषा में कार्य किया। दिसम्बर 2001 तक, दोनों ECMA (ECMA 335 और ECMA 334 मानकों का अनुमोदन किया गया। अप्रैल 2003 में आईएसओ - आईएसओ (ISO) मानकों की मौजूदा संस्करण आईएसओ / आईईसी और आईएसओ 23271:2006 / 23270:2006 आईईसी हैं।
जब माइक्रोसॉफ्ट और उनके सहयोगी पार्टनर सीएलआई (CLI) और सी# के लिए पेटेंटों को होल्ड करते हैं तो ईसीएमए (ECMA) और आई एस ओ (ISO) की जरूरत पड़ती है क्योंकि सभी पेटेंटों को लागू करने के लिए उचित और भेदभाव रहित शर्तों के अंतर्गत आवश्यक रूप से कार्यान्वित करना पड़ता है। इन शर्तों की बैठक के अलावा, कंपनियों को पेटेंट रॉयल्टी मुक्त उपलब्ध कराने पर सहमति जताई गयी है।
बहरहाल, यह. NET फ्रेमवर्क का हिस्सा नहीं है, जो ईसीएमए (ECMA)/ आईएसओ (ISO) मानक द्वारा कवर नहीं है, इसमें विण्डोज़ फोर्म्ज़ (Windows Forms), ADO.NET, ASP.NET भी शामिल है। पेटेंट की माइक्रोसॉफ्ट धारण के क्षेत्रों में गैर-रोक ढांचे के माइक्रोसॉफ्ट (Microsoft) कार्यान्वयन हो सकते हैं।
3 अक्टूबर 2007 को, माइक्रोसॉफ्ट (Microsoft) ने घोषणा की कि.NET फ्रेमवर्क (.NET Framework) बेस कक्षा लाइब्रेरी के लिए 0}साझा स्रोत माइक्रोसॉफ्ट (Microsoft) संदर्भ लाइसेंस के तहत 2007 के अंत स्रोत कोड (ASP.NET, ADO.NET और विण्डोज़ (Windows) प्रस्तुति फाउंडेशन) कि जगह दृश्य 2008 स्टूडियो के अंतिम रिलीज के साथ उपलब्ध कराया जा रहा है। भविष्य के रिलीज में विंडोज संचार फाउंडेशन (डबल्यू सी एफ (WCF)) सहित अन्य पुस्तकालयों के लिए स्रोत कोड, विण्डोज़ (Windows) कार्यप्रवाह फाउंडेशन (डबल्यू एफ (WF)) और भाषा समन्वित क्वेरी (एलआईएनक्यू (LINQ)) शामिल हो गए॰ माइक्रोसॉफ्ट (Microsoft) संदर्भ लाइसेंस का गैर ओपन स्रोत होने के नाते इस स्रोत कोड का उद्देश्य है केवल डिबगिंग, जो मुख्य रूप से बी सी एल (BCL) के दृश्य स्टूडियो में बीसीएल के एकीकृत डिबगिंग का समर्थन करने के लिए उपलब्ध है।

संस्करण

1990 के दशक के उत्तरार्ध में माइक्रोसॉफ्ट (Microsoft) ने .NET फ्रेमवर्क (.NET Framework) के विकास के लिए मूल रूप से अगली पीढ़ी विण्डोज़ (Windows) सेवा (एन जी डबल्यू एस (NGWS)) शुरू की। 2000 के अंत में .NET 1.0 का बीटा संस्करण जारी किए गए॰
(| वर्ग= विकीटेबल ("wikitable")!संस्करणसंस्करण संख्या!रिलीज़ दिनांक!दृश्य स्टूडियो!विंडोज में डिफ़ॉल्ट
|-
| 1.0 | | 1.0.3705.0 | | 2002/02/13 | | दृश्य स्टूडियो |.NET|
| --
| 1.1 | | 1.1.4322.573 | | 2003/04/24 | | दृश्य स्टूडियो .NET 2003 | | विण्डोज़ सर्वर (Windows Server) 2003
| --
| 2.0 | | 2.0.50727.42 | | 2005/11/07 | | दृश्य स्टूडियो | 2005 |
| --
| 3.0 | | 3.0.4506.30 | | 2006/11/06 | | | | Windows Vista (विण्डोज़ विस्ता) Windows Server (विण्डोज़ सर्वर) 2008
| --
| 3.5 | | 3.5.21022.8 | | 2007/11/19 | | दृश्य स्टूडियो | 2008 | 7 Windows (विण्डोज़) Windows Server (विण्डोज़ सर्वर) 2008 आर2 (r2)
| --
| 4 बीटा 2 | | | | 2009/10/19 | | दृश्य स्टूडियो 2010 | |
|)
.NET फ्रेमवर्क (.NET Framework) की रिलीज की एक और पूरी .NET फ्रेमवर्क (.NET Framework) संस्करण की सूची पर पाया जा सकता है।

.NET फ्रेमवर्क 1.0(.NET Framework 1.0)

यह .NET फ्रेमवर्क (.NET Framework) की पहली रिलीज है जो 13 फ़रवरी 2002 को जारी की गयी और विण्डोज़ 98 (Windows 98), मी (Me), एन टी (NT) 4.0, 2000 और एक्स पी (XP) के लिए उपलब्ध है। मुख्यधारा के इस संस्करण के लिए समर्थन माइक्रोसॉफ्ट (Microsoft) द्वारा 10 जुलाई 2009 में समाप्त हो गया था और विस्तारित समर्थन को 14 जुलाई 2009 को समाप्त किया गया।

.NET फ्रेमवर्क (.NET Framework) 1.1

यह पहली बड़ी .NET फ्रेमवर्क (.NET Framework) उन्नयन है। यह एक रीडिसट्रीब्युटिद पैकेज या एक सॉफ्टवेयर विकास किट के रूप में अपने आप पर उपलब्ध है और 3 अप्रैल 2003 को प्रकाशित हुआ था। यह माइक्रोसॉफ्ट (Microsoft) दृश्य स्टूडियो . NET के दूसरे रिलीज़ का हिस्सा भी है (दृश्य. NET 2003 स्टूडियो के रूप में जारी). यह.NET फ्रेमवर्क (.NET Framework) का पहला संस्करण है जिसे विंडोज़ ऑपरेटिंग सिस्टम के भाग के रूप में विण्डोज़ सर्वर (Windows Server) 2003 के शिपिंग के साथ शामिल किया जाएगा। मुख्य धारा के लिए। NET फ्रेमवर्क (.NET Framework) 1.1 का समर्थन अक्टूबर 14, 2008 को समाप्त हुए और विस्तारित समर्थन 8 अक्टूबर 2013 को समाप्त होना है। चूँकि .NET 1.1 विण्डोज़ सर्वर (Windows Server) 2003, के एक घटक है, इसका विस्तृत समर्थन NET 1.1 के लिए 2003 सर्वर पर बढ़ाया गया है जो वर्तमान में 14 जुलाई 2015 तक है।

.NET फ्रेमवर्क (.NET Framework) 3.5

.NET फ्रेमवर्क (.NET Framework) 3.5 का संस्करण 19 नवम्बर 2007 को जारी किया गया था, लेकिन इसमें विण्डोज़ सर्वर 2008 (Windows Server 2008) शामिल नहीं है। .NET फ्रेमवर्क (.NET Framework) 3.0 के साथ, 3.5 संस्करण 2.0 संस्करण के सीएलआर (CLR) के रूप में उपयोग करता है। इसका मतलब यह पूरी तरह से नया ढांचा नहीं है, लेकिन सिर्फ 2.0 का ही विस्तार है और वह उसके बिना नहीं चल सकता। इसके अलावा, यह .NET फ्रेमवर्क 2.0 एसपी1 (.NET Framework 2.0 SP1) (.NET फ्रेमवर्क (.NET Framework) 3.5 एसपी1 के साथ 2.0 एसपी2 संस्थापित करता है) और .NET फ्रेमवर्क 3.0 एसपी1 (.NET Framework 3.0 SP1) (.NET फ्रेमवर्क (.NET Framework) 3.0 3.5 एसपी1 के साथ एसपी2) स्थापित करता है, जिसमें संस्करण 2.0 के कुछ तरीकों और बीसीएल वर्गों के गुण हैं, जो ऐसी भाषा समन्वित क्वेरी (एलआईएनक्यू (LINQ)) के रूप में संस्करण 3.5 सुविधा के लिए आवश्यक हैं। हालाँकि इन परिवर्तनों से संस्करण 2.0 के लिए लिखित आवेदन प्रभावित नहीं होते.
पिछले संस्करणों के रूप में, एक नया .NET कम्पैक्ट फ्रेमवर्क 3.5 संगठनों ने मिलकर इस अद्यतन के साथ जारी किया गया ताकि विंडोज़ मोबाइल और विण्डोज़ (Windows) पर अतिरिक्त सुविधाओं के लिए सहायता प्रदान करने के लिए सीई (CE) एंबेडेड उपकरणों के साथ समर्थन दिया जा सके।
बेस कक्षा पुस्तकालय के इस संस्करण में स्रोत कोड आंशिक रूप से (केवल डिबगिंग के लिए) माइक्रोसॉफ्ट (Microsoft) संदर्भ स्रोत लाइसेंस के अंतर्गत जारी किए गए हैं।

सर्विस पैक 1

.NET फ्रेमवर्क (.NET Framework) 3.5 Service Pack 1 11 अगस्त 2008 को जारी की गई। इस रिलीज में नयी कार्यशीलता और कुछ शर्तों के अधीन कार्य निष्पादन में सुधार, प्रदान किया जाता है खासकर डबल्यूपीएफ (WPF) के साथ जहां 20-45% सुधार की संभावना है। दो नए आंकड़ों का सेवा घटक जोड़ा गया है, ADO.NET इकाई की रूपरेखा और ADO.NET डेटा सेवाएँ. दो वेब विकास, प्रणाली के लिए नए असेंबली.वेब [Web].अमूर्त और सिस्टम.वेब [Web].अनुमार्गण, जोड़ दिया गया है; और ASP.NET एमवीसी (MVC) फ्रेमवर्क में इस्तेमाल किया जाता है और कथित तौर पर ASP.NET आवेदन फार्मों के भविष्य के रिलीज में उपयोग किया जाएगा। सर्विस पैक 1 एसक्यूएल सर्वर 2008 और दृश्य 2008 सर्विस पैक 1 स्टूडियो के साथ शामिल है। यह नियंत्रण का एक नया सेट फ़ीचर "दृश्य मूल पावर पैक" भी कहा जाता है जो दृश्य मूल नियंत्रण जैसे "पंक्ति" और "आकार" के रूप में वापस लाया गया है।

.NET फ्रेमवर्क (.NET Framework) 3.5 एसपी1 (SP1) ग्राहकों का प्रोफ़ाइल

.NET फ्रेमवर्क (.NET Framework) एसपी1 (SP1) के लिए वहाँ भी .NET फ्रेमवर्क (.NET Framework) का एक नया संस्करण है, "।NET फ्रेमवर्क (.NET Framework) ग्राहकों का प्रोफाइल" कहा जाता है, जिस पर 28 MB महत्त्वपूर्ण पूरे ढांचे से छोटा घटक है जो कि अधिकांश डेस्कटॉप अनुप्रयोग के लिए प्रासंगिक हैं। हालांकि, ग्राहक इस आकार के प्रोफाइल मात्रा तभी स्थापित कर सकते हैं यदि वे विण्डोज़ एक्सपी एसपी2 (Windows XP SP2) पर ऑनलाइन संस्थापक का इस्तेमाल कर रहे हैं और कोई दूसरी .NET व्यवस्थाएं स्थापित न हों. जब ऑफलाइन संस्थापक या किसी अन्य ऑपरेटिंग सिस्टम का प्रयोग किया जा रहा हो, तो डाउनलोड आकार अभी तक 250 एमबी है।