.NET 4.6 (जिसे पहले .NET 4.5.3 कहा जाता था) Microsoft का नवीनतम फ्रेमवर्क रिलीज़ है। यह .NET-4.5.2 का अनुसरण है, जो दोनों बुनियादी सुविधाओं (रोजलिन, एक सेवा के रूप में संकलक) और VB.net और C # दोनों के लिए नई भाषा सुविधाएँ लाता है।

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

.NET फ्रेमवर्क 4.6 पूर्वावलोकन में कई शानदार विशेषताएं हैं। नई WPF सुविधाओं से लेकर RyuJIT तक और साथ ही विजुअल स्टूडियो में उत्पादकता में वृद्धि हुई है:

.NET भाषा नवाचार

इस रिलीज़ में, कई नए C # और विज़ुअल बेसिक लैंग्वेज फीचर्स बॉयलरप्लेट को कम करने और रोजमर्रा के कोड में अव्यवस्था को कम करने में मदद करते हैं, प्रोग्रामिंग की एक अधिक घोषणात्मक शैली को प्रोत्साहित करते हैं, और दो भाषाओं को एक साथ करीब भी लाते हैं। नीचे सूचीबद्ध विशेषताएं अंतिम रिलीज में दोनों भाषाओं के लिए उपलब्ध होंगी। नीचे कुछ हाइलाइट्स साझा किए गए हैं। सभी विवरणों के लिए C # और VB टीम ब्लॉग चेकआउट करें।

  • तरीके, गटर-केवल गुण आदि अब उनके शरीर की तरह एक ही अभिव्यक्ति हो सकते हैं, जैसे लंबोदर।
  • Nameof उदासीनता प्रदान करता है-जैसे कि नाम प्राप्त करने का सुरक्षित तरीका। एक स्ट्रिंग के रूप में एक पैरामीटर, सदस्य या प्रकार।
  • ऑटो-प्रॉपर्टी में इनिशियलाइज़र हो सकते हैं और अब सेटर की आवश्यकता नहीं होगी।
  • इंडेक्स इनिशियलाइज़र एक ऑब्जेक्ट इनिशलाइज़र के अंदर अब आप नई ऑब्जेक्ट के एक विशिष्ट इंडेक्स को इनिशियलाइज़ कर सकते हैं। सी # ही।
  • अपवाद फ़िल्टर आपको एक अपवाद को देखते हैं और तय करते हैं कि इसे दिए गए कैच ब्लॉक के साथ पकड़ा जाए या नहीं।
  • अशक्त-सशर्त संचालकों का उपयोग करके आप सदस्यों और अनुक्रमणकों तक पहुँचने और आह्वान करते समय एक अंतर्निहित अशक्त जाँच प्राप्त कर सकते हैं।
  • स्टैटिक क्लासेस के लिए क्लॉस का उपयोग करने से उनके स्टैटिक सदस्यों को सीधे लाया जाता है दायरे में, इसलिए आप कर सकते हैं। जैसे कि WriteLine() या Sqrt() कॉल करें वर्ग नाम के साथ उपसर्ग।
  • अद्वैत अब कुछ बहुत ही पेचीदा कामों को अंजाम देते हुए कैच और आखिरकार ब्लॉक में काम करता है।
  • स्ट्रिंग इंटरपोलेशन: स्ट्रिंग इंटरपोलेशन स्ट्रिंग टेम्प्लेट्स का वर्णन करने का एक संक्षिप्त तरीका प्रदान करता है जो भावों को प्रारूप स्ट्रिंग्स (C # केवल पूर्वावलोकन में, VB और C # RTM पर) में सम्मिलित करता है।

WPF सुधार और रोडमैप

इस रिलीज़ में WPF के प्रमुख सुधार हैं:

  • पारदर्शी बाल खिड़कियां
  • मल्टी-इमेज कर्सर फाइलें
  • ब्लेंड अनुभव को फिर से डिजाइन किया
  • विजुअल डायग्नोस्टिक्स टूल्स का नया सेट
  • प्रदर्शन और डायग्नोस्टिक्स हब में टाइमलाइन टूल

विंडोज फॉर्म हाई डीपीआई

अधिक नियंत्रण शामिल करने के लिए Windows प्रपत्र उच्च DPI समर्थन को अद्यतन किया गया है। .NET फ्रेमवर्क 4.5.2 में उच्च डीपीआई नियंत्रणों के प्रारंभिक सेट का समर्थन शामिल है।

इस सुविधा को शामिल करने के लिए विस्तारित किया गया है: DataGridView, ComboBox, ToolStripComboBox, ToolStripMenuItem, Cursor, DomainUpDown, NumericUpDown, DataGridViewCombocColumn, DataGridViewColumn और ToolStripSplitButton प्रकार।

यह एक ऑप्ट-इन फीचर है। इसे सक्षम करने के लिए, एप्लिकेशन कॉन्फ़िगरेशन (app.config) फ़ाइल में सही EnableWindowsFormsHighDpiAutoResizing तत्व सेट करें:

<appSettings>
   <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
</appSettings>

नेक्स्ट जनरेशन JIT कंपाइलर - RyuJIT

इस रिलीज़ में RyuJIT का एक नया संस्करण, 64-बिट JIT कंपाइलर शामिल है। यह 64-बिट प्रक्रियाओं के लिए डिफ़ॉल्ट रूप से सक्षम है।

  • सुधार - हम RyuJIT को मान्य करने के लिए विभिन्न Microsoft क्लाउड वर्कलोड का उपयोग करके शुद्धता कीड़े को ठीक करने पर ध्यान केंद्रित कर रहे हैं। यह दृष्टिकोण अच्छी तरह से काम कर रहा है, क्योंकि Microsoft क्लाउड .NET का बहुत भारी उपयोगकर्ता है।
  • रियल-वर्ल्ड थ्रूपुट - बिंग टीम ने हाल ही में अपने कुछ खोज-संबंधी कार्यभार पर RyuJIT का उपयोग शुरू किया। अपने प्रारंभिक प्रयोगों के आधार पर, उन्होंने स्टार्टअप समय में 25% सुधार देखा है, जो एक महत्वपूर्ण जीत है।
  • SIMD में सुधार - हमने RyuJIT के साथ मिलकर SIMD .NET लाइब्रेरी बनाई, ताकि RyuJIT SIMD प्रकारों का अनुकूलन कर सके। हाल ही में, हम RyuJIT SIMD अनुकूलन में रजिस्टरों के हमारे उपयोग को देखते रहे हैं। सीपीयू रजिस्टर में बहुत तेजी से संख्याओं को क्रंच कर सकते हैं, क्योंकि वे सीपीयू पर प्रभावी रूप से मेमोरी हैं।

यद्यपि नए JIT संकलक को यथासंभव पारदर्शी बनाने का प्रयास किया जा सकता है, फिर भी संगतता समस्याएँ हो सकती हैं। यदि आपका आवेदन RyuJIT पर एक अवांछित व्यवहार पैदा करता है, तो आप RyuJIT को अक्षम करने का प्रयास कर सकते हैं, जो आपके अनुप्रयोग को पिछले JIT का उपयोग करके यह निर्धारित करने के लिए स्विच करता है कि क्या आप देख रहे हैं जो RyuJIT के कारण हैं।


सीएलआर प्रदर्शन में सुधार

असेंबली लोडर अब संबंधित NGEN छवि लोड होने के बाद IL असेंबलियों को लोड करके मेमोरी की अधिक दक्षता का उपयोग करता है। यह परिवर्तन 32-बिट ऐप्स (जैसे विज़ुअल स्टूडियो) के लिए वर्चुअल मेमोरी के लिए एक प्रमुख लाभ है और भौतिक मेमोरी को भी बचाता है।


DateTime को या यूनिक्स समय से परिवर्तित करने के लिए समर्थन

डेटाइम को या यूनिक्स समय से परिवर्तित करने के लिए नए तरीके जोड़े गए हैं। यह आवश्यक हो सकता है, उदाहरण के लिए, जब जावास्क्रिप्ट क्लाइंट और .NET सर्वर के बीच समय मान परिवर्तित करते हैं। निम्न API को DateTimeOffset में जोड़ा गया है।

static DateTimeOffset FromUnixTimeSeconds(long seconds)
static DateTimeOffset FromUnixTimeMilliseconds(long milliseconds)
long ToUnixTimeSeconds()
long ToUnixTimeMilliseconds()

ASP.NET मॉडल बंधन टास्क रिटर्निंग विधियों का समर्थन करता है

ASP.NET मॉडल बाइंडिंग विधियाँ जो पहले टास्क को लौटा रही थीं, समर्थित नहीं थीं और रनटाइम पर एक अपवाद फेंक दिया था। .NET फ्रेमवर्क 4.6 के साथ, यदि अनुप्रयोगों को ऐसे तरीकों से तैनात किया जाता है, तो इन विधियों को अब सही ढंग से निष्पादित किया जाएगा ।.0


प्रबंधित EventSource इंस्ट्रूमेंटेशन के लिए चैनल समर्थन

मशीन में बनाए गए किसी भी मौजूदा ETW सत्र के अलावा, आप महत्वपूर्ण Event या संचालन संदेशों को लॉग करने के लिए .NET EventSource इंस्ट्रूमेंटेशन का उपयोग कर सकते हैं।