Изменения документа Генерация кода
Редактировал(а) Alexandr Fokin 2023/08/06 16:33
<
>
отредактировано Alexandr Fokin
на 2022/12/12 11:58
на 2022/12/12 11:58
отредактировано Alexandr Fokin
на 2023/08/06 16:32
на 2023/08/06 16:32
Изменить комментарий:
К данной версии нет комментариев
Комментарий
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -1,9 +1,24 @@ 1 -Source generators 2 - 3 ----- 4 - 5 -Роман Щербаков «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» 6 6 https://www.youtube.com/watch?v=Xeuewv-5nOA 21 +))) 7 7 8 8 ---- 9 9