Skip to content

Commit 3c441ab

Browse files
authored
Merge pull request #440 from ignatandrei/Silhoutte
2 parents 2db0dd5 + 84a3cc5 commit 3c441ab

30 files changed

Lines changed: 668 additions & 26 deletions

File tree

README.md

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
# RSCG - 248 Examples of Roslyn Source Code Generators / 16 created by Microsoft /
1+
# RSCG - 249 Examples of Roslyn Source Code Generators / 16 created by Microsoft /
22

3-
The RSCG_Examples repository is a comprehensive documentation system that automatically processes and showcases 248 Roslyn Source Code Generator (RSCG) examples. The system transforms individual RSCG projects into structured documentation with code examples and cross-referenced content with a searchable website and code example exports.
3+
The RSCG_Examples repository is a comprehensive documentation system that automatically processes and showcases 249 Roslyn Source Code Generator (RSCG) examples. The system transforms individual RSCG projects into structured documentation with code examples and cross-referenced content with a searchable website and code example exports.
44

55
This system serves as both a learning resource for .NET developers interested in source generators and an automated pipeline for maintaining up-to-date documentation about the RSCG ecosystem
66

7-
## Latest Update : 2025-12-15 => 15 December 2025
7+
## Latest Update : 2025-12-16 => 16 December 2025
88

99
If you want to see examples with code, please click ***[List V2](https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG)***
1010

1111
If you want just those from Microsoft, please click ***[Microsoft](https://ignatandrei.github.io/RSCG_Examples/v2/docs/Authors/Microsoft)***
1212

1313
If you want to see by category, please click ***[category](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples)***
1414
or click any category below
15-
[actor](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#actor) -[ai](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#ai) -[aop](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#aop) -[api](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#api) -[async](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#async) -[bitwise](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#bitwise) -[blazor](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#blazor) -[bool](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#bool) -[builder](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#builder) -[clone](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#clone) -[codetostring](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#codetostring) -[commandline](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#commandline) -[console](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#console) -[constructor](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#constructor) -[database](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#database) -[decorator](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#decorator) -[dependencyinjection](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#dependencyinjection) -[disposer](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#disposer) -[enhancementclass](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementclass) -[enhancementproject](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementproject) -[enum](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enum) -[equals](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#equals) -[filestocode](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#filestocode) -[functionalprogramming](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#functionalprogramming) -[hangfire](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#hangfire) -[interface](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#interface) -[linq](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#linq) -[mapper](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mapper) -[mcp](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mcp) -[mediator](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mediator) -[mixin](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mixin) -[mvc](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mvc) -[mvvm](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mvvm) -[optimizer](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#optimizer) -[primitiveobsession](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#primitiveobsession) -[rx](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#rx) -[serializer](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#serializer) -[signalr](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#signalr) -[statemachine](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#statemachine) -[templating](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#templating) -[tests](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#tests) -[validator](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#validator) -[winapi](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#winapi) -
15+
[actor](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#actor) -[ai](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#ai) -[aop](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#aop) -[api](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#api) -[async](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#async) -[bitwise](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#bitwise) -[blazor](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#blazor) -[bool](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#bool) -[builder](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#builder) -[clone](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#clone) -[codetostring](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#codetostring) -[commandline](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#commandline) -[console](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#console) -[constructor](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#constructor) -[database](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#database) -[decorator](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#decorator) -[dependencyinjection](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#dependencyinjection) -[disposer](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#disposer) -[enhancementclass](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementclass) -[enhancementproject](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementproject) -[enum](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enum) -[equals](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#equals) -[filestocode](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#filestocode) -[functionalprogramming](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#functionalprogramming) -[hangfire](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#hangfire) -[interface](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#interface) -[linq](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#linq) -[mapper](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mapper) -[mcp](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mcp) -[mediator](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mediator) -[mixin](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mixin) -[mvc](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mvc) -[mvvm](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mvvm) -[optimizer](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#optimizer) -[primitiveobsession](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#primitiveobsession) -[profiler](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#profiler) -[rx](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#rx) -[serializer](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#serializer) -[signalr](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#signalr) -[statemachine](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#statemachine) -[templating](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#templating) -[tests](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#tests) -[validator](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#validator) -[winapi](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#winapi) -
1616

1717

1818
## If you have a Roslyn Source Code Generator, please create an issue.
@@ -24,8 +24,30 @@ If you want to be notified each time I add a new RSCG example , please click htt
2424

2525
## Content
2626

27-
Those are the 248 Roslyn Source Code Generators that I have tested you can see and download source code example.
27+
Those are the 249 Roslyn Source Code Generators that I have tested you can see and download source code example.
2828
( including 16 from Microsoft )
29+
### 249. [Silhouette](https://ignatandrei.github.io/RSCG_Examples/v2/docs/Silhouette) , in the [Profiler](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#profiler) category
30+
31+
Generated on : 2025-12-16 => 16 December 2025
32+
33+
<details>
34+
<summary>Expand</summary>
35+
36+
37+
38+
Author: Kevin Gosse
39+
40+
A library to build .NET profilers in .NET. No need for C++ anymore, just C#.
41+
42+
Nuget: [https://www.nuget.org/packages/Silhouette/](https://www.nuget.org/packages/Silhouette/)
43+
44+
45+
Link: [https://ignatandrei.github.io/RSCG_Examples/v2/docs/Silhouette](https://ignatandrei.github.io/RSCG_Examples/v2/docs/Silhouette)
46+
47+
Source: [https://github.com/kevingosse/Silhouette](https://github.com/kevingosse/Silhouette)
48+
49+
</details>
50+
2951
### 248. [docopt.net](https://ignatandrei.github.io/RSCG_Examples/v2/docs/docopt.net) , in the [CommandLine](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#commandline) category
3052

3153
Generated on : 2025-12-15 => 15 December 2025
@@ -2142,7 +2164,7 @@ Generated on : 2024-08-01 => 01 August 2024
21422164

21432165

21442166

2145-
Author: AndreiIgnat
2167+
Author: Ignat Andrei
21462168

21472169
Roslyn Diagram generator for external dependencies
21482170

later.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Just later
22

3-
## Latest Update : 2025-12-15 => 15 December 2025
3+
## Latest Update : 2025-12-16 => 16 December 2025
44

55

66

v2/.tours/Silhouette.tour

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
2+
{
3+
"$schema": "https://aka.ms/codetour-schema",
4+
"title": "Silhouette",
5+
"steps":
6+
[
7+
{
8+
"file": "rscg_examples/Silhouette/src/ProfilerDemo/ProfilerDemo.csproj",
9+
"description": "First, we add Nuget [Silhouette](https://www.nuget.org/packages/Silhouette/) in csproj ",
10+
"pattern": "Silhouette"
11+
}
12+
13+
,{
14+
"file": "rscg_examples/Silhouette/src/ProfilerDemo/Program.cs",
15+
"description": "File Program.cs \r\n>> dotnet run --project rscg_examples/Silhouette/src/ProfilerDemo/ProfilerDemo.csproj ",
16+
"pattern": "this is the code"
17+
}
18+
19+
20+
,{
21+
"file": "rscg_examples/Silhouette/src/ProfilerDemo/obj/GX/Silhouette.SourceGenerator/Silhouette.SourceGenerator.ProfilerAttributeSourceGenerator/silhouette.dllmain.g.cs",
22+
"description": "Generated File 1 from 1 : silhouette.dllmain.g.cs ",
23+
"line": 1
24+
}
25+
26+
],
27+
28+
"ref": "main"
29+
30+
}

v2/Generator/all.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,3 +247,4 @@ Nr,Key,Source,Category
247247
246,Imposter, https://github.com/themidnightgospel/Imposter,Tests
248248
247,BlazorOcticons, https://github.com/BlazorOcticons/BlazorOcticons,Blazor
249249
248,docopt.net, https://github.com/docopt/docopt.net,CommandLine
250+
249,Silhouette, https://github.com/kevingosse/Silhouette,Profiler

v2/GeneratorData/Category.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ public enum Category
4545
Validator=40,
4646
Decorator= 41,
4747
MCP= 42,
48-
Bool=43
48+
Bool=43,
49+
Profiler=44,
4950
}
5051

v2/RSCGExamplesData/GeneratorDataRec.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1503,5 +1503,11 @@
15031503
"Category": 32,
15041504
"dtStart": "2025-12-15T00:00:00",
15051505
"show": true
1506+
},
1507+
{
1508+
"ID":"Silhouette",
1509+
"Category": 44,
1510+
"dtStart": "2025-12-16T00:00:00",
1511+
"show": true
15061512
}
15071513
]

v2/book/examples/Silhouette.html

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
2+
<h1>RSCG nr 249 : Silhouette</h1>
3+
4+
<h2>Info</h2>
5+
Nuget : <a href="https://www.nuget.org/packages/Silhouette/" target="_blank">https://www.nuget.org/packages/Silhouette/</a>
6+
7+
<p>You can find more details at : <a href="https://github.com/kevingosse/Silhouette" target="_blank"> https://github.com/kevingosse/Silhouette</a></p>
8+
9+
<p>Author :Kevin Gosse</p>
10+
11+
<p>Source: <a href="https://github.com/kevingosse/Silhouette" target="_blank">https://github.com/kevingosse/Silhouette</a> </p>
12+
13+
<h2>About</h2>
14+
15+
Profiling .net applicationsMeasuring performance improvements
16+
17+
<h2>
18+
How to use
19+
</h2>
20+
<h3>
21+
Add reference to the <a href="https://www.nuget.org/packages/Silhouette/" target="_blank">Silhouette</a> in the csproj
22+
</h3>
23+
<img src="images/Silhouette/ProfilerDemo.csproj.png" width="580" height="580" />
24+
25+
<h3>This was for me the <b>starting</b> code</h3>
26+
27+
<br />
28+
I have <b>coded</b> the file Program.cs
29+
<br />
30+
<img src="images/Silhouette/csFiles/Program.cs.png" width="580" height="580" />
31+
<hr />
32+
<h3>And here are the <i>generated</i> files</h3>
33+
34+
<br />
35+
The file <i>generated</i> is silhouette.dllmain.g.cs
36+
<br />
37+
<img src="images/Silhouette/generated/silhouette.dllmain.g.cs.png" width="580" height="580" />
38+
39+
<p>
40+
You can download the code and this page as pdf from
41+
<a target="_blank" href='https://ignatandrei.github.io/RSCG_Examples/v2/docs/Silhouette'>
42+
https://ignatandrei.github.io/RSCG_Examples/v2/docs/Silhouette
43+
</a>
44+
</p>
45+
46+
47+
<p>
48+
You can see the whole list at
49+
<a target="_blank" href='https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG'>
50+
https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG
51+
</a>
52+
</p>
53+

v2/book/list.html

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
</head>
1818
<body>
1919
<h1>
20-
This is the list of 248 RSCG with examples =>
20+
This is the list of 249 RSCG with examples =>
2121
</h1>
2222

2323
<table >
@@ -1018,6 +1018,10 @@ <h1>
10181018
<td>248</td>
10191019
<td><a href="examples/docopt.net.html">docopt.net</a></td>
10201020
</tr>
1021+
<tr>
1022+
<td>249</td>
1023+
<td><a href="examples/Silhouette.html">Silhouette</a></td>
1024+
</tr>
10211025
</table>
10221026

10231027

v2/book/pandocHTML.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,7 @@ input-files:
262262
- examples/Imposter.html
263263
- examples/BlazorOcticons.html
264264
- examples/docopt.net.html
265+
- examples/Silhouette.html
265266

266267
# or you may use input-file: with a single value
267268
# defaults:

v2/rscg_examples/RSCG_ExportDiagram/description.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"https://github.com/ignatandrei/RSCG_ExportDiagram"
66
],
77
"link":"RSCG_ExportDiagram",
8-
"author":"AndreiIgnat",
8+
"author":"Ignat Andrei",
99
"source":"https://github.com/ignatandrei/RSCG_ExportDiagram"
1010
},
1111
"data":{

0 commit comments

Comments
 (0)