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.
Category Archives: .NET Core
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]
Přehled novinek C# 12 (.NET 8), C# 13 (.NET 9) a preview C# 14 (.NET 10) – praktické ukázky ve Visual Studiu.
- C# 12: primary constructors – DI pattern, capture, naming konvence
- C# 12: collection expressions, inline arrays, spread operátor
- C# 12: type aliases, default lambda parametry, [Experimental] atribut, interceptory
- C# 13: nová třída Lock – modernizované zamykání vláken s using
- C# 13: params collections (Span, IEnumerable) a výkonové výhody
- C# 13: partial properties, indexery a ref struct vylepšení
- C# 14: extension members – extension bloky, properties, statické metody
- C# 14: klíčové slovo field, null conditional assignment (?=), dictionary expressions
Přednáška zazněla na konferenci TechEd Praha 2025.
FluentValidations vs Today [Robert Haken, Vzdělávací okénko, 5.6.2025]
Po půlnoci hlásil validátor: datum vystavení faktury nesmí být v budoucnosti – ale porovnával se včerejším datem. Proč?
- Záhadný bug v Blazor WebAssembly: fakturační validátor po půlnoci odmítá dnešní datum
- FluentValidation validátory jsou scoped-service – v Blazor WASM to prakticky znamená singleton
- Pravidla jako LessThanOrEqualTo(datum) se vyhodnotí jednou v konstruktoru a hodnotu zmrazí
- Řešení: Must(x => x <= timeProvider.GetLocalNow()) – lambda se vyhodnocuje při každé validaci
- Přidej custom error message – Must generuje pouze generické hlášení
Vzdělávací okénko prezentoval Robert Haken.
OpenAPI + Scalar UI [Alexandr Hájek, Vzdělávací okénko, 22.5.2025]
Swagger UI v .NET 9 na odchodu? Scalar UI – moderní alternativa s dark mode, vyhledáváním a výměnou za jeden řádek kódu.
- Proč Microsoft v .NET 9 opouští Swagger generátor a co ho nahrazuje
- Scalar UI: dark/light mode, integrované vyhledávání a classic layout jako Swagger
- Jak přidat Scalar UI do projektu – výměna jednoho řádku kódu
- Konfigurace OIDC autentizace s Microsoft OpenAPI generátorem (access token, scopes)
- Kompatibilita Scalar UI se staršími verzemi .NET a jinými OpenAPI generátory
- MIT licence – open source s aktivní komunitou a rychlými opravami
Vzdělávací okénko prezentoval Alexandr Hájek.
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 TODONullReferenceException– nikdy nevyhrazujeme explicitně, výhradně vyhazováno runtimemNotSupportedException– explicitně indikujeme, že o use-case víme, ale není řešenInvalidOperationException– „nemělo by v produkci nastat“, chyba vývoje (nesprávné volání ,switchnad nečekanou hodnotouenum, …)ArgumentNullException,ArgumentOutOfRangeException– výhradně přímé argumenty (nearg1.Property != null)ArgumentException– obecný problém s argumentem/-y (bližší specifikace vMessage)ContractFailedException– default proContract.Requires(cond),Contract.Assert(cond), …Exception– nedoporučuje se vyhazovat, mělo být spíšeabstract, použijte potomkyOperationFailedException– 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.