Изменения документа Генерация кода
Редактировал(а) Alexandr Fokin 2023/08/06 16:33
<
>
отредактировано Alexandr Fokin
на 2021/11/07 13:04
на 2021/11/07 13:04
отредактировано Alexandr Fokin
на 2023/08/06 16:32
на 2023/08/06 16:32
Изменить комментарий:
К данной версии нет комментариев
Комментарий
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -1,3 +1,45 @@ 1 - 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 21 +))) 22 + 23 +---- 24 + 25 +==== Внутренние ссылки: ==== 26 + 27 +====== Дочерние страницы: ====== 28 + 29 +{{children/}} 30 + 31 +====== Обратные ссылки: ====== 32 + 33 +{{velocity}} 34 +#set ($links = $doc.getBacklinks()) 35 +#if ($links.size() > 0) 36 + #foreach ($docname in $links) 37 + #set ($rdoc = $xwiki.getDocument($docname).getTranslatedDocument()) 38 + * [[$escapetool.xml($rdoc.fullName)]] 39 + #end 40 +#else 41 + No back links for this page! 42 +#end 43 +{{/velocity}} 44 + 45 +----