Krátce o pasti zápisu await foo?.DoAsync(), kdy použití null-conditional accessu vede na await null a NullReferenceException.
Category Archives: Announcements
Blazor ValueExpression binding a validace – záznam [Vzdělávací okénko, 13.3.2025]
Tentokrát o ValueExpression parametrech v Blazoru a potřebě jejich správného použití pro fungování validací.
Záznam ze Vzdělávacího okénka HAVIT z 13. března 2025. Zkoušíme zpestřit novým formátem mini-okének, kde se budou objevovat ad-hoc témata v řádu 2-10 minut.
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.
Azure Entra ID – Conditional Access Policies [Dan Hrubý, HAVIT Vzdělávací okénko, 26.9.2024]
Záznam ze Vzdělávacího okénka HAVIT z 26. září 2024, kde Daniel Hrubý povídal o Microsoft Azure Entra ID a aspektech jako MFA, Conditional Access Policies, B2B Collaboration atp.
Blazored.FluentValidations issue [Robert Haken, HAVIT Vzdělávací okénko. 24.10.2024]
Záznam ze Vzdělávacího okénka HAVIT ze 24. října 2024, kde jsem ukazoval problematické chování Blazored.FluentValidationsValidator při komplexním view-modelu a validaci fieldů na sub-modelech.
.NET Memory Internals – záznam a slides [Robert Haken, WUG Days Brno, 6.9.2024]
Záznam z přednášky pro konferenci WUG Days Brno z 6. září 2024, kde jsem ukazoval základy uspořádání paměti v .NET, internals Garbage Collectoru a pokročilý debugging pomocí Windows Debuggeru (WinDbg) a SOS extension.
Téma není zaměřené primárně na novinky, ale jde do hloubky — jak .NET skutečně spravuje paměť, jak to funguje uvnitř a jak se v tom vyznat při pokročilém debuggingu (Memory Dump, WinDbg, SOS).
Zásobník (Stack)
Zásobník je paměť pevné velikosti (defaultně 1 MB na thread), organizovaná pomocí Stack framů. Každé volání metody přidá Stack frame s lokálními proměnnými, parametry a návratovou adresou. Stack je základním mechanismem řízení běhu programu — bez něj by se metody neměly kam vracet. Stack overflow nastává téměř výhradně kvůli nekonečné rekurzi, ne proto, že by aplikace měla příliš hluboký call stack.
Managed Heap a Garbage Collector
.NET runtime si od Windows alokuje nativní paměť a část z ní předá Garbage Collectoru, který ji uspořádá jako managed heap. GC je zodpovědný nejen za uvolňování paměti (jak napovídá název), ale i za samotnou alokaci referenčních typů. Klíčovými koncepty jsou GC Generations (Gen0, Gen1, Gen2) pro generační sběr odpadu a Large Object Heap (LOH) pro velké objekty nad 85 000 bytů.
Windows Debugger (WinDbg) a Memory Dump
WinDbg je mocný, ale uživatelsky nepřívětivý nástroj pro analýzu .NET procesů a Memory Dumpů. Instaluje se přes Microsoft Store. Nejčastější workflow: z Task Manageru vytvoříte Memory Dump (pravé tlačítko → Create memory dump file), soubor načtete do WinDbg a analyzujete. Pro práci s .NET objekty je nezbytná SOS (Son of Strike) extension, která umožňuje zkoumat managed heap, zásobníky threadů a jednotlivé objekty přímo v paměti.
Slides
Novinky v .NET 9 – záznam a slides [Robert Haken, WUG Days Brno, 5.9.2024]
Záznam ze Vzdělávacího okénka HAVIT z 5. září 2024, kde jsem telegraficky představoval novinky přicházející v „.NET 9 vlně“.
Slides
ASP.NET Core SignalR – základní seznámení [Jiří Kanda, HAVIT Vzdělávací okénko, 27.6.2024]
Záznam ze Vzdělávacího okénka HAVIT z 27. června 2024, kde Jiří Kanda povídal o SignalR v ASP.NET Core.
JavaScript pro Blazor vývojáře [Alex Hájek, HAVIT Vzdělávací okénko, 12.6.2024]
Záznam ze Vzdělávacího okénka HAVIT z 12. června 2024, kde Alex Hájek procházel JavaScript tipy a triky pro Blazor vývojáře.