Skip to content

In this repository I will try to explain good concepts regarding Async, regarding Logging and so on

Notifications You must be signed in to change notification settings

Glareone/Advanced-Csharp-topics

Repository files navigation

Advanced C# topics and pieces of advice.

Practical Part

In this repository I will try to explain good concepts regarding Async, regarding Logging and so on.

Topics

☑ Async
☑ IAsyncEnumerable. Async Streams and when to use async before foreach

  • Async materials are here: Async materials
  • Async void pitfalls (in progress)

☑ Logging in minimalAPI:

☑ Nullable Reference Types

☐ Prevent from decompiling your C#-application
☐ Validation. Settings Validation

Azure Cloud

Azure Function .Net8 with Serilog, Production Ready

Authentication & Authorization

Authentication using JWT
☑ Authorization

Other materials

.editorconfig

☑ Worker (CPU-bound) & Completion (I\O-bound) Threads Worker & CompletionThreads.pptx
☐ GC, IDisposable, and Finalizer (in progress) GC and related materials are here:

ReadOnlySpan, ref struct and how to not allocate extra memory in heap
PeriodicTimer, modern way how to run background tasks

Delegates and usecases

☐ Delegates. Delegates use cases in C#10

Benchmarking the different usecases

☑ Benchmarks

☐ Benchmarking WebAPI and GC utilization in it. CQRS Cost.

☐ HybridCache in .Net8 (in progress)

Theory and practice

☐ Data Structures

☐ Reflection and its performance in modern C#. Dynamic as "Instead of Reflection"

  • Dynamic in modern C# (in progress)
  • Reflections and its performance in NET8 Preview (in progress)

☑ Console App with Generic Host. Running application from the pipeline. (useful for DB Migration)

☑ Error Handling. RFC 9547 and RFC 7807, following IETF Standards

Allows to run any Tasks and use Host services lifetime. Might be useful to run EF DBMigrations from Pipeline or from another place https://dfederm.com/building-a-console-app-with-.net-generic-host/

☐ EntityFramework vs Dapper. Improving speed of EntityFramework (in progress)
☐ Kafka meets .Net6 (in progress)
GraphQL meets .Net6
☑ Bloom Filter (in progress. Could be found below)

Bloom Filter. Pros and Cons. Types. Use Cases

Use Cases

image

Pros

image

Cons

image

Dynamic. Performance. Comparison

☐ Retries in .Net
☐ String.Create (example from Dave is in the section below)

String.Create example (let us not allocating extra space when we tend to construct the string). Faster than String.Join and String Interpolation

image

About

In this repository I will try to explain good concepts regarding Async, regarding Logging and so on

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published