Изменения документа Генерация кода

Редактировал(а) Alexandr Fokin 2023/08/06 16:33

<
От версии < 2.8
отредактировано Alexandr Fokin
на 2023/08/06 16:33
К версии < 2.6 >
отредактировано Alexandr Fokin
на 2023/08/06 16:07
Изменить комментарий: К данной версии нет комментариев

Комментарий

Подробности

Свойства страницы
Содержимое
... ... @@ -1,18 +1,10 @@
1 1  |(% style="width:108px" %) |(% style="width:1376px" %)Генерация кода, SourceGenerators, Source generators, SourceGenerator, SourceGenerator
2 -|(% style="width:108px" %) |(% style="width:1376px" %)[[Roslyn>>doc:Разработка.NET.Работа со сборками и исходниками.Roslyn.WebHome]]
3 3  |(% style="width:108px" %)Описания|(% style="width:1376px" %)(((
4 4  * Позволяет использовать преимущества динамического формирования кода (схожего с [[Reflection | Рефлексия>>doc:Разработка.NET.C#.Рантайм и типы.Reflection | Рефлексия .WebHome]]), при том что сам этап генерации происходит в момент сборки приложения.
5 5  * Позволяет увидеть динамический (сгенерированный) код.
6 6  * Позволяет выполнить проверки типов на этапе компиляции для генерируемого кода (что не возможно при других подходах).
7 -* Производительность кода равна коду, написанному вручную (т.к. генерация идет в момент сборки, а не в рантайме).
6 +* Производительность кода равна коду, написанному вручную (т.к. генерация идет в момент сборки, а не в рантайме).
8 8  )))
9 -|(% style="width:108px" %)Минусы|(% style="width:1376px" %)(((
10 -* Некоторые моменты инструмента еще сырые (Например поддержка на уровне IDE).
11 -* Некоторая сложность тестирования.
12 -* Написание и хранения блоков кода в виде строк может быть не очень удобной.
13 -* Сложность разработки и быстрого изменения выше, чем при использовании рефлексии.
14 -(В том числе необходимость учитывать разные варианты объявления элементов кода).
15 -)))
16 16  |(% style="width:108px" %)Материалы|(% style="width:1376px" %)(((
17 17  |Олег Сафонов — Пишем код, когда пишем код: source generator'ы
18 18  [[https:~~/~~/www.youtube.com/watch?v=wtGTxRDSQz4>>https://www.youtube.com/watch?v=wtGTxRDSQz4]]