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

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

<
От версии < 2.3 >
отредактировано Alexandr Fokin
на 2022/12/03 10:42
К версии < 2.8
отредактировано Alexandr Fokin
на 2023/08/06 16:33
Изменить комментарий: К данной версии нет комментариев

Комментарий

Подробности

Свойства страницы
Содержимое
... ... @@ -1,6 +1,45 @@
1 -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»
20 +https://www.youtube.com/watch?v=Xeuewv-5nOA
21 +)))
2 2  
3 3  ----
4 4  
5 -Роман Щербаков «C# 9.0 Source Generators»
6 -https://www.youtube.com/watch?v=Xeuewv-5nOA
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 +----