Миграция проекта с ASP.NET Web Forms на Blazor
В Blazor надо прыгать по 3 файлам
А третий какой? Можно всё в одном сделать но мне так не нравится.
Что то проблему не могу понять
https://blazor-tutorial.net/component-parameters
Что называете шаблоном?
А третий какой?
Файл razor с разметкой компонента, файл razor.cs с шарповским кодом, файл, что я выше показал - место, где компонент непосредственно используется и где задаются шаблоны для его свойств. Ну и можно привести четвёртый файл - стили. Т.е. чтобы работать с Blazor нормально, нужно минимум четыре окна открытыми держать одновременно, иначе задолбаешься переключаться.
Что называете шаблоном?
Templated components
https://docs.microsoft.com/en-us/dotnet/architecture/blazo...
Без этих шаблонов ни нормального списка, ни нормального тривью, ни таблицы не сделать. Не руками же в форичах перебирать каждый узел структуры данных.
При этом заметьте, как запутана логика отрисовки - чтобы понять, что будет в итоге, чёрт ногу сломит метаться между файлами:
1) встречаем такую разметку, которая использует компонент
<ChildContentComponent> <ChildContent> <p>The time is @DateTime.Now</p> </ChildContent> </ChildContentComponent>
2) идём в code-behind смотреть, что это за ChildContent
@code { [Parameter] public RenderFragment ChildContent { get; set; } }
3) смотрим в разметке компонента, куда будет отрисован ChildContent
<h1>Component with child content</h1> <div>@ChildContent</div>
4) пытаемся собрать воедино всю эту бурду - вставляем в ChildContentComponent (пункт 1) разметку из компонента (пункт 2)
<ChildContentComponent> <h1>Component with child content</h1> <div>@ChildContent</div> </ChildContentComponent>
5) убираем лишнее обрамление (оно не отрисовывается в конечной HTML-разметке)
<h1>Component with child content</h1> <div>@ChildContent</div>
6) вставляем в свойство ChildContent его шаблон (снова возвращаемся за ним в пункт 1)
<h1>Component with child content</h1> <div><p>The time is @DateTime.Now</p></div>
Вот что будет отрисовано вместо изначальной разметки в пункте 1.
Офигеть как всё запутали! И это простой случай - без кучи параметров со своими шаблонами, без иерархических шаблонов, без привязок, без параметров типа и без рекурсивных отрисовок шаблонов (нужно для отрисовки древовидной структуры данных). Конечно, можно привыкнуть к любому дерьму, но почему, ска, обязательно через задницу всё?!
Ещё не забудьте такой долбанутый параметр как Context, про который в МСДН не объяснено толком, что это такое. В этой разметке
<SimpleListView Items="messages" TItem="string"> <Heading> <h1>My list</h1> </Heading> <ItemTemplate Context="message"> <p>The message is: @message</p> </ItemTemplate> </SimpleListView>
это, оказывается, экземпляр объекта типа, переданного в параметре TItem. Т.е. если у типа в TItem есть свойства, то их можно достать через @context.MyProperty, или переименовав параметр context в удобный, как показано выше, чтобы он назывался не context, а соответственно объекту. В примере это просто строка message, но можно обращаться к её свойствам, типа @message.Length.
Готовое приложение на блазоре работает относительно нормально, особенно если не на Azure хостится.
А вот для PWA делали спец. тест Blazor vs Angular - просто небольшое приложение. Потом еще одно для CPU интенсивных задач.
Я думал, вы в одиночку всё переписали.
Это где такое бесплатное с три вью?
А что гугла молчит как партизан на допросе?
А это принципиальное решение, что в проекте Блейзор с подключенным EF Core нет шаблона в визуальном меню для генерации контекста БД (ADO.NET Data Model или что-то такое, как было раньше через меню Add - New Item), и всё надо делать через командную строку с кучей параметров? Ещё и две версии сделали, чтобы жизнь лёгкой не казалась
https://learn.microsoft.com/en-us/ef/core/cli/dotnet#dotne...
https://learn.microsoft.com/en-us/ef/core/cli/powershell?s...
Теперь вместо того, чтобы быстро через меню добавить что нужно, я должен изучать эту портянку с кучей параметров, городить длиннющую строку команды и куда-то в консоли её вводить?