Při práci s nástroji jako Entity Framework (EF) Core a Dapper se vývojářům otevírá řada možností pro správu databázového modelu, provádění migrací, a optimalizaci výkonu aplikací. Tyto nástroje umožňují efektivně pracovat s databázemi, přičemž každý z nich má své silné stránky a specifika. V této kapitole se zaměříme na efektivní používání těchto nástrojů, jejich výhody a způsoby jejich kombinace pro dosažení optimálního výkonu a udržitelnosti aplikace.
První krok při práci s EF Core je vytvoření migračních tříd, které jsou generovány automaticky. Jak ukazuje příklad v projektu, EF Core vytvoří sadu souborů ve složce Migrations, které reprezentují změny databázového modelu. Tyto třídy nesmí být měněny ručně, protože jsou generovány automatizovaným procesem, a jakékoli úpravy by mohly vést k nesouladu mezi modelem a skutečnou strukturou databáze. Příkladem je soubor InitialDatabase.cs, který obsahuje skripty pro vytvoření tabulek a definici jejich sloupců a primárních klíčů. Takto definované změny pak mohou být aplikovány na databázi pomocí nástroje EF Core CLI.
Jakmile je migrace připravena, databáze může být aktualizována prostřednictvím příkazu dotnet ef database update, který použije skripty generované EF Core k vytvoření požadovaných objektů v databázi. Tento přístup usnadňuje správu verzí databáze a umožňuje hladké provádění změn v aplikaci bez nutnosti manuálně spravovat SQL skripty. Jakmile je databáze připravena, přichází čas na přidání API rozhraní pro interakci s databází. Vytvoření RESTful API je usnadněno pomocí .NET Core, což umožňuje implementaci metod jako MapGet nebo MapPost, které umožňují efektivně pracovat s daty v tabulkách, například s tabulkou Customers.
Zvláštním aspektem tohoto přístupu je využití asynchronních metod a zrušení požadavků pomocí tokenů. Asynchronní metody jsou nezbytné pro dosažení vysoké škálovatelnosti aplikace, protože umožňují serveru efektivně zpracovávat více požadavků současně, aniž by došlo k zablokování vláken při operacích jako je dotazování na databázi nebo přístup k souborům. Tímto způsobem může aplikace reagovat na vysoké zatížení a zajistit lepší výkon. Použití tokenů pro zrušení požadavků pak dává aplikacím flexibilitu při správě prostředků a zajištění jejich správného uvolnění v případě zrušení operace.
I když EF Core nabízí vysokou úroveň abstrakce pro práci s databázemi, nemusí vždy poskytovat nejlepší výkon pro všechny aplikace. Pro specifické scénáře, kdy je výkon klíčovým faktorem, se doporučuje použití tzv. Micro ORM, jako je Dapper. Dapper je mikro ORM, který poskytuje rychlý a flexibilní způsob, jak komunikovat s databází. Tento nástroj umožňuje efektivní mapování databázových entit na objekty v C#, což je velmi výhodné pro aplikace, kde je kladen důraz na výkon a jednoduchost.
Použití Dapperu je jednoduché a efektivní. K instalaci Dapperu do projektu stačí spustit příkaz dotnet add package Dapper a následně můžete začít implementovat databázové dotazy. Dapper umožňuje například jednoduché dotazování na databázi pomocí SQL příkazů, které jsou přímo zapsány v aplikaci, což umožňuje vývojářům mít plnou kontrolu nad prováděnými dotazy. Tento přístup se může hodit zejména v situacích, kdy je třeba provádět komplexní dotazy nebo optimalizovat výkon.
Dapper a EF Core nejsou vzájemně výlučné technologie. Naopak, jejich kombinování v jednom projektu může přinést nejlepší výsledky, kdy EF Core pokrývá složité operace a migrace, zatímco Dapper se používá pro rychlé a výkonné dotazy. Při implementaci Dapperu do aplikace můžete vytvořit nové trasy, které využívají tento nástroj pro získání dat z databáze. Například metoda, která získává všechny zákazníky, může vypadat takto:
Tento přístup nejenže zjednodušuje kód, ale zároveň umožňuje plnou kontrolu nad vykonávanými SQL dotazy. Dapper poskytuje nízkou režii, a tak je ideální pro aplikace, kde je výkon kritický.
Nakonec, je důležité si uvědomit, že každý nástroj má své výhody a omezení, a výběr mezi EF Core a Dapperem závisí na konkrétních požadavcích projektu. EF Core je skvělý pro komplexní aplikace, kde je potřeba provádět migrace a složité operace nad objekty, zatímco Dapper je výborný pro rychlé a efektivní dotazy, kde je výkon na prvním místě. Kombinace těchto nástrojů může výrazně zvýšit produktivitu vývoje, a to jak z hlediska snadnosti použití, tak z hlediska výkonu aplikace.
Jak publikovat aplikaci v cloudovém prostředí s využitím Azure
Přesun aplikace do cloudového prostředí přináší značné výhody, zejména pokud jde o flexibilitu, dostupnost a bezpečnost. Azure, jako cloudový poskytovatel, umožňuje vývojářům využít dynamické schopnosti infrastruktury a zároveň se soustředit na kontext aplikace a obchodní cíle. V tomto textu se zaměříme na publikování aplikace ve službě Azure, konkrétně na příkladu aplikace UrlShortener postavené na ASP.NET Core 9.
Využívání platformy jako služby (PaaS) přináší výhody v podobě minimalizace údržby infrastruktury a poskytuje robustní nástroje pro nasazení, škálování a zajištění aplikací. Azure App Service je jedním z nejefektivnějších nástrojů pro publikování aplikací v cloudu, protože umožňuje vývojářům soustředit se především na kód, aniž by se museli zabývat konfigurací serverů a dalších souvisejících technických aspektů.
Vytvoření prostředí v Azure
Prvním krokem při publikování aplikace do Azure je vytvoření příslušného prostředí. Využíváme Azure App Service, což je plně spravovaná platforma pro nasazení webových aplikací, mobilních backendů a RESTful API. Tento přístup umožňuje vývojářům psát kód v libovolném jazyce a zaměřit se především na logiku aplikace, nikoliv na správu serverů.
Při konfiguraci aplikace je kladeno důraz na správné nastavení parametrů pro službu. Vybereme verzi runtime .NET 9 (LTS) a operační systém Linux, což je často volená varianta, ale závisí to na specifických požadavcích aplikace. Pro tento účel budeme používat základní cenový plán (Basic B1), který je dostatečný pro naše potřeby.
Konfigurace databáze v Azure
Při práci s aplikací, jako je UrlShortener, je nezbytné mít připojenou databázi pro uchovávání zkrácených URL. V tomto případě využíváme Azure SQL Server, který poskytuje prostředí pro hostování databází. Je však důležité si uvědomit, že databázové služby Azure jsou ve výchozím nastavení veřejně nepřístupné, a proto je nutné provést některé konfigurace, které umožní přístup k databázi z naší aplikace.
Používáme Entity Framework Core k aktualizaci databáze, přičemž je nezbytné provést správné nastavení připojení k databázi a nakonfigurovat ji podle potřeb aplikace.
Zajištění bezpečnosti a monitorování
Přestože v tomto kroku nezačneme s monitorováním aplikace, je dobré si být vědom toho, že pro produkční aplikace by měla být implementována funkce pro monitorování výkonu a bezpečnosti prostředí, jako je například Azure Application Insights. I když tuto funkci neaktivujeme ihned, je doporučeno ji implementovat ve fázi po publikování pro efektivní sledování chyb a výkonu aplikace.
Po dokončení konfigurace všech potřebných služeb a nastavení připojení k databázi, můžeme přistoupit k samotnému publikování aplikace.
Publikování aplikace
Publikování aplikace na Azure spočívá v několika jednoduchých krocích. Po vytvoření aplikace a databázových zdrojů v Azure, stačí kliknout na tlačítko „Vytvořit“ a počkat, až bude služba připravena. Po dokončení procesu se zobrazí URL adresa, pod kterou bude aplikace dostupná veřejnosti. Azure automaticky generuje výchozí doménu, kterou lze v budoucnu přizpůsobit.
Tento proces může být považován za základní krok k nasazení aplikace do cloudového prostředí. Avšak pro efektivní a bezpečné provozování aplikace je nezbytné správně konfigurovat a monitorovat databázi, implementovat pravidla pro škálování a optimalizaci nákladů.
Důležité je rovněž si uvědomit, že každé cloudové prostředí nabízí širokou škálu nástrojů a možností, které mohou být v budoucnu použity pro zlepšení výkonnosti aplikace. Azure například poskytuje různé možnosti pro automatické škálování a geografické rozložení aplikací, což může přispět k vyšší dostupnosti a lepšímu výkonu aplikace.

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский