Category Archives: .NET Core

PDF v .NET pomocí PDFSharp/MigraDoc [T. Wagner, Z. Hlinka, Vzdělávací okénko, 2.10.2025]

Záznam ze Vzdělávacího okénka z 2. října 2025. Tomáš a Zdeněk ukazovali bezplatné knihovny pro tvorbu PDF z .NET – PDFSharp a jeho nadstavbu MigraDoc.

Novinky v .NET 9 a výhled na .NET 10 – záznam a slides [Robert Haken, WUG Days Brno 9/2025]

Záznam z přednášky pro konferenci WUG Days Brno z 5.9.2025, kde jsem telegraficky představoval novinky z „.NET 9 vlny“ a pár přicházejících v „.NET 10 vlně“.

Slides

Novinky v C# 12, 13 a 14 (.NET 8, 9 a 10) – záznam [TechEd Praha 2025]

Záznam z přednášky pro konferenci TechEd Praha 2025, kde jsem ukazoval novinky v C# 13 v .NET 9 (společně s hlavními novinkami z předchozí verze C# 12 v .NET 8 a ochutnávkou chystaných novinek v C# 14 v .net 10).

FluentValidations vs Today [HAVIT Vzdělávací okénko, 5.6.2025]

Záznam ze Vzdělávacího miniokénka HAVIT z 5. června 2025, kde jsem ukazoval past FluentValidation validátorů, které se registrují do dependency-injection jako scoped-service a definice pravidel vznikají při volání konstruktoru (tj. v Blazor WebAssembly jednou).

OpenAPI + Scalar UI [Alexandr Hájek, Vzdělávací okénko, 22.5.2025]

Záznam ze Vzdělávacího (mini)okénka HAVIT z 22. května 2025. Alex ukazoval Scalar UI jako alternativu k Swagger UI.

Seedy, UoW a Created v HAVIT stacku [Robert Haken, Vzdělávací okénko, 15.5.2025]

Technická změna v seedech, kde se nyní používá Unit of Work. Není potřeba explicitně nastavovat Created atribut, protože se o to postará systém. Taktéž je vhodné použít ExcludeUpdate, aby se Created hodnota nepřepisovala.

Exception types – kdy který použít [Vzdělávací okénko, 10.4.2025]

  • NotImplementedException – výhradně během vývoje jako TODO
  • NullReferenceException – nikdy nevyhrazujeme explicitně, výhradně vyhazováno runtimem
  • NotSupportedException – explicitně indikujeme, že o use-case víme, ale není řešen
  • InvalidOperationException – „nemělo by v produkci nastat“, chyba vývoje (nesprávné volání , switch nad nečekanou hodnotou enum, …)
  • ArgumentNullException, ArgumentOutOfRangeException – výhradně přímé argumenty (ne arg1.Property != null)
  • ArgumentException – obecný problém s argumentem/-y (bližší specifikace v Message)
  • ContractFailedException – default pro Contract.Requires(cond), Contract.Assert(cond), …
  • Exception – nedoporučuje se vyhazovat, mělo být spíše abstract, použijte potomky
  • OperationFailedException – indikace chyby do UI (specficiké pro Havit.Blazor stack)
  • ApplicationException – deprecated

Záznam ze Vzdělávacího okénka HAVIT z 10. dubna 2025.

await foo?.DoAsync() [Vzdělávací okénko, 20.3.2025]

Krátce o pasti zápisu await foo?.DoAsync(), kdy použití null-conditional accessu vede na await null a NullReferenceException.

Novinky v .NET 9 a výhled na .NET 10 – záznam a slides [Robert Haken, WUG Dev Day, 28.2.2025]

Záznam ze Vzdělávacího okénka HAVIT z 28. února 2025, kde jsem telegraficky představoval novinky z „.NET 9 vlny“ a přicházející v „.NET 10 vlně“.

Slides

I[Async]Enumerable [Jiří Kanda, Vzdělávací okénko, 31.10.2024]

Záznam ze Vzdělávacího okénka HAVIT z 31. října 2024, kde Jiří Kanda povídal o IEnumerable interface a jeho asynchronní verzi IAsyncEnumerable.