Category Archives: Development Tools

Claude Code CLI – sdílení zkušeností s AI [Ondřej Václavek, Vzdělávací okénko, 19.2.2026]

Claude Code CLI v praxi: AI asistent pro .NET vývojáře — zkušenosti, skills, MCP servery a workflow.

Co se dozvíte

  • Claude Code CLI jako alternativa ke GitHub Copilotu (Rider místo Visual Studio)
  • Napojení na Azure DevOps přes MCP server a implementace tasků příkazem
  • Skills v Claude Code: implement a code review — jak fungují a jak je psát
  • Správa kontextového okna — příkaz clear a práce s dlouhými sezeními
  • Plugin marketplace a ekosystém skillů v Claude Code
  • Otevřená diskuze .NET vývojářů o zkušenostech s AI nástoji

Vzdělávací okénko prezentoval Ondřej Václavek.

.NET Aspire Introduction [Martin Goffa, HAVIT Vzdělávací okénko, 12.2.2026]

Co je .NET Aspire a proč ho použít pro multiservice .NET aplikace? Orchestrace, telemetry a Service Discovery v praxi.

  • Co je .NET Aspire a co není (rozdíl oproti Kubernetes)
  • Stavební kameny: AppHost, Service Defaults, integrace a Dashboard
  • Orchestrace Docker kontejnerů bez ruční konfigurace
  • Service Discovery a centralizovaná konfigurace závislostí
  • Telemetry: logy, trasování a metriky v Aspire Dashboardu
  • Integrace Redis, PostgreSQL a RabbitMQ přes NuGet balíčky
  • Live ukázka na HAVIT Project Template s Blazorem

Vzdělávací okénko prezentoval Martin Goffa.

Integrační testy konečně správně (Testcontainers) [Ondřej Václavek, Vzdělávací okénko, 11.12.2025]

Jak psát integrační testy v .NET správně? Testcontainers spustí reálný SQL Server z Dockeru přímo z C# testovacího kódu.

  • Rozdíl mezi integračními a unit testy – kde mockování nestačí
  • Proč jsou integrační testy v CI/CD pipeline problematické a jak to řeší Docker
  • Testcontainers – NuGet balíček pro spouštění Docker kontejnerů z C#
  • Integrace s ASP.NET Core přes WebApplicationFactory
  • Izolovaná databáze per test + fast restore (řádově 100 ms)
  • Paralelní spouštění testů bez vzájemného ovlivňování
  • Podpora více kontejnerů a Docker Compose
  • Reálná ukázka nasazení z projektu Edenred

Vzdělávací okénko prezentoval Ondřej Václavek.

WASM: AggregateException_ctor_DefaultMessage (Could not resolve type with token …)

Narazili jsme po instalaci .NET 9 SDK 9.0.204 (a nepomohl ani 9.0.300) na zajímavou chybu published Blazor WebAssembly front-endů (browser console výstup, front-end nenabíhá):

ManagedError: AggregateException_ctor_DefaultMessage (Could not resolve type with token 01000024 from typeref (expected class 'System.Reflection.Assembly' in assembly 'netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'))
    at an (dotnet.runtime.5nhp1wfg9b.js:3:26894)
    at Kt.resolve_or_reject (dotnet.runtime.5nhp1wfg9b.js:3:26449)
    at dotnet.runtime.5nhp1wfg9b.js:3:172714
    at dotnet.runtime.5nhp1wfg9b.js:3:172778
    at fr (dotnet.runtime.5nhp1wfg9b.js:3:35046)
    at Fc (dotnet.runtime.5nhp1wfg9b.js:3:172361)
    at dotnet.native.swgexbmoy7.wasm:0x1f1a4
    at dotnet.native.swgexbmoy7.wasm:0x1c8ae
    at dotnet.native.swgexbmoy7.wasm:0xea19
    at dotnet.native.swgexbmoy7.wasm:0x1ec88

První podezření bylo na trimming, nicméně když to zkrátím, tak se ukázalo, že se jedná o klasický problém buildů po instalaci nového SDK – je potřeba vymazat pracovní složky build-agentů, pokud každý váš build neběží na úplně čistém prostředí, ale používáte nějakou formu inkrementálního uspořádání. Když to převedu do roviny lokálního vývoje s Visual Studiem, je potřeba udělat Clean solution a vymazat složky bin a obj.

Proč to vůbec píšu? Kdyby někoho potkala stejná chyba, při troše štěstí vygooglí tento post a ušetří si čas s diagnostikou. U nás už jsme si poměrně zvykli, že když po instalaci nové verze SDK padá build, je potřeba před dalším bádáním vymazat pracovní složky build-agentů. Poprvé v historii se nám však stalo, že build úspěšně prošel (nepadal), ale výsledek build byl „vadný“ způsobem, který se projevil až při spuštění Blazor WASM front-endu v browseru.

YAML Pipelines – Azure DevOps [Jiří Kanda, Vzdělávací okénko, 27.3.2025]

V tomto videu se dozvíte vše o našich nových YAML pipelines v Azure DevOps, které prezentuje Jiří Kanda. Jirka vysvětluje, proč jsme se rozhodli přejít na YAML pipelines a jaké výhody nám to přináší.

  • Specifika našich buildů a důvody pro změnu na YAML pipelines.
  • Výhody YAML pipelines, jako jsou lepší parametrizace a paralelizace.
  • Základní syntaxe YAML a struktura YAML pipelines.
  • Paralelní běh jobů a použití více agentů.
  • Volitelné parametry buildů a task scheduler.
  • Podpora pro integrační testy a automatické pull requesty.
  • Použití deduplication a reprodukovatelnost buildů.
  • Validace zranitelností nuget balíčků a definice pipeline v projektech.
  • Problémy s manuálním spuštěním buildů.

Záznam ze Vzdělávacího okénka HAVIT z 27. března 2025.

Go to file member (Visual Studio)

Dlouho mě trápilo, jak se ve větším souboru rychle donavigovat na membera, jehož jméno znám.

Resharper/Rider mají přímo Go to file member Alt+ \.

Visual Studio 2022 má Go to member, který má ale výchozí scope na Current solution.

Je to takový ten klasický Go to… s prefixem m:, který prostě prohledává member, ale v celé solution, ani to nedává výsledky aktuálního souboru na první místo 😭. Chybí tam jakákoliv klávesová zkratka, nebo cesta, která by to otevřela předscopované na Current file.

OVŠEM!!! Má to ovšem jednu pro mě až dnes objevenou vlastnost, která to činí použitelným (pro mě) – pamatuje si to poslední scope, a to samostatně pro jednotlivé use-case. Má to navíc stejnou klávesovou zkratku Alt + \.

Takže:

Jednou to otevřete přes Go to member (Alt+\) a změníte si scope na Current file a napříště to tam zůstane zapamatováno.

Neovlivní to však ostatní use-case. Pro Go to all (Ctrl + T) nebo Go to file (Ctrl + Shift +T) si to u mě dále pamatuje scope Current solution.

Quality of live changer! 🤣🥳

Code review [Tomáš Wagner, Vzdělávací okénko, 29.11.2023]

Záznam ze Vzdělávacího okénka HAVIT, kde Tomáš Wagner ukazoval, jak lze využít pull-requesty v Azure DevOps (Azure Repos) na organizaci code-reviews.

.NET Performance Tuning – záznam a dema [Robert Haken, WUG Days 2023.2 Brno]

Záznam z přednášky pro konferenci WUG Days 2023.2 Brno z 11. září 2023.

Starší provedení přednášky, kde je méně profilingu a více ukázek kódu, najdete též na YT:

Demo samotné najdete tradičně na GitHub: https://github.com/hakenr/PerformanceTuningDotnetCoreDemos

WebTests [Ondřej Václavek, Vzdělávací okénko, 30.6.2021]

Záznam ze Vzdělávacího okénka HAVIT, kde Ondra Václavek povídal o WebTests v Azure a ve Visual Studiu.

HAVIT GIT Workflow Standard [Robert Haken, HAVIT Vzdělávací okénko 14.4.2021]

Záznam ze Vzdělávacího okénka HAVIT z 14. dubna 2021, kde jsem prezentoval náš standard workflow pro používání GIT source control. Je publikován na našem HAVIT YouTube Channelu.

Základní pravidla workflow:

  1. Jediná vývojářská mainline = master.
  2. Rebase upřednostňujeme před merge (přehlednější historie).
  3. Release označujeme tagem „release/…“ (typicky do master).
  4. Hotfixování = v branch „release/…“ z nasazeného commitu (dle version.txt nebo release-tagu) + nový release tag + merge do master + delete branch
  5. Feature branching („feature/…“) pouze ve vybraných situacích, pokud vím co chci, proč to dělám a umím to.
  6. V lokálním repo se invencím meze nekladou, chceme však Continuous Integration (např. častý rebase)