Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Миграция проекта с ASP.NET Web Forms на Blazor

1814  1 2 3 все
AlexNek патриот23.06.22 18:30
AlexNek
NEW 23.06.22 18:30 
в ответ alex445 23.06.22 16:56
В Blazor надо прыгать по 3 файлам

А третий какой? Можно всё в одном сделать но мне так не нравится.

Что то проблему не могу понять

https://blazor-tutorial.net/component-parameters

Что называете шаблоном?

#21 
alex445 коренной житель24.06.22 00:50
NEW 24.06.22 00:50 
в ответ alex445 23.06.22 16:56

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

#22 
alex445 коренной житель24.06.22 00:52
24.06.22 00:52 
в ответ AlexNek 23.06.22 18:30, Последний раз изменено 24.06.22 00:52 (alex445)
А третий какой?

Файл razor с разметкой компонента, файл razor.cs с шарповским кодом, файл, что я выше показал - место, где компонент непосредственно используется и где задаются шаблоны для его свойств. Ну и можно привести четвёртый файл - стили. Т.е. чтобы работать с Blazor нормально, нужно минимум четыре окна открытыми держать одновременно, иначе задолбаешься переключаться.

#23 
alex445 коренной житель24.06.22 00:54
NEW 24.06.22 00:54 
в ответ AlexNek 23.06.22 18:30, Последний раз изменено 24.06.22 00:56 (alex445)
Что называете шаблоном?


Templated components

https://docs.microsoft.com/en-us/dotnet/architecture/blazo...


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

#24 
alex445 коренной житель24.06.22 01:03
NEW 24.06.22 01:03 
в ответ alex445 24.06.22 00:54, Последний раз изменено 24.06.22 01:23 (alex445)

При этом заметьте, как запутана логика отрисовки - чтобы понять, что будет в итоге, чёрт ногу сломит метаться между файлами:


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.


Офигеть как всё запутали! И это простой случай - без кучи параметров со своими шаблонами, без иерархических шаблонов, без привязок, без параметров типа и без рекурсивных отрисовок шаблонов (нужно для отрисовки древовидной структуры данных). Конечно, можно привыкнуть к любому дерьму, но почему, ска, обязательно через задницу всё?!

#25 
alex445 коренной житель24.06.22 01:16
NEW 24.06.22 01:16 
в ответ alex445 24.06.22 01:03, Последний раз изменено 24.06.22 01:22 (alex445)

Ещё не забудьте такой долбанутый параметр как 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.

#26 
alex445 коренной житель24.06.22 01:45
NEW 24.06.22 01:45 
в ответ AlexNek 23.06.22 18:23

Готовое приложение на блазоре работает относительно нормально, особенно если не на Azure хостится.


А вот для PWA делали спец. тест Blazor vs Angular - просто небольшое приложение. Потом еще одно для CPU интенсивных задач.

Я думал, вы в одиночку всё переписали.

#27 
AlexNek патриот24.06.22 12:50
AlexNek
NEW 24.06.22 12:50 
в ответ alex445 24.06.22 00:50
нихрена нет толком из коробки

ну не нужно это микрософту для себя, всегда так было.

Да и бесплатное тоже есть


#28 
AlexNek патриот24.06.22 12:51
AlexNek
NEW 24.06.22 12:51 
в ответ alex445 24.06.22 00:52
Т.е. чтобы работать с Blazor нормально, нужно минимум четыре окна открытыми держать одновременно

никогда не было подобной проблемы, странно...

#29 
AlexNek патриот24.06.22 12:53
AlexNek
NEW 24.06.22 12:53 
в ответ alex445 24.06.22 00:54
Без этих шаблонов...

можно спокойно жить и пользоваться нормальными либами.

#30 
AlexNek патриот24.06.22 12:56
AlexNek
NEW 24.06.22 12:56 
в ответ alex445 24.06.22 01:03
Офигеть как всё запутали!

Как по мне, так всё достаточно просто и прозрачною И не нужно никуда переключаться для понимания работы. Делаешь или одну часть или другую.

#31 
AlexNek патриот24.06.22 12:58
AlexNek
NEW 24.06.22 12:58 
в ответ alex445 24.06.22 01:45
в одиночку всё переписали.

зачем? В короткий срок обычно не переписывается, делается сразу как надо.

Да и в команде всё делаем.

#32 
alex445 коренной житель24.06.22 14:35
NEW 24.06.22 14:35 
в ответ AlexNek 24.06.22 12:50

Это где такое бесплатное с три вью? Задолбался свой писать - не получается без навыков в этом Блейзоре.

#33 
AlexNek патриот24.06.22 17:27
AlexNek
NEW 24.06.22 17:27 
в ответ alex445 24.06.22 14:35
Это где такое бесплатное с три вью?

А что гугла молчит как партизан на допросе? спок

https://antblazor.com/en-US/

https://blazor.radzen.com/

https://blazorise.com/

#34 
alex445 коренной житель24.06.22 21:17
NEW 24.06.22 21:17 
в ответ AlexNek 24.06.22 17:27

Гугл первые две страницы по treeview blazor выдаёт спам ссылок на Дев Экспрее, Телерик и ещё несколько вендоров платных компонентов.


Спасибо за ссылки.

#35 
AlexNek патриот24.06.22 22:33
AlexNek
NEW 24.06.22 22:33 
в ответ alex445 24.06.22 21:17

попробуйте поискать blazor component library free

#36 
alex445 коренной житель31.10.22 13:49
NEW 31.10.22 13:49 
в ответ AlexNek 24.06.22 22:33, Последний раз изменено 31.10.22 16:58 (alex445)

А это принципиальное решение, что в проекте Блейзор с подключенным 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...


Теперь вместо того, чтобы быстро через меню добавить что нужно, я должен изучать эту портянку с кучей параметров, городить длиннющую строку команды и куда-то в консоли её вводить?

#37 
alex445 коренной житель31.10.22 21:18
NEW 31.10.22 21:18 
в ответ alex445 31.10.22 13:49

#38 
AlexNek патриот03.11.22 22:00
AlexNek
NEW 03.11.22 22:00 
в ответ alex445 31.10.22 13:49
нет шаблона в визуальном меню для генерации контекста БД

А зачем? Они ориентированы на code first. DevArt отлично справляется с DB First.

Или Я что тот не понимаю?

#39 
AlexNek патриот03.11.22 22:01
AlexNek
NEW 03.11.22 22:01 
в ответ alex445 31.10.22 21:18

Письма разносил спок Не была тута

#40 
1 2 3 все