|
|
Опубліковано 2019-9-28 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, відкриваємо папку bin проєкту і бачимо, що буде згенеровано кілька файлів, включно з файлами :demo1.exe та Newtonsoft.Json.dll.
Опублікувати однофайлний виконуваний файл
Метод 1:
Виконайте наступну команду в каталозі проєкту:
Ми відкриваємо папку C:\Users\itsvse_pc\source\repos\demo1\demo1\bin\Debug\netcoreapp3.0\win10-x64 і бачимо, що згенеровано багато dll-файлів і є папка Pub.
Перейдіть у папку публікації,Розмір 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 така потужна, якою мовою вона написана?
|