Miroslav Holec

Software & Cloud Architect

miroslavholec.cz / blog

Web ~ Blog

Články o hostování webových aplikací a compute službách v prostředí Azure

Superčitelný kód s neproporciálním fontem a ligaturami

6. září 2017

Kolega mi nedávno ukázal zdrojový kód s neproporciálním fontem používajícím ligatury. Právě ligatury (česky slitky) mě velmi zaujaly. V minulosti i dnes se ligatury používají pro určité dvojice písmen...

Redis Cache

Úvod do Redis a praktické návrhové vzory
WUG Praha 2017

31. srpna 2017

Redis je moderní NoSQL úložiště párů klíč-hodnota, které umožňuje nad vestavěnými datovými typy provádět různé atomické operace. Nejedná se pouze o nástroj pro cachování, ale o komplexní úložiště, kte...

Redis Cache

10 funkcí v Redis, které musí každý vývojář znát

28. srpna 2017

Redis je vývojářským světem často považována pouze za primitivní cache. Ve skutečnosti je ale mnohem mocnější a nabízí celou řadu zajímavých funkcí, které její využití řádově zvyšují. V tomto článku p...

Přednášky

ASP.NET Core RESTful Web API
TechEd - DevCon 2017

18. května 2017

ASP.NET Core je silným frameworkem, pomocí něhož dokážete vedle webových aplikací stavět i RESTful aplikační rozhraní a servírovat klientům data dle své potřeby. Přijďte se podívat, co všechno ASP.NET...

MVC 6 neexistuje! Ať žije ASP.NET Core!

7. května 2017

Vývoj ASP.NET Core trval Microsoftu skutečně dlouhou dobu. Restart platformy, o kterém se tolik mluvilo a mluví byl dost živelný a především chaotický. Když jsem se zpětně díval na články z posledních...

App Service

Přístup ke konkrétní App Service instanci a ARR Affinity

21. března 2017

Kudu je užitečný online nástroj, který umožňuje sledovat nastavení webové aplikace, prostředí, procesů a zasahovat do určité míry i do úložiště dat. Jak se ale pomocí Kudu podívat na nastavení konkrét...

App Service

Microsoft Azure Workshop
Barcamp Hradec Králové 2016

15. října 2016

Barcamp se konal letos i v Hradci Králové a kromě řady motivačních přednášek mi poskytl téměř 3 hodinový slot pro praktické představení Microsoft Azure. Příležitosti jsem využil pro ukázku nastavení s...

App Service

Jak na logování v Azure App Service

24. července 2016

V posledních měsících jsem se hodně věnoval diagnostice webových aplikací s využitím služby Application Insights. Co když ale Application Insights z nějakého důvodu nepoužíváte a přesto potřebujete za...

Jak na číselníky v ASP.NET MVC a EF

20. června 2016

V řadě MVC / EF aplikací jsem se setkal s různými praktikami, jak pracovat s číselníky. V tomto článku popíšu postup, který se osvědčil mně samotnému ve většině aplikací. Protože se jedná o řešení pos...

Nastavení JSON formatteru v API dle klienta

16. března 2016

Stalo se vám, že jste potřebovali vracet JSON data v odlišném formátu podle toho, jaký klient se dotazuje na vaše API? Pokud ano, velmi snadno se dá tento "problém" vyřešit pomocí ActionFilter atribut...

App Service

Vyzkoušejte si nejnovější release PHP 7.0.4

14. března 2016

Nová verze jazyka PHP 7 s sebou přináší vyšší výkonnost, redukci využití paměti a řadu zajímavých funkcí. Poslední dostupnou verzí je PHP 7.0.4, která byla vydána 3. března. Pokud si ji chcete osahat,...

App Service

Wordpress v cloudu krok za krokem

3. března 2016

V tomto článku ukážu, jak nasadit a provozovat redakční systém Wordpress v cloudovém prostředí Microsoft Azure zdarma a to včetně pokročilé diagnostiky aplikace. Ukážu, že i bez znalostí cloudového pr...

Jaký zvolit celočíselný datový typ? Skoro vždy integer

1. března 2016

Řešíte při vývoji aplikací primitivní datové typy? Víte, kdy použít integer a kdy dát přednost typu byte? Pokud totiž nad podobnými otázkami neuvažujete, dost možná je Váš kód oproti přemýšlivým koleg...

Application Insights

Pokročilý monitoring a diagnostika PHP aplikací

7. února 2016

Před více než dvěma lety spatřila světlo světa služba Application Insights. Netrvalo dlouho a ukázalo se, že se jedná o velmi mocný nástroj pro monitorování dostupnosti a stavu webových i mobilních ap...

Zrádná metoda ToDictionary a rozhraní IQueryable

24. listopadu 2015

Pokud s pomocí Entity Framework často selectujete data z databáze do dictionaries, pravděpodobně pro tento účel používáte extension metodu ToDictionary. Je to ale s ohledem na výkonnost správné? O tom...

Code First initializers a migrace - kompletní přehled

18. listopadu 2015

Entity Framework: Code First nabízí celou řadu možností, jak inicializovat databázi a spravovat ji vzhledem k aplikačnímu kódu. V tomto článku objasním všechny možnosti a principy, které Code First na...

Entity Framework a optimalizace dotazů

19. října 2015

Přestože Entity Framework značně usnadňuje práci s relační databází, existuje řada témat, která souvisí s výkonnostním hlediskem a která by měl vývojář při implementaci EF znát. Pokud Vás trápí výkonn...

Budoucnost Entity Framework Code First

14. října 2015

Entity Framework je tu s námi již několik let a pro nově vznikající aplikace se stává volbou číslo jedna při volbě vhodného ORM nebo obecného řešení přístupu k datům v relační databázi. Dnes se už opo...

Nastavení Visual Studio diff merge toolu pro práci s Gitem

11. srpna 2015

Vývojáři na platformě .NET jsou zvyklí na excelentní mergovací nástroj Visual Studia. Ten nabízí přehledné vizuální rozhraní pro porovnávání a mergování různých typů souborů. Ne každého ale napadne, ž...

AutoMapper do robustního kódu nepatří

22. července 2015

AutoMapper je celkem chytrý nuget package, který umožňuje velmi snadno provádět mapování mezi objekty. Nejtypičtější použití je při mapování datových entit na různé data transfer objekty, například Vi...

Vyzkoušejte IoC kontejner AutoFac

12. července 2015

Přestože jsem více než 2 roky pracoval s Castle Windsor, poslední dobou mi stále častěji pod rukama probíhá kontejner AutoFac. V tomto článku shrnu vybrané vlastnosti a možnosti nastavení.

Odstraňování dat v Entity Framework bez preloadu

20. června 2015

Setkal jsem se se zajímavým dotazem ohledně odstraňování dat pomocí Entity Frameworku. Standardní chování EF je totiž takové, že pokud chci data odstranit, musím je nejprve načíst do kontextu. Načítat...

DNVM, DNX, DNU a správa NuGet packages

26. května 2015

Pokud sledujete novinky kolem nového ASP.NET 5 (viz. můj článek o novinkách pro webové vývojáře), pak si zřejmě pokládáte i otázku, jak Microsoft zařídil, aby bylo možné pracovat s .NET Frameworkem na...

Statické třídy, extension metody a fluent API

3. března 2015

Na poslední přednášce Novinky v C# jsem zjistil, že mnoho vývojářů neví o možnosti využití statických tříd k psaní extension metod a fluent API. V tomto článku napíšu něco málo o statických třídách a ...

Novinky v C# a kejkle s Roslynem

23. ledna 2015

V tomto článku se pokusím velmi stručně naznačit, jaké zásadní novinky přináší nová verze jazyka C# 6.0. Také se zmíním o novém compileru Roslyn a připíšu některé tipy s ním související. Zároveň zde u...

Cloud Services

Azure Worker role a Quartz.NET

16. ledna 2015

Pokud hledáte efektivní způsob spouštění naplánovaných úloh, který bude svázán s webovou aplikací a zároveň používáte Windows Azure Cloud Services, není nic snazšího, než vytvořit Worker Roli. V článk...

Náhodná čísla a třída Random

10. ledna 2015

Zaujaly mě některé otázky na Stack Overflow, které souvisí s tím, nakolik jsou čísla generovaná pomocí třídy Random v .NET náhodná. Protože je toto téma celkem často opírané, rozhodl jsem se k tomu na...

C# reflexe - praktické snippety

21. prosince 2014

V minulosti jsem psal některé konzolové aplikace, které za běhu byly schopné pracovat s nově připojenými assemblies, načítat různé programy a nad nimy následně spouštět různé metody. Řekl bych, že jse...

Webová architektura orientovaná na služby

19. prosince 2014

Dnes popíšu celkem jednoduchou architekturu pro vývoj webových aplikací, která je založena na kombinaci několika návrhových vzorů a myšlenek. Zároveň tato architektura abstrahuje od použití některých ...

Ověření KeyValuePair is NULL

29. října 2014

KeyValuePair je velmi primitivní struktura, která se skládá z klíče a hodnoty (generické typy). Používá jej například Dictionary, která je v podstatě kolekcí těchto párů. Samotný KeyValuePair toho moc...

RESTful API Design

28. října 2014

Routování v MVC umožňuje zpracování URL friendly requestů a jejich následné delegování správným metodám správných controllerů včetně předání příslušných parametrů. Všechny routy jsou ukládány v RouteC...

Web API XML Serializer

27. října 2014

Při práci s aplikačním rozhraním preferuji formát JSON pro jeho srozumitelnost a úspornost. Přesto se občas hodí mít API nastavené i pro podporu formátu XML a plně tak podporovat content negotiation d...

MVC Model Binding

29. září 2014

Model Binding je přímé mapování request values na properties, resp. parametry action metod. Výhoda Model Bindingu spočívá především při odesílání dat na server. Běžně se používají tři odlišné způsoby ...

Globální filtry MVC vs. Web API

19. září 2014

Registrace globálních filtrů u MVC projektů a projektů Web API se trochu liší. Zde je shrnutí rozdílů, ukázané na filtru použitelném pro logování chyb.

MVC Routing - Úvod

8. září 2014

Routování v MVC umožňuje zpracování URL friendly requestů a jejich následné delegování správným metodám správných controllerů včetně předání příslušných parametrů. Všechny routy jsou ukládány v RouteC...