|
|
Опубликовано 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 для создания долгосрочных сервисов.
- Создаются новые счетчики событий для запросов в секунду, общего, текущего и неудачного количества запросов.
- Ошибки запуска, размещённые в IIS, теперь фиксируются в журнале событий Windows.
- Запросить интеграцию по конвейеру System.IO.Pipelines.
- Улучшения производительности по всему технологическому стеку.
Давайте создадим новый консольный проект для .NET Core 3.0 с VS 2019, как показано на рисунке ниже:
Ссылаясь на пакет Newtonsoft.Json, напишите несколько строк кода следующим образом:
Мы кликаем правой кнопкой мыши по VS Regenerate, затем открываем папку проекта и обнаруживаем, что будет сгенерировано несколько файлов, включая :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, код выглядит следующим образом:
Затем кликните правой кнопкой мыши и нажмите кнопку «Опубликовать».
Ссылки на сборку
SDK .NET core 3.0 поставляется с инструментом, который может уменьшить размер вашего приложения, анализируя IL и обрезая неиспользуемые сборки.
Автономные приложения включают всё необходимое для запуска кода без установки .NET на основной компьютер. Однако часто приложению требуется лишь часть фреймворка для работы, и другие неиспользуемые библиотеки можно удалить.
Теперь в .NET Core есть настройка, которая сканирует IL приложения с помощью инструмента IL linker. Этот инструмент определяет, какой код требуется, и затем вырезает неиспользуемые библиотеки. Этот инструмент может значительно уменьшить размер развертывания некоторых приложений.
Чтобы включить этот инструмент, используйте <PublishTrimmed> настройки в вашем проекте и опубликуйте самостоятельное приложение:
.NET Core CLI
Мы только что сгенерировали файл размером 66M, и после добавления конфигурации,Она достигла 35 метров, сократив заполняемость на 30 метров。
Обязательно рассмотрите приложения или фреймворки, использующие отражения или связанные динамические функции (включая ASP.NET Core и WPF).Обычно повреждается во время резки。 Это искажение происходит потому, что связующий не осознаёт этого динамического поведения и не может определить, какие типы кадров необходимы для отражения。 Инструмент IL linker можно настроить для выявления этой ситуации.
Самое главное — обязательно наносите её после резкиПроведите испытания。
(Конец)
|
Предыдущий:Решите проблему, что ajax не может присваивать значения внешним переменнымСледующий:Язык C настолько мощный, на каком языке он написан?
|