4 पॉइंट द्वारा dimohy 2023-01-08 | 5 टिप्पणियां | WhatsApp पर शेयर करें
  • .NET AOT क्या है?
  • Native AOT डिप्लॉयमेंट

.NET 7 अब console application के रूप में Windows, Linux और macOS पर .NET runtime के बिना लगभग 2MB आकार का छोटा native code बना सकता है, और इसे बिना dependencies के चलाया जा सकता है।

5 टिप्पणियां

 
dimohy 2023-10-12

.NET 7 में सपोर्ट न किए गए macOS को .NET 8 में आधिकारिक रूप से सपोर्ट किया जाएगा.
https://learn.microsoft.com/en-us/dotnet/…

 
kunggom 2023-01-08

Microsoft के आधिकारिक दस्तावेज़ों को देखें तो, इस फीचर में पहले से native compile करने से आने वाली मूलभूत सीमाओं के अलावा, development के शुरुआती चरण में होने के कारण कुछ अतिरिक्त सीमाएँ भी हैं। अभी यह ASP.NET Core apps पर लागू नहीं होता, library स्तर पर support की ज़रूरत है, और debugging या profiling में भी अभी सीमाएँ हैं। अतिरिक्त रूप से, CPU architecture केवल x64 और ARM64 को support करता है, इसलिए 32-bit Windows के लिए app नहीं बनाया जा सकता। और एक उल्लेखनीय बात यह है कि इस फीचर के जरिए ऐसे static libraries बनाई जा सकती हैं जिन्हें non-.NET apps में भी इस्तेमाल किया जा सके.

MS ने .NET 7 की घोषणा करते समय इसे "cloud-native apps के लिए" platform कहा था। इसके लिए app को Docker container के रूप में deploy करने की सुविधा भी जोड़ी गई। मुझे लगता है कि AOT support भी ऐसे containerized apps की image size और startup time को optimize करने के लिए जोड़ा गया एक tool है। लेकिन ASP.NET Core के लिए support अभी भी काम में है, इसलिए cloud-native apps में यह फीचर वास्तव में असर दिखाए, उसमें अभी थोड़ा समय लगेगा।

संदर्भ:

 
dimohy 2023-01-08

आपके विनम्र उत्तर के लिए धन्यवाद।

Console application अब preview चरण से आगे बढ़कर आधिकारिक release चरण में है, इसलिए इससे वास्तविक application विकसित किए जा सकते हैं।

जैसा आपने कहा, यह अभी शुरुआती चरण में है, इसलिए ASP.NET Core, WPF, Windows Form या WinUI का support अभी नहीं है।

इसके अलावा, Docker container के रूप में deploy करने की जरूरतों के लिए भी यह उपयुक्त नहीं है। क्योंकि यह अभी ASP.NET Core को support नहीं करता।

इसी तरह, जैसा आपने कहा, यह native code में compile होता है, इसलिए Reflector की अधिकांश सुविधाएँ इस्तेमाल नहीं की जा सकतीं। यह हिस्सा शुरुआती चरण की सीमा से अधिक, IL code और native code की अलग विशेषताओं के कारण लगता है।

मौजूदा NativeAOT का मतलब शायद यह है कि Windows, Linux और macOS पर dependency-रहित शुद्ध native code को console application स्तर पर बहुत अच्छी तरह deploy किया जा सकता है।

 
kunggom 2023-01-09

macOS नहीं है। जैसा कि मैंने लिंक किए गए Microsoft Learn दस्तावेज़ में दिखाया है, फिलहाल इस फीचर के समर्थित प्लेटफ़ॉर्म सिर्फ Windows और Linux हैं। macOS शायद बाद में जोड़ा जाएगा.
समय के साथ यह समस्या हल हो जाएगी, लेकिन मुझे लगता है कि अभी भी कई मामलों में इस फीचर को प्रोडक्शन में इस्तेमाल करना मुश्किल होगा।

 
dimohy 2023-01-09

हाँ, यह सही है कि macOS अभी तक समर्थित नहीं है।