Skip to content

Code samples and slides for the BASTA! conference in Mainz, Germany

License

Notifications You must be signed in to change notification settings

CNILearn/bastamainz2024

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BASTA! Mainz 2024

  • Be ready for C# 12 and C# 13
  • Logs, metrics, distributed tracing and OpenTelemetry

Be ready for C# 12 and C# 13

Dienstag, 17.9.2024, 10:45 - 11:45, Gutenbergsaal 4

C# 12 ist releast, die nächste Version von C# steht bereits vor der Tür. Mit Primary Constructors und Collection Expressions kann der Code in allen .NET-Applikationen vereinfacht werden. Was dahinter steckt, was es sonst noch neues in C# gibt, was mit Inline Arrays und Interceptors gemacht werden kann, und was in C# 13 kommt, wie z. B. Erweiterungen bei Collection Expressions und ref struct-Typen, den neuen Extensions, und dem lock Keyword basierend auf der .NET-9-Lock-Klasse lernen Sie in dieser Session.

C# Slides

C# Samples

  • Escape sequence
  • Minimal API
  • Alias any type
  • Primary constructors
  • Ref readonly
  • allows ref struct
  • Params
  • Inline arrays
  • Collection literals
  • Optional parameters in lambda expressions
  • Unsafe accessor
  • Interceptors
  • Native AOT

Logs, metrics, distributed tracing, and OpenTelemetry

Donnerstag, 19.9.2024, 12:00 - 13:00, Gutenbergsaal 1

Grafana? Prometheus? Application Insights? OpenTelemetry? Am Beispiel einer verteilten Lösung die sowohl on Premises als auch mit Azure Cloud Services läuft, sehen Sie wie Log, Metrics, und Distributed Tracing mit .NET-Applikationen implementiert werden können, und diese Daten mit Grafana und Prometheus sowie mit Azure Services wie Azure Monitor, Log Analytics und Application Insights ausgewertet werden kann.

Slides

Samples

  • Logging
  • Metrics
  • Distributed Tracing
  • Codebreaker service with logging, metrics, tracing

Codebreaker

Get the sample from chapter 11 of the Pragmatic Microservices book!

For logging, see the GamesApi project, the Infrastructure\Log class for source-generated logging. The GamesService class injects the ILogger interface, and writes log messages.

For metrics, see the Infrastructure\GamesMetrics class uses instruments to write counts. The ApplicationServices class configures the dependency injection container to configure metrics. The GamesService class writes metrics (GameStarted, MoveSet, GameEnded).

For distributed tracing, the ActivitySource is registered as a keyed service in ApplicationServices, and injected in the GamesService class. Activities are started using tags, and the status is set.

Important Links

About

Code samples and slides for the BASTA! conference in Mainz, Germany

Resources

License

Stars

Watchers

Forks