Миграция проекта с ASP.NET Web Forms на Blazor
Нашёл такие ресурсы по миграции
Blazor for ASP.NET Web Forms Developers | Microsoft Docs
From Web Forms to Blazor - Introducing the Blazor Web Forms Components - YouTube
Что понял, что если на веб-формах было изначально написано модульно, то по сути надо только перенести UI-часть и немного обновить модули (возможно, там старые версии фреймворка и доступа к данным использовались), ну и добавить немного конфигураций для Blazor-проекта для подключения этих модулей. Как я понял, в Blazor всё делается через dependency injection, включая внедрение того же доступа к БД через модель БД, созданную, например, через Entity Framework.
UI-часть придётся переписывать страница за страницей вручную... Ну или есть разные типа конвертеры, но за ними всё перепроверять нужно. Особенно разные кастомные компоненты на веб-формах нужно будет в любом случае заново написать на Blazor. А ещё некоторые стандартные из веб-форм контролы не имеют прямых аналогов в HTML - тоже придётся делать замены. Т.е. это всё нужно в ручном режиме проработать.
Не существует каких-то автоматических конвертеров, добавлятелей Blazor UI для старых проектов на веб-формах через мастер-конфигуратор. В любом случае миграция будет представлять из себя новый проект, в котором будет полностью переписана UI-часть и, в лучшем случае, использованы слегка доработанные старые модули. В случае же, если старое веб-формы приложение было не разделено на модули или плохо разделено - всё было в code behind обработчиков событий написано, то придётся переписывать вообще всё приложение.
Итого миграция ASP.NET Web Forms to Blazor - это переписывание значительной части или всего приложения. Почти как новый проект по спецификации написать сразу на Blazor. Так?
Почти как новый проект по спецификации написать сразу на Blazor. Так?
Скорее всего так. Еще и + .Коре
Но получится гораздо проще и удобнее. Проблема только UI найти подходящую
Ну и где хостить тоже проблема.
Если есть еще логин и "по-старому", то ой
Я server-side предложу вариант, а не веб-ассембли на клиенте.
А что с логином? В веб формах какой-то замшелый вариант используется, который на Blazor не натягивается?
И почему Коре? Там же вовсю уже .NET 5 и 6 используются?
Я server-side предложу вариант, а не веб-ассембли на клиенте.
У каждого есть свои недостатки. У серверного только необходимость обновления signalR сессии. На "своем" сервере особых проблем не замечал.
А вот на Azure не всегда пересоединяется хорошо.
И почему Коре?
Пока не встречал блазора без него. Да и взаимодействие с JS без .NET 5 не очень приятно
А что с логином?
надо просто смотреть. "Из коробки" будет немного по другому.
Ещё, как я выяснил, проект, похоже, на старой версии фреймворка работает - вообще 2.0 или что-то такое (проект в 2002 года идёт, и неизвестно пока, до какой версии они всё обновляли). Т.е. даже если там модульно что-то написано, нужно будет весь код обновить до той версии, на которой новое приложение будешь писать... Или как-то можно заставить код .NET 2.0 заставить работать в среде 5.0 (без обмена всякими джейсонами и тому подобное "интероперабилити")?
Ну и если там база данных кундов, то придётся новую систему авторизации-аутентификации на базе этой БД делать?
PWA полностью standalone, или как-то общается с сервером? Если да, то общается независимо от сервисов на стороне сервера (через тот же REST, написаны на любом языке), или через так называемый Blazor Server?
Я понимаю. Я говорю про то, что у Blazor же есть серверная составляющая - была ли она у вас? Может, там при старте интенсивное общение с сервером было, потому и так долго стартовало?
Ангуляр не общается с сервером и потому стартует быстро?
Google Mail загружается 5-10 секунд, имхо вроде сделан на ангуляре, а сам обычный ангуляр имхо весит 4 мегабайт, а тот который для nodejs весит аж 34 мегабайт, там очень много всяких модулей.
Меня тоже одни форумчаны заставляли переходить на Blazor, хотя он тогда сырой был (2019 год или 2020 год).
Вы вроде занимались Блейзором? Клиентской версией с веб-ассембли, или с серверным рендерингом через SignalIR?
Вы переписали ваше приложение на Блейзор, протестировали и отказались, или только тестовый кусочек сделали?
Ойляяяя... Читаю описание, как в Blazor работает рендеринг составных шаблонов. Помню, ещё в в ASP.NET MVC оно было запутанным, а тут ещё немного запутали.
В WPF всё проще - вот модель, вот её шаблон представления. В Blazor надо прыгать по 3 файлам (особенно, если для компонента вместо кода и разметки вперемешку используется отдельный файл с кодом) в разном порядке и по нескольку раз, чтобы понять, что куда отрисовывается. Какого-то хрена в Blazor описание шаблона разделено на две части - для всего компонента и для отдельных свойств. При этом шаблоны для свойств должны быть тут же по месту использования компонента:
<Component TypeParam="" Property1="" Property2=""> <Property1> - это шаблон для свойства, а есть ещё шаблон для всего компонента - в другом файле <разметка> </Property1> <Property2> - шаблон для другого свойства <разметка> </Property2> </Component>
А нельзя как в WPF - один дефолтный шаблон на тип и, если надо, template selector? А конкретное определение шаблона по месту сделать опциональным?
Или это можно сравнить с разными типами шаблонов в WPF. Тогда шаблон для всего компонента в Blazor это аналог шаблона представления в WPF, а шаблоны для свойств в Blazor - это аналог шаблона данных в WPF.
Вы переписали ваше приложение на Блейзор, протестировали и отказались
Готовое приложение на блазоре работает относительно нормально, особенно если не на Azure хостится.
А вот для PWA делали спец. тест Blazor vs Angular - просто небольшое приложение. Потом еще одно для CPU интенсивных задач.
Если нужно только исключительно веб использование с десктопа, без особых хотелок, то работает нормально. Делаем серверный пререндинг и приложение запускается и в первый раз быстро.