NET Native - какво означава за Visual Developers на Universal Windows Platform (UWP)
Какво е .NET Native?
Как .NET Native ще повлияе на мен и моето приложение?
Конкретните показатели могат да варират, но в повечето случаи приложението ви ще се стартира по-бързо, ще работи по-бързо и ще консумира по-малко системни ресурси.
- До 60% по-бърза скорост на студен старт
- До 40% по-бърза скорост на горещ старт
- Намален разход на памет при компилиране към машинен код
- Няма зависимост от .NET Runtime на работния плот по време на инсталирането
Тъй като вашето приложение е компилирано в машинен код, ще получите повишаване на производителността, свързано със скоростта на изпълнение на родния код (близо до производителността на C ++). Като се има предвид това, все още можете да се възползвате от индустриалните програмни езици C # или VB и свързаните с тях инструменти.
Можете също така да продължите да използвате пълната мощ на програмния модел, наличен в .NET, с богат набор от API за описване на бизнес логика и с вградени механизми за управление на паметта и обработка на изключения.
С други думи, получавате най-доброто от двата свята: управлявано развитие с почти C ++ производителност. Не е ли прекрасно?
Разлики в настройките за компилация при отстраняване на грешки и издание
Компилирането в .NET Native е сложен процес, обикновено по-бавен от класическото компилиране в .NET. Предимствата, споменати по-горе, идват с цената на времето за компилация. Можете да изберете да компилирате родно всеки път, когато стартирате приложението си, но това ще загуби повече време в очакване компилацията да завърши. Инструментите на Visual Studio могат да ви помогнат да управлявате това по-добре, като изгладите възможно най-много опита за разработка.
Когато изграждате проект и го стартирате в режим за отстраняване на грешки, вие изпълнявате IL код върху CoreCLR, пакетиран във вашето приложение. .NET системните сглобки се добавят към кода на вашето приложение и вашето приложение зачита зависимостта от пакета Microsoft.NET.CoreRuntime (CoreCLR).
Това означава, че получавате възможно най-добрия опит за разработка: бърза компилация и внедряване, мощно отстраняване на грешки и диагностика и всички други инструменти, с които сте свикнали, когато се разработвате с .NET работа.
Когато превключите в режим на освобождаване, по подразбиране вашето приложение започва да използва .NET Native build chain. Тъй като пакетът се компилира в собствен код, вече не се изисква пакетът да съдържа .NET рамковите библиотеки. В допълнение, сега пакетът зависи от последната версия на .NET Native среда, за разлика от пакета CoreCLR. Вграденото изпълнение на .NET на устройството винаги ще бъде съвместимо с вашия пакет приложения.
Локалната компилация с конфигурация на версия ви позволява да тествате приложението в среда, близка до това, което ще има крайният потребител. Важно е редовно да тествате в този режим, докато се развивате.
Едно добро правило е да тествате приложението си по този начин през целия процес на разработка, за да сте сигурни, че ще намерите и отстраните проблеми навреме, които могат да възникнат при компилирането с .NET Native. В повечето случаи не би трябвало да има проблеми, но знаем за няколко неща, които не работят много добре с .NET Native. Например масиви с размери, по-големи от четири. В крайна сметка вашите потребители ще получат .NET Native версия на вашето приложение, така че е добре да проверите дали всичко работи добре, преди приложението да бъде доставено.
Освен че е добре да тествате в режим на компилация, можете също да забележите, че конфигурацията за изграждане на AnyCPU е изчезнала. С появата на .NET Native, конфигурацията на AnyCPU вече няма смисъл, тъй като компилацията на родния компютър зависи от архитектурата. Допълнително значение на това е, че когато пакетирате приложението си, трябва да изберете и трите конфигурации на архитектурата (x86, x64 и ARM), за да сте сигурни, че приложението ви ще работи на възможно най-много устройства. Все пак това е универсална платформа за Windows! По подразбиране Visual Studio е конфигуриран да изгражда точно както е показано на моментната снимка по-долу.