Posted on 20. February 2023

Оновлення .NET проектів за допомогою Visual Studio

Read this article in your language IT | EN | DE | ES

Оновлення .NET проектів за допомогою Visual Studio

 

Тепер ви можете оновити будь-яку .NET програму до останньої версії .NET прямо з Visual Studio! Ми раді представити його як розширення Visual Studio, яке дозволить оновити ваші веб- та десктопні додатки на базі .NET Framework або .NET Core. Деякі типи проектів знаходяться в розробці і будуть доступні найближчим часом, дивіться деталі нижче.

 

Навіщо оновлюватись і до якої версії?

 

Якщо ваші програми розроблені на .NET Framework або .NET Core, зараз чудовий час оновити їх до .NET 6 (версія з довгостроковою підтримкою) або .NET 7 (версія зі стандартною підтримкою), які мають набагато кращу продуктивність і надають доступ до найновіших функцій та можливостей. Між .NET Framework та останньою версією .NET відбулися величезні покращення, але навіть якщо ви використовуєте .NET Core 3.1 або більш ранню версію, її підтримка закінчується в грудні 2022 року.

 

The author recommends porting to .NET 6 or .NET 7!

 

Між цими двома версіями .NET 6 має довший час підтримки, а .NET 7 є найновішою, тому має новіші функції. Ми випускаємо нову версію .NET щороку в листопаді, і кожна парна версія підтримується протягом 3 років (довгострокова підтримка, або скорочено LTS). Таким чином, ви можете або залишатися на найновіших передових технологіях і оновлюватись щороку, або переходити з LTS на LTS раз на 2-3 роки.

 

Про Upgrade Assistant

 

Оновлення додатку, особливо з .NET Framework, було складним процесом. Команда продовжує створювати прототипи та вдосконалюватися в цій галузі, щоб спростити оновлення. У минулому ви могли використовувати інструмент Upgrade Assistant CLI або Microsoft Project Migrations. Ваші відгуки було зібрано, велика подяка всім, хто заповнив опитування або залишив коментарі, створив проблеми і запити функцій! Враховуючи ваші відгуки, команда дійшла висновку, що необхідно забезпечити уніфікований досвід оновлення для всіх типів проектів у Visual Studio.

 

Тепер ви зможете оновити будь-який тип .NET-додатків з будь-якої початкової версії (.NET Framework або .NET Core), клацнувши правою кнопкою миші на вашому проекті в Solution Explorer і вибравши "Оновити". Не забудьте спочатку встановити розширення.


Загальна філософія Upgrade Assistant полягає в тому, що він подбає про механіку, але залежно від того, з якого фреймворку і типу проекту ви оновлюєтесь, вам слід очікувати, що вам доведеться виконати деяку ручну пост-обробку. Хоча команда намагається автоматично виправляти зміни, що порушують роботу фреймворку, він не може виявити і виправити всі з них. Тому вам може знадобитися внести деякі додаткові зміни, щоб змусити код компілюватися, а також ретельно протестувати, щоб переконатися, що ваш код продовжує працювати належним чином.

 

Підтримувані типи програм

Ми прагнемо підтримувати кожен тип .NET проектів. Крім того, ми розглядаємо цей інструмент не лише як одноразове оновлення з .NET Framework до .NET 6/7, але й як спосіб оновити ваш додаток до найновішої версії .NET у майбутньому. Окрім зміни цільової версії фреймворку, інструмент зможе модифікувати ваш код, щоб виправити непрацюючі зміни. Це наші плани на майбутнє, а наразі ось що підтримується інструментом в останній версії:


ASP.NET

Class libraries

Console

WPF

WinForms

 

Ці робочі навантаження є паритетними з інструментом Upgrade Assistant CLI.



Незабаром: 

Міграція з Xamarin на .NET MAUI

Міграція з UWP на WinUI

Міграція WCF на WCF Core


Ці типи міграції знаходяться в розробці, і ви вже можете оновити ці проекти, але у команди ще немає виправлень коду для цих проектів. Якщо вам потрібно перенести ці типи проектів сьогодні, рекомендовано скористатися наявним інструментом командного рядка Upgrade Assistant, який вже має виправлення коду. Розширення Visual Studio також незабаром отримає їх.


Різні типи оновлень

Помічник з оновлення підтримує 3 типи оновлень. Різні типи рекомендуються для різних типів проектів, тому ви побачите лише ті варіанти, які підійдуть для вашого додатку.

In-place. У цьому випадку ваш оригінальний проект буде оновлений одразу. Якщо ви використовуєте контроль вихідних текстів і віддаєте перевагу самостійному управлінню копіями, наприклад, за допомогою гілок, цей варіант для вас.

Side-by-side. За допомогою цієї опції ваш оригінальний проект не буде змінено, а до рішення буде додано його копію, яка міститиме оновлений код. Цей тип може бути зручним, якщо ваш додаток має багато залежностей, які можуть бути порушені після оновлення. Таким чином ви можете відстежувати прогрес і не турбуватися про те, що додаток не збирається.

Side-by-side incremental. Це ідеальний вибір для веб-додатків. Оновлення з ASP.NET на ASP.NET Core вимагає багато роботи, а іноді і ручного рефакторингу (тому що ці дві технології дуже відрізняються). Бібліотеки класів часто використовуються разом з веб-додатками, тому ми надаємо такий тип оновлення і для бібліотек класів. Інкрементне оновлення розмістить проект .NET 6/7 поруч з вашим існуючим проектом .NET Framework і спрямує туди кінцеві точки, які реалізовані в проекті .NET 6/7, в той час як всі інші виклики будуть надсилатися до додатку .NET Framework. Таким чином, ви можете поєднати оновлення з розробкою нових функцій і перенести елементи на .NET 6/7 один за одним, не порушуючи роботу вашого додатку. Цей підхід був спочатку реалізований в інструменті Microsoft Project Migrations, ви можете розглядати Upgrade Assistant у Visual Studio як нову покращену і розширену версію Microsoft Project Migrations. Оновлення з .NET Core або .NET 5 до .NET 6/7 набагато простіше, ніж з .NET Framework, тому для таких випадків рекомендується використовувати опцію In-place.

 

У таблиці нижче ви можете знайти статус усіх типів оновлень за типами проектів.


In-place

Side-by-side

Side-by-side incremental

ASP.NET from .NET Framework

N/A

N/A

supported

ASP.NET from .NET Core, .NET5+

supported

N/A

N/A

WinForms from .NET Framework

supported

supported

N/A

WinForms from .NET Core, .NET5+

supported

N/A

N/A

WPF from .NET Framework

supported

supported

N/A

WPF from .NET Core, .NET5+

supported

N/A

N/A

Class Library from .NET Framework

supported

supported

supported

Class Library from .NET Core, .NET5+

supported

N/A

N/A

Console from .NET Framework

supported

supported

N/A

Console from .NET Core, .NET5+

supported

N/A

N/A

Xamarin to MAUI

in development

in development

N/A

MAUI from older versions

in development

N/A

N/A

UWP to WinUI

in development

in development

N/A

WinUI from older versions

in development

N/A

N/A

Azure Functions

in development

N/A

N/A

WCF to WCF Core

in development

N/A

N/A


Покрокове оновлення

1. Встановіть розширення Upgrade Assistant Visual Studio.

2. У Visual Studio в Solution Explorer натисніть правою кнопкою миші на проекті, який ви хочете оновити, і виберіть Upgrade.

3. Ви побачите головну сторінку з кількома варіантами оновлення.

Який варіант вибрати, описано в різних типах оновлень.

4. Для цього прикладу я обираю In-place. Side-by-side буде дуже схожим з кількома додатковими кроками. Додаткові можливості side-by-side incremental описані в попередньому пості в блозі.

 

5. Потім вам потрібно вибрати фреймворк, на який ви хочете перейти. Інструмент запропонує лише ті варіанти, які мають сенс для вашого типу проекту. У моєму прикладі це бібліотека класів .NET Framework, тому він також запропонує .NET Standard.

Всі оновлення є прямими, тобто якщо ваш проект, наприклад, вже працює на .NET 6, буде запропоновано лише .NET 7 і новіші версії. Якщо на вашому комп'ютері не встановлено обраний SDK, вам буде запропоновано встановити його на наступному кроці. Просто перейдіть за посиланням і поверніться до оновлення після встановлення SDK. .NET Standard пропонується лише для бібліотек класів, які були орієнтовані на .NET Framework.

6. Настав час вибрати компоненти, які ви хочете оновити. Зрештою, вам потрібно буде оновити все, але якщо ви віддаєте перевагу поетапному оновленню, на цьому екрані ви можете вибрати, з чого ви хочете почати.

7. Після натискання кнопки Upgrade selection ви побачите хід оновлення і звіт після його завершення.

 

Підсумок

Тепер ви можете оновлювати свої .NET проекти прямо з Visual Studio.


Source



Exception: Stack empty.

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading