|
|
Публикувано на 28.09.2019 16:38:47
|
|
|
|

Преди няколко дни Microsoft пусна .NET Core 3.0, а едно от най-големите подобрения е поддръжката на Windows десктоп приложения (само за Windows). Чрез използване на .NET Core 3.0 SDK Windows Desktop Component можете да пренесете Windows Forms и Windows Presentation Foundation (WPF) приложения. За яснота, Windows десктоп компонентите се поддържат и са включени само в Windows.
SDK адрес за изтегляне:Входът към хиперлинк е видим.
Връзки за въвеждане на функции на .NET Core:
Входът към хиперлинк е видим.
Входът към хиперлинк е видим.
Функциите включват следното:
- Използвайте C#, за да създавате богати, интерактивни клиентски уеб приложения.
- Използвайте gRPC за създаване на високопроизводителни бекенд услуги.
- SignalR вече поддържа автоматично повторно свързване и клиент-сървър потоци.
- Използвайте документация на OpenAPI за генериране на силно типизиран клиентски код за уеб API-та.
- Маршрутизирането на крайните точки е интегрирано чрез рамката.
- Kestrel по подразбиране има активиран HTTP/2.
- Интегриран уеб API и поддръжка за удостоверяване на едностранични приложения.
- Поддържат се сертификати и Kerberos удостоверяване.
- Интегрирайте новия сериализатор System.Text.Json.
- Новият универсален хостинг създава общи управлявани услуги като инжектиране на зависимости, конфигурация и логване.
- Нов шаблон за Worker Service за изграждане на дългосрочни услуги.
- Създават се нови EventCounters за заявки в секунда, общо, текущи и неуспешни заявки.
- Грешките при стартиране, хоствани в IIS, вече се докладват в Windows Event Log.
- Заявка за интеграция на тръбопровода System.IO.Pipelines.
- Подобрения в производителността в целия технологичен стек.
Нека създадем нов проект за конзола .NET Core 3.0 с VS 2019, както е показано на фигурата по-долу:
Позовавайки се на пакета Newtonsoft.Json, напишете няколко реда код, както следва:
Кликваме с десен бутон върху VS Regenerate, след което отваряме bin директорията на проекта и откриваме, че ще бъдат генерирани няколко файла, включително :demo1.exe и Newtonsoft.Json.dll файла.
Публикуване на еднофайлов изпълним файл
Метод 1:
Изпълнете следната команда в директорията на проекта:
Отваряме папката C:\Users\itsvse_pc\source\repos\demo1\demo1\bin\Debug\netcoreapp3.0\win10-x64 и ще установим, че са генерирани много dll файлове и има папка за публикуване.
Отидете в папката за публикуване,Размерът на demo1.exe за гледане е 66M, което е същият размер като всички файлове извън папката, както е показано на фигурата по-долу:
Генерираният единичен изпълним файл всъщност съдържа средата, необходима за изпълнението на програмата, и не изисква целевият компютър да инсталира SDK, а недостатъкът е, че размерът на файла става много голям.
Метод 2:
С десен бутон срещу редактиране на проектния файл и добавяне на конфигурацията на възела PublishSingleFile, кодът е следният:
След това кликнете с десен бутон и натиснете бутона "Публикуване".
Връзки към асемблеята
.NET core 3.0 SDK идва с инструмент, който може да намали размера на приложението чрез анализ на IL и изрязване на неизползвани асембли.
Самостоятелните приложения включват всичко необходимо, за да стартирате код, без да се налага да инсталирате .NET на основния си компютър. Въпреки това, често приложението се нуждае само от част от фреймуърка, за да работи, а други неизползвани библиотеки могат да бъдат премахнати.
.NET Core вече включва настройка, която сканира IL на приложението чрез инструмента IL linker. Този инструмент ще открие кой код е необходим и след това ще изреже неизползваните библиотеки. Този инструмент може значително да намали размера на разгръщането на някои приложения.
За да активирате този инструмент, използвайте <PublishTrimmed> настройките във вашия проект и публикувайте самостоятелно приложение:
.NET Core CLI
Току-що генерирахме файл от 66M и след като добавихме конфигурацията,Той стана 35 метра, намалявайки заетостта от 30 милиона。
Не забравяйте да обмислите приложения или рамки, които използват отражения или свързани динамични функции (включително ASP.NET Core и WPF).Обикновено се поврежда по време на рязане。 Тази повреда се случва, защото линкерът не е наясно с това динамично поведение и не може да определи кои типове кадри са необходими за отражение。 IL линкер инструментът може да бъде конфигуриран, за да открива тази ситуация.
Най-важното е да го нанесеш след рязанетоПровеждане на тестове。
(Край)
|
Предишен:Решаване на проблема с ajax, който не може да присвоява стойности на външни променливиСледващ:Езикът C е толкова силен, на кой език е написан?
|