Architektura software
Správný návrh architektury je nezbytný pro to, aby se práce na projektu nezměnila v peklo. Na dotNETcollege nabízíme několik kurzů, kde se zabýváme návrhovými vzory, návrhem informačních systémů a databázových aplikací, IoC/DI kontejnery a mnoha dalšími tématy.
Zabezpečení web serveru (ServerSec)
- Teoretický úvod
- Čtyři hlavní zásady bezpečnosti
- Pyramida bezpečnosti – operační systém, web server, komunikace, aplikace
- Obvyklé typy bezpečnostních hrozeb (STRIDE)
- Hodnocení závažnosti (DREAD)
- Konfigurace operačního systému
- Obecná pravidla, 3D
- Použití SCW
- Bezpečná konfigurace IIS pro hosting
- Jak funguje IIS, nastavení application poolu, identita, oddělení aplikací od sebe
- Nastavení hostingového serveru pro bezpečný hosting oddělených aplikací
- Nastavení Web Management Service + vzdálená správa
- Zabezpečení přenosového kanálu
- Proč ho potřebujeme
- Ukázka MitM útoků, SSLStrip
- Jemný úvod do asymetrické kryptografie
- Symetrická versus asymetrické kryptografie
- Výměna klíčů pomocí D-H
- RSA a certifikáty
- Funkce certifikační autority
- Konfigurace HTTPS v IIS
- Co je HTTPS, SNI...
- Druhy certifikačních autorit
- Žádost o certifikát, instalace na serveru
- SSL Test
- Nastavení parametrů HTTPS, HSTS
- Centralized Certificate Store
- Let’s Encrypt CA a AutoACME
Zabezpečení webové aplikace (Websec)
- Teoretický úvod
- Čtyři hlavní zásady bezpečnosti
- Pyramida bezpečnosti – operační systém, web server, komunikace, aplikace
- Nejčastější chyby webových aplikací
- Představení OWASP
- Aktuální OWASP Top 10
- Cross-Site request forgery (CSRF)
- Obrana v ASP.NET Web Forms
- Obrana v ASP.NET MVC 5
- Obrana v ASP.NET MVC Core 1.x
- Injection útoky (XSS, SQLi)
- Obrana v ASP.NET Web Forms
- Obrana v ASP.NET MVC 5
- Obrana v ASP.NET MVC Core 1.x
- Možnosti bezpečného zadávání formátovaných dat
- Autentizace ve webových aplikacích
- Autentizační faktory
- ASP.NET Identity
- Základní použití
- Bezpečný reset hesla
- Přihlášení pomocí externích IdP
- Použití jednorázových hesel
- Klientské certifikáty
- Použití klientských certifikátů na webu
Úvod do praktické kryptografie (CryptoSec)
- Teoretický úvod
- Hashování, HMAC
- HMAC v ASP.NET
- Symetrická versus asymetrická kryptografie
- Symetrická kryptografie
- Princip fungování, symetrické klíče
- Derivace klíčů, purposes
- Použití symetrické kryptografie v ASP.NET
- Machine Keys v ASP.NET 4.x
- ASP.NET Core Data Protection
- Obecná symetrická kryptografie pomocí knihovny Inferno
- Asymetrická kryptografie
- Princip fungování
- Volba algoritmů, délky klíčů
- Certifikační autority, práce s certifikáty
- Provoz vlastní certifikační autority
- Hierarchie CA
- Funkce CRL
- Vytvoření vlastní CA struktury
- Asymetrická kryptografie v .NET
- Vytvoření a ověření elektronického podpisu
- Zabezpečení komunikace pomocí ECDH + Inferno
Základní návrhové vzory (C142)
Na tomto kurzu si projdeme základní návrhové vzory (známé jako GoF) a ukážeme si je na praktických příkladech. Ukážeme si také nejčastější omyly, které se při jejich používání vyskytují.
Pokročilé návrhové vzory (C143)
Na tomto kurzu si ukážeme pokročilejší návrhové vzory, a to jak z oblasti Enterprise Architecture, tak i návrhové vzory, které se používají pro řešení prezentační vrstvy (MVC, MVVM atd.) nebo celé architektury aplikace.
Používáme IoC/DI kontejnery (C125)
Na začátku kurzu si vysvětlíme, k čemu se IoC/DI kontejner používá a jak jej používat správně, proč není většinou dobrý nápad degradovat jej na service locator atp. Ukážeme si prakticky, jak funguje kontejner Castle Windsor a jaké možnosti nám nabízí.
Microsoft SQL Server - optimalizace struktur a dotazů (C116)
Microsoft SQL Server je jeden z nejpoužívanějších relačních databázových systémů. Na tomto kurzu vysvětlím základy způsobů ukládání dat uvnitř databázových souborů a postupy, jak správně navrhnout strukturu databáze s ohledem na ukládaná data a požadovaný výkon. Zaměříme se z velké části také na pochopení základních algoritmů zpracování dotazů a čtení exekučních plánů.
Domain-Driven Design (.NET) (C165)
vypsány termínyV rámci tohoto praktického kurzu se důkladně seznámíme s přístupem Domain-Driven Design (DDD), který je klíčový pro efektivní návrh a implementaci komplexních softwarových systémů. Prozkoumáme základní principy DDD, jako jsou modelování domény, agregáty, entitní objekty, hodnotové objekty a doménové události. Naučíme se, jak tyto koncepty aplikovat v praxi a jak je správně implementovat v .NET ekosystému.
Asynchronní, vícevláknové a paralelní aplikace (C152)
Na tomto kurzu posunete své znalosti pro asynchronní, vícevláknové a paralelní aplikace, a samozřejmě i zamykání, synchronizace a efektivitu jednotlivých rešení.
Používáme IoC/DI kontejnery na .NET Core (C156)
Na začátku kurzu si vysvětlíme, k čemu se IoC/DI kontejner používá a jak jej používat správně, proč není většinou dobrý nápad degradovat jej na service locator atp. Ukážeme si prakticky, jak funguje kontejner Autofac a jaké možnosti nám nabízí.
Vývoj webových aplikací v Angular 2+ (C159)
Angular je ověřená populární platforma pro tvorbu moderních webových aplikací. Byla vytvořena a je spravována společností Google. Nabízí možnost vyvíjet komponenty a služby v jazyce TypeScript, deklarativně vytvářet šablony a nejen pomocí bindingu, dependency injection nebo routingu aplikaci rozpohybovat v klientském prohlížeči i na serveru. Oproti své první verzi, označované jako AngularJS nebo Angular 1, nabízí řadu vylepšení a změnu některých konceptů.
Kontejnery, Docker a Azure Kubernetes Service (AKS) (C162)
V posledních letech se čím dál více aplikací přesouvá do kontejnerů a hostuje v Kubernetes. Výhodou tohoto způsobu je především sjednocení způsobu nasazování aplikací, ať už jsou psány v různých technologiích anebo jazycích, a zároveň unifikovaná správa těchto aplikací a jejich provozování. Pro vývojáře je potom hlavním přínosem vyšší předvídatelnost a reprodukovatelnost kompilací, testů, a odstranění syndromu "works on my machine". Docker a Kubernetes jsou oblíbené zejména ve světě microservices aplikací a startupů, ale své místo si nacházejí i ve středních a větších firmách.
Návrh distribuovaného systému pomocí DDD, Event Sourcing a CQRS (C164)
V kurzu se seznámíme s problematikou návrhu distribuovaného systému na platformě .NET. Naučíme se, jak přistupovat k návrhu domény pomocí Domain Driven Design, kde je kladen důraz na pochopení problematiky a procesů od doménového expera až po vývojáře . Vysvětlíme a ukážeme si jak pomocí Event Sourcingu více rozšířit význam doménových událostí - ať už pro ukládání stavu objektu, nebo informování ostatních o proběhnuté akci, na kterou můžou dále reagovat. To celé bude řídit CQRS, kde zodpovědnost rozdělíme na čtecí a zapisovací části systému.
Vyberte si kurz z nabídky našich témat
Hledáte kurz na téma, které v nabídce nemáme?
- Vyberte si libovolná témata z oblasti vývoje v .NETu nebo na webu
- Osnovu kurzu sestavíme společně dle požadavků a zkušeností vašeho týmu
- Lektor přijede za vámi kamkoliv v Česku nebo na Slovensku
- Během kurzu se můžeme věnovat konkrétním problémům, které řešíte na projektu