Session
The [Source Code] Generation Game
There has been a lot of buzz around the introduction of source code generators in .NET 5 and it's there's more to come in .NET 6 and .NET 7 .
But, how did we get here and what may the future hold?
Starting with the question of "What is code generation?", I present a brief history of my journey into source code generation, starting with the ZX Spectrum (program published in a UK magazine to convert machine code into BASIC DATA statements), through the Visual Basic 3-6 years (VB code created when element clicked upon; tools to generate VB from SQL tables and stored procs)
I will then move on to do a whistle-stop tour of
* How .NET introduced tooling in Visual Studio for code-generation for SOAP Service Reference clients, RESX resources and the pitfalls of the code generated
* How previously, most code generation has been template based using external tooling run outside VS to generate files that need to be manually included in .NET projects to compile
* Introduction of T4 templates in Visual Studio (leading onto .NET Core's dotnet new command line templates)
* Code generation "on-the-fly" in Regular Expressions (intermediate code or compile to MSIL) and Entity Framework (SQL statement generation)
* Latest version of service reference code generation for REST and gRPC in .NET 5
The remainder of the talk will focus on the source generators introduced with .NET 5, covering
* How they differ from traditional template based code generation by being part of the compilation process
* Tooling to help debugging introduced with VS2019 16.10
* Gotchas with the tooling in Visual Studio!
* Unit testing code generation
Lastly, we will look at where source generators may go in the future
* More out of the box use, such as System.Text.Json in .NET 6
* Could there be potential for working with Intellicode and Github Copilot integration?
* "Computer make it so" - Experiments being done in AI generated code without a template or specification
Target audience - Intermediate .NET developers
Session Time : 60 minutes
Preferred Session : Morning session
Previous / scheduled presentations of talk
* DDD East Midlands 2021 (in person) - https://www.youtube.com/watch?v=3IuDAp9xV3w&t=2642s
* DDD Reading 2021 (online)
* South Coast Developers User Group (online)
* .NET Notts - scheduled May 2022 (online)
Examples of other talks that I have presented in person can be seen on You Tube
* .NET Sheffield - https://www.youtube.com/watch?v=kLl2Mt3eYxU&t=613s
Previous Presenting Experience at User Groups / Community Conferences (other talks)
* DDD Reading, DDD North, DDD East Anglia, DDD East Midlands
* .NET Notts, .NET Cambridge, .NET Sheffield, .NET Milton Keynes, .NET Oxford, South Coast Developers
Podcast appearances talking about Dependency Injection
* https://dotnetcore.show/episode-49-configuration-in-net-core-with-steve-collins/
* https://unhandledexceptionpodcast.com/posts/0024-stevecollins/
Other podcast appearances talking about .NET Configuration
* https://dotnetcore.show/episode-49-configuration-in-net-core-with-steve-collins/
* https://www.dnistream.live/show/12-file-configuration-blues
Video Streaming appearances
* https://youtu.be/0x2KW-dJDQU
Hosting User Group
* https://www.meetup.com/Milton-Keynes-NET-Meetup-Group
Steve Collins
Freelance software developer based in the South East of the UK
Worthing, United Kingdom
Links
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top