Home » Обновите Optimizely CMS с версии 11 до версии 12

Обновите Optimizely CMS с версии 11 до версии 12

Зачем обновлять?

В версии 12 реализовано множество улучшений, но самое главное — вся платформа перенесена с .Net Framework 4 на .NET 6.

Обновление также содержит значительные улучшения безопасности, производительности и автономного управления, в то время как API-интерфейсы платформы Optimizely остаются прежними, поэтому существующий код не будет ломаться, и не требуется миграции БД, за исключением пользовательских таблиц, которые необходимо перенести из схемы идентификации AspNet в OpenId.

Поскольку теперь он является родным для .Net Core, это также означает, что он не зависит от ОС и может размещаться на платформах, отличных от Windows, например, на Linux.

Как обновить?

Предлагаемый способ — использовать Optimizely Upgrade Assistant, который создаст резервную копию текущего решения и обновит проект до желаемой версии .NET Core. Помощник также попытается перенести серверный код и представления, но к этому следует относиться с осторожностью. Разработчику необходимо вручную выполнить миграцию с web.config на стиль настроек appsettings.json, миграцию с global.asax на start.cs, миграцию с аутентификации OWIN и ASP.NET на аутентификацию OpenID, миграцию контроллеров блоков в компоненты, внедрение зависимостей, ведение журнала, Сериализация JSON и т. д.

Веб-формы больше не поддерживаются, а это означает, что MVC является предпочтительным способом отображения контента.

Обновление с .Net Framework 4 до .NET 6 означает, что некоторые из используемых пакетов NuGet больше не совместимы и их необходимо либо обновить до версий .Net Core (и надеяться, что у них есть совместимые API), либо заменить их другими пакетами или даже переписать. некоторые функциональные возможности. Это невозможно предсказать, поскольку каждое решение индивидуально и должно быть тщательно проанализировано, прежде чем давать какие-либо оценки.

Самое главное, прежде чем предпринимать какие-либо действия, сделайте резервные копии решения и базы данных. Подготовьте новую среду для тестирования обновленного решения, где можно будет проверить все функциональные возможности перед заменой старого решения.

Read more:  Ожидается, что Китай примет участие в британском саммите по искусственному интеллекту в следующем месяце

Пошаговое руководство

Я протестировал Optimizely Upgrade Assistant на простом проекте с несколькими типами страниц и блоками.

Первый шаг — установить Assistant с помощью инструмента .NET CLI, выполнив команду из командной строки:

dotnet tool install -g upgrade-assistant

При этом будет установлен помощник по обновлению Microsoft с .Net Framework на .NET Core.

Второй шаг — загрузить расширение Optimizely с Upgrade Assistant GitHub: https://github.com/episerver/upgrade-assistant-extensions/releases

Распакуйте файлы во временную папку, например: C:TempEPi.Source.Updater.1.0.33.

Затем запустите команду для обновления запускаемого проекта:

upgrade-assistant upgrade {projectName}.csproj --extension C:TempEPi.Source.Updater.1.0.33 --ignore-unsupported-features

После завершения процедуры обновления у вас возникнет множество проблем с зависимостями (как старые пакеты Episerver, так и новые), нерешенные проблемы с кодом, проект не структурирован в соответствии со стандартами .Net Core (нет папки wwwroot, статические файлы все еще находятся в проекте). root), Program.cs и Startup.cs нуждаются в корректировке, код из Global.asax.cs не перенесен…

Итак, для такого небольшого проекта предстоит проделать большую работу. В качестве альтернативы, вместо запуска помощника по обновлению, я бы начал с создания нового решения с пустым проектом Optimizely CMS на основе .NET 6 (с использованием шаблона проекта Optimizely Visual Studio). Затем постепенно перенесите код из старого решения в новое. Скопируйте статические файлы в папку wwwroot, скопируйте внутренние файлы. Установите отсутствующие пакеты NuGet, но с их версиями .Net Core. Некоторые пакеты будут иметь разные API, поэтому вам придется обновить сигнатуры методов или даже полностью переписать некоторые части кода, если метод больше не поддерживается.

Имейте в виду, что .Net Core имеет другой механизм внедрения зависимостей, ведение журнала, фильтры исключений, обработку JSON, контроллеры блоков теперь являются компонентами и т. д.

Для этого процесса не существует волшебной палочки, и его необходимо выполнять вручную. В конце, после успешной сборки проекта, перенесите пользователей БД с помощью скрипта, расположенного в папке EPi.Source.Updater.1.0.33.

Read more:  Отпразднуйте день драфта с помощью этих лучших товаров: от товаров до декора и многого другого

Должен ли я обновиться?

Это решение необходимо принять, ответив на несколько вопросов:

  • Планирую ли я дальнейшее развитие текущего решения? Если да, то вам следует рассмотреть возможность обновления
  • удовлетворен ли я производительностью текущего решения? Если нет, то вам следует рассмотреть возможность обновления
  • принесут ли инвестиции в модернизацию значительную ценность компании? Если да, то вам следует рассмотреть возможность обновления

Рекомендации

https://learn.microsoft.com/en-us/aspnet/core/migration/proper-to-2x/?view=aspnetcore-6.0

https://github.com/episerver/upgrade-assistant-extensions

https://docs.developers.optimizely.com/content-management-system/docs/upgrading-to-content-cloud-cms-12

https://docs.developers.optimizely.com/content-management-system/docs/upgrade-assistant

https://world.optimizely.com/resources/videos/video/?vid=300437

https://www.youtube.com/watch?v=Fvys7G2Vdvc

13 мая 2024 г.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.