PV179 – Organizácia kurzu Martin Macák 19.9.2023 Fakulta informatiky, Masarykova univerzita, Brno Vstupné predpoklady Nutné znalosti na úrovni: ∙ PV178 - Úvod do vývoje v C /.NET ∙ PB154 - Základy databázových systémů Odporúčané predpoklady: ∙ PB007 - Softwarové inženýrství I ∙ základy HTML ∙ radosť z programovania O nás ∙ Ph.D. študent, ∙ Lasaris lab, ∙ FI senátor, ∙ WUG, ∙ SAP Signavio, ∙ Koordinuje prednášky. ∙ Ing. študent, ∙ Lasaris lab, ∙ Web Dev, ∙ Kysučan, ∙ PUXdesign.cz, ∙ Koordinuje cvičenia. Čo sa naučíme? ∙ Pracovať s databázou ∙ Premýšľať nad architektúrou aplikácie ∙ Mnoho návrhových vzorov ∙ Best practices ∙ Tvoriť webové aplikácie ∙ Omnoho viac :) Používané technológie ∙ C / .NET 7 ∙ Entity Framework Core ∙ Mapster ∙ xUnit, NSubstitute ∙ ASP.NET Core Čo sa učiť nebudeme? ∙ Tvoriť krásne webové aplikácie ∙ PB138 Moderní značkovací jazyky a jejich aplikace ∙ PV247 Modern Development of User Interfaces Prednášky ∙ Nepovinné, ∙ Na zvané bonusové prednášky, prosím, choďte! Prednášky Ukončenie predmetu ∙ Získanie dostatok bodov ∙ Prezentácia projektu na poslednom cvičení ∙ Odovzdanie projektu do 26. 1. 2024. Projekt ∙ Vyberte si z navrhnutých tém ∙ Ideálne v trojici ∙ Iteratívna spätná väzba ∙ Peer reviews ∙ Prezentácia na poslednom cvičení ∙ Odovzdanie projektu do 26. 1. 2024 Typy projektu ∙ Projekt môže byť po dohode s cvičiacim: ∙ Razor Pages ∙ MVC Core ∙ Blazor ∙ DotVVM ∙ . . . Tipy a triky 1. Čítajte interaktívnu osnovu a wiki 2. Komunikujte s cvičiacimi 3. Pracujte priebežne 4. Nebojte sa vhodne využívať internet Ochutnávka – Čo nás čaká Zjednodušená architektúra webovej aplikácie Controller View HTML DbContext Prezentačná vrstva Vrstva "business" logiky Dátová vrstva Controller S1 S2 Sn Služby HttpStatusCode + JSON / XML SQL Databáza Web API E1 E2 Em Entity SOLID: Dependency Inversion ∙ The Dependency Inversion Principle states that high-level modules should not depend on low-level modules. Both should depend on abstractions. Abstractions should not depend on details. Details should depend on abstractions. SOLID: Dependency Inversion ∙ High-level trieda je istým spôsobom nadradená ∙ Nechceme vo vnútri takejto triedy volať new a starať sa o životnosť low-level objektov ∙ Tieto objekty by mala dostať zvonku. Dependency Inversion Inversion of Control ∙ "Pattern", ktorý sa dá použiť na implementáciu Dependency Inversion ∙ Rieši AKO predať inštanciu nižšieho modulu do vyššieho ∙ Interface Inversion, Flow Inversion, Creation Inversion Creation Inversion ∙ Factory ∙ Service Locator ∙ Dependency Injection ∙ . . . Dependency Injection ∙ Zoberiem všetky závislosti modulu, vytvorím konkrétne objekty a zviažem ich k inštancií modulu zvonku. Dependency Injection ∙ Constructor Injection ∙ Setter Injection Dependency Injection Container ∙ Jednoduchá realizácia DI ∙ Umožňuje konfigurovať závislosti pre daný modul ∙ Následne ich dokáže riešiť (rekurzívne) podľa toho, ako je kontainer nakonfigurovaný . . . Záver ∙ Užite si tento predmet ∙ Komunikujte s cvičiacimi ∙ O 18:00 je v Lužánkach SUFI piknik - vidíme sa tam!