Vývoj Blazor Hybrid aplikace (MAUI)
Poslední neprozkoumaná oblast Blazoru pro mě byla donedávna Blazor Hybrid. Zatímco Blazor Server běží na serveru a Blazor WebAssembly v prohlížeči, Blazor Hybrid je zahostován v komponentě BlazorWebVi...
Poslední neprozkoumaná oblast Blazoru pro mě byla donedávna Blazor Hybrid. Zatímco Blazor Server běží na serveru a Blazor WebAssembly v prohlížeči, Blazor Hybrid je zahostován v komponentě BlazorWebVi...
I tento rok se koná mnoho zajímavých akcí. Pro přehlednost jsem vytvořil tabulku vybraných konferencí a událostí na podzim 2024. Pod tabulkou dále uvádím vlastní komentář. Bližší informace o akcích pl...
Blazor doznal ve verzi .NET 8 zásadních změn, díky kterým se stal velmi univerzální technologií pro stavbu webových aplikací. V tomto článku bych chtěl nastínit několik záludností, na které se doporuč...
Poslední týdny aktivně rozšiřuji obsah sekce Premium o nová videa. Z původního balíčku videozáznamů se tak stává postupně videotéka s velmi aktuálním obsahem, který doplňuje má oblíbená firemní školení. Videa se zaměřují na nadčasová témata, kterým věnuji více péče, než kdy dříve.
Nová Premium videa jdou více do hloubky, obsahují mnoho doplňujících vizuálních prvků a jsou dostupná ve 4K kvalitě s obrazem ostrým jako břitva.
Snažil jsem se splnit přání většiny současných předplatitelů, kteří preferují spíše delší obsah. Tématicky se držím především .NET platformy.
Budoucí témata se budou i nadále držet jádra platformy, vývoje REST API a C#. Vzhledem k zájmu o EF Core plánuji dále navázat krátkým seriálem zaměřeným právě na tento ORM. Prostor chci věnovat i tématu zabezpečení. Pokud jsou Vám tato témata blízká, předplatné Vám udělá dobrou službu. Naopak témata zaměřená na Azure nebo DevOps chci upozadit.
Nejen, že se podařilo během roku přehoupnout přes 50 odběratelů, ale také jsem tento měsíc spustil firemní předplatné. V rámci jediného předplatného tak nyní může do Premium sekce vstoupit celý vývojářský tým. Cena je více než přívětivá (od 4.990 Kč za rok) a v případě zakoupení školení platí cena na celé dva roky.
Vím, že nákup předplatného na rok dopředu může být pro někoho cestou do neznáma. Chci být proto maximálně transparentní a nasdílet aktuální publikační plán. Netvrdím, že plán dodržím na 100 %, ale několik posledních týdnů se to daří. Průběžně aktualizovaný plán najdete na sharepointu níže.
Byl jsem hostem nové epizody podcastu ProgramHRování. S Vojtou a Šárkou jsme rozebrali spoustu zajímavých témat třeba k čemu je dobré mít IT konzultanta nebo aktuální stav .NET světa. Máte se na co těšit!
Epizodu si můžete poslechnout níže nebo na všech podcastových platformách. Bonusová část je na Forendors podcastu ProgramHRování.
Před pár dny jsem dostal zpětnou vazbu k mému Premium a k webu. Součástí byl i zajímavý podnět, že by nebylo špatné přidat do Premium účtu dark mode (tedy tmavý režim). U videa to pochopitelně už nezm...
Dnes jsem byl již osmý rok po sobě oceněn jako Microsoft MVP za přínos vývojářské komunitě. Za poslední rok jsem připravil více než 10 přednášek zaměřených na .NET, REST API a Blazor. Přednášel jsem pro WUG v Praze, Brně i ve Zlíně. Vytvořil jsem mnoho video obsahu, který najdete na mém YouTube kanále. Oživil jsem také podcast Háčko, který můžete poslouchat například na Spotify. Také jsem rozšířil můj Blog zde na webu. Nově tu najdete i různé technologické ukázky a code snippety. Nadále vydávám občasník Dotnet News,který můžete zdarma odebírat.
Od minulého měsíce natáčím nová videa do Premium sekce ve 4K kvalitě, kterými doplňuji má nejoblíbenější školení. Jedná se o témata související s .NET vývojem, návrhem a vývojem REST API a s technologií Blazor. To jsou zároveň klíčová školení, která neustále aktualizuji a doručuji do dnes již více než 200 firem.
Stream Rendering je power feature v Blazoru. Všude funguje spolehlivě, ale v Azure App Service z neznámého důvodu ne. Po delším zkoumání jsem zjistil, že podobný problém má v různých situacích mnoho vývojářů. Když Stream Rendering nefunguje, čeká se na provedení celé metody OnInitializedAsync
a teprve poté se aktualizuje DOM finálním HTML.
Jednotný lék je přenastavit Content-Encoding
. Na začátek middleware pipeline jsem tedy přidal middleware, který hlavičku nastaví (nemá to dále nemá vliv na statické soubory, API response atd.). Hodnota identity
indikuje, že se žádná komprese nepoužije.
public class ContentEncodingMiddleware(RequestDelegate next)
{
public async Task InvokeAsync(HttpContext context)
{
context.Response.Headers.Append(HeaderNames.ContentEncoding, "identity");
await next(context);
}
}
Pokud někdo něco podobného řeší, další přičinou může být i response buffering, který je pro stream rendering též nežádoucí.
Blazor přinesl do .NET 8 naprosto zásadní změny. Na základě komunikace s vývojáři jsem se rozhodl koncept mého školení upravit do takové podoby, aby si každý tým přišel na své. Zkrátka univerzální tec...
Již v pátek se koná tradiční celosvětová akce Global Azure Bootcamp. Díky organizátorům Update Conference společně s firmou HAVIT a WUG Praha se můžete v pátek osobně účastnit setkání v pražském Microsoftu, kde na vás čeká 12 přednášek rozdělených do dvou místností. Těšit se můžete i na mou přednášku o Pokročilém logování v Application Insights. Registrujte se zdarma a přijďte se podívat, třeba jen na pár přednášek.
Před pár dny byla vydána nová verze JetBrains Rider a s ní několik zajímavých funkcionalit. Rider používám na denní bázi a většinu z nových funkcí jsem měl již možnost vyzkoušet. V tomto článku se na ...
Přesně za měsíc (14. května 2024) Microsoft přestane servisovat .NET 7. Tato verze byla vydána v rámci tzv. standard term supportu s podporou 18 měsíců. Co to znamená pro vaše aplikace? Aplikace, které běží v bezpečí firemní infrastruktury můžete nadále provozovat i bez supportu. Je-li pro vás zabezpečení důležité nebo běží-li aplikace veřejně, měla by být zmigrována na aktuální .NET 8. Ten bude záplatován až do konce roku 2026. Pro dosluhující .NET 7 již nebudou od 14 . května vydány žádné (ani bezpečnostní) záplaty.
Chcete migrovat na .NET 8 a potřebujete se zorientovat v novinkách? Využijte mé školení Novinky v .NET 8 a C#.
Oblast umělé inteligence by měl alespoň periferně sledovat každý vývojář. V záplavě nezajímavých zpráv a tun zbytečných nástrojů se totiž občas objeví i důležitá sdělení nebo aplikace. Připravil jsem ...
Jak validovat GUID? Krátký článek od Osman Sokuoglu popisuje typické metody a výkonnostní rozdíly. Dle očekávání nejlépe vychází použití TryParse metod nebo regulárních výrazů. V případě regulárních výrazů pak novinka z .NET 8 (Generated Regex). Zajímavé ale je, jak velmi neefektivní jsou ostatní metody.
Jednoduché, čitelné a výkonnostně optimální je obyčejné řešení:
Guid.TryParse(input, out Guid _);
Jak měří Application Insights v Blazoru zapnutý SSR [StreamRendering]
? Dle očekávání se čeká na dokončení celého streamování, takže celkový response time odpovídá finální vykreslené verzi HTML. Čas prvního naservírování HTML si musí každý změřit sám.
Zdaleka ne každý vývojář ví, že má přístup k magazínu CODE. Ten standardně stojí 20 USD ve své digitální verzi. Přístup zdarma máte tehdy, pokud vlastníte Visual Studio Dev Essentials subscription. Zjistíte to na stránce my.visualstudio.com. Magazín vychází každé 2 měsíce a je ke stažení nejen v PDF, ale i jako MOBI nebo si ho lze přečíst online. Verze PDF vypadá nejlépe.
Já už jsem zapomněl, že přístup mám. Aktuální číslo je obsahově docela slabé.
Na mnoha projektech používám Redis a před pár dny jsem objevil pěknou náhradu za dosavadní dosluhující Redis Desktop Manager. Klient RedisInsight nabízí moderní GUI, podporuje Azure Redis a má vestavěný CLI i profiler. Ke stažení je pro všechny platformy zdarma.
Technologie pro vývoj webových aplikací od Microsoftu si prošly dlouhým vývojem. Od ASP, přes WebForms a MVC až po současný ASP.NET Core, který podporuje několik přístupů k tvorbě webu. Zatímco třetí ...
Od neděle běží web na technologii Blazor SSR. Na větší analýzy je ještě brzo (zejména nevím jak zareagují vyhledávače), ale response time serveru je super. Pomohlo nasazení cache, ale i efektivnější design s pomocí komponent.
Jak jste si všimli, celý můj web je v novém kabátě. Používám technologii Blazor SSR vydanou v NET 8. Rád bych v bodech nasdílel pár postřehů z praktického programování.
(~/img.jpg)
, takže i zde chybí přirozená kontrola existence souboru ve wwwroot
.[SupplyParameterFromQuery]
nebyl ochotný vzít číselnou hodnotu a zparsovat ji na řetězec. Opačně bych to chápal, ale není dobré mít v query parametru něco, co může mít hodnotu jako řetězec i číslo. Třeba telefonní číslo "773272767" vs "+420..." už může být problém.InputSelect
ve formuláři, tak se mi nevybere automaticky správná OPTION při two-way bindingu. U Blazor Server to fungovalo. Musím tedy ručně přidat vlastnost "checked" a hodnotu true/false dopočítat.TrackPageView()
, ale tato událost logicky nenastane při klikání na jiné stránky, protože se neobnovuje celá stránka, ale pouze se aktualizuje DOM. Zatím mám AI pouze na serveru. Řešením bude najít nějaký init script a dát ho do App a v App pak reagovat na událost "enhanceload" a v této události zavolat TrackPageView()
.