Привет сообществу Stack Overflow!
В настоящее время я работаю над устаревшим приложением .NET и ищу рекомендации по оценке переносимости моего кода на последние версии .NET, в частности на .NET 8.0 и .NET 9.0. Я хочу гарантировать, что мое приложение сможет плавно перейти на новые платформы, сохраняя при этом совместимость.
Я просмотрел анализатор переносимости .Net, но не могу создать отчет о новейших целях .net, таких как 8.0 или 9.0.
Мы будем очень признательны за любые идеи, советы или опыт, которыми вы можете поделиться в отношении анализа устаревших приложений на предмет переносимости на последние версии .NET.
Спасибо заранее за вашу помощь!
Я работаю в компании, которая специализируется на модернизации старых устаревших приложений. Мы рассматриваем возможность модернизации старых версий .NET, таких как 3.0 или 4.0, до версии 8.0. Мы хотели посмотреть, существует ли какой-нибудь инструмент, который может проанализировать такие сравнения и создать подробный отчет.
если приложение C# и НЕ является проектом веб-форм, то инструмент миграции поможет, и изменения в коде будут очень небольшими. Если это приложение веб-форм, то вам придется переписать его в приложение MVC. Итак, преобразования приложения MVC и приложения С#? Тогда такая миграция довольно проста, поскольку большая часть кода .net в качестве платформы будет работать с небольшими изменениями, если они вообще будут, в качестве ядра .net. Однако, как уже отмечалось, здесь есть два исключения: это vb.net и проект веб-форм. Не существует автоматизированных инструментов для преобразования в MVC, и камнем преткновения являются WebForms в MVC.





Я не знаю такого инструмента, который создавал бы подробный отчет, который можно было бы использовать для определения пути обновления.
Анализатор переносимости .NET — это не тот инструмент, который вам нужен. Его нельзя использовать в VS 2022, а .NET 6+ работает только в VS 2022.
Преемник устаревшего анализатора переносимости .NET, который представляет собой двоичный анализ NET Upgrade Assistant (предварительная версия), по-прежнему не создает отчет о необходимых изменениях кода, необходимых для обновления версий .NET.
ССЫЛКА: https://learn.microsoft.com/en-us/dotnet/standard/analyzers/portability-analyzer
Порт API устарел в пользу двоичного анализа с помощью помощника по обновлению .NET. Серверная служба API Port отключена, поэтому для использования инструмента необходимо использовать его в автономном режиме. Дополнительные сведения см. в разделе README порта API .NET.
ССЫЛКА: https://github.com/dotnet/upgrade-assistant/blob/main/docs/binary_anaанализ.md
Функция двоичного анализа (analyzebinaries) Upgrade Assistant позволяет вам определить, можно ли обновить двоичный файл, исходный код которого у вас может быть или не быть, до целевой платформы и комбинации целевой платформы по вашему выбору.
Следующие рекомендации основаны на моем опыте работы с ASP.NET. Я вообще не знаком с обновлением настольных или мобильных приложений.
На мой взгляд, два лучших маршрута:
ССЫЛКА: https://learn.microsoft.com/en-us/aspnet/core/migration/proper-to-2x/?view=aspnetcore-8.0
Что сработало для меня в прошлом:
Переход с .NET 5+ на мой взгляд вполне номинален, если только вам не нужно воспользоваться преимуществами новых возможностей языка.
Определите здесь для меня «наследие». Это наследие из-за версии .NET? Или поведение приложения является устаревшим, поскольку ему нужны новые функции, которые лучше всего создать в последней версии .NET 8+? Я спрашиваю, потому что .NET Framework 4.8 никуда не денется и будет поддерживаться еще долгое время. Если вам просто нужно «обновиться», оно того не стоит. Если вам нужны новые функции, можете ли вы реализовать их в отдельном приложении .NET 8+? В последнем вам может помочь инструмент .NET Upgrade Assistant.