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