Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Kliensoldali rendszerek

    A tantárgy angol neve: Client-Side Systems

    Adatlap utolsó módosítása: 2024. március 25.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar

    Mérnök informatikus szak, BSc képzés
    Szoftverfejlesztés specializáció
    Mindhárom ágazat (AUT/IIT/MIT) számára választható tárgy


    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIAUAC17 5 2/2/0/v 5  
    3. A tantárgyfelelős személy és tanszék Dr. Kővári Bence András,
    A tantárgy tanszéki weboldala www.aut.bmne.hu
    4. A tantárgy előadója

    Dr. Kővári Bence, egyetemi docens, AUT

    Rajacsics Tamás, mérnöktanár, AUT

    Albert István, mérnöktanár, AUT
    5. A tantárgy az alábbi témakörök ismeretére épít Webes fejlesztési alapismeretek, melyek a tárgy részeként, vagy a tárggyal párhuzamosan is elsajátíthatók
    6. Előtanulmányi rend
    Ajánlott:
    (HTML, JavaScript), melyek szükség esetén a Mobil és webes rendszerek párhuzamos felvételével is elsajátíthatók, mert a két tárgy anyaga és ütemezése összehangolt 
    7. A tantárgy célkitűzése

    A tárgy célja, hogy a hallgatók betekintést nyerjenek a kliensoldali alkalmazások fejlesztésének alapelveibe és meghatározó technológiáiba. A tárgy keretében bemutatásra kerülnek a legfontosabb felhasználói platformok (desktop, tablet, mobil), valamint az alkalmazás-felületek fejlesztésének rájuk vonatkozó ergonómiai alapelvek. A hallgatók megismerkednek a korszerű vékonykliens fejlesztéshez szükséges eszköztárral. Tárgyalásra kerülnek az adatkötési megoldások, valamint az űrlap generálási technikák. A tárgy különböző tervezési kérdéseket érint: az MV* tervezési minták kapcsán a hallgatók megtapasztalhatják, miként lehetséges a felület és a mögöttes felületlogika (és ezáltal a fejlesztő és a designer munkájának) szétválasztása. A tárgy szerves részét képezik a gyakorlati foglalkozások, melyek lehetőséget biztosítanak a hallgatók számára, hogy az előadáson tanultakat maguk is kipróbálhassák és érdemben hasznosítható tapasztalatot szerezzenek.

     

    A tantárgy követelményeit eredményesen teljesítő hallgató képes lesz:

    · (K2) bemutatni az alapvető webes technológiákat, rámutatni azok kapcsolatrendszerére és jellegzetességeire, egymáshoz viszonyított előnyeire és hátrányaira

    ·       (K3) egyszerűbb kliensalkalmazások fejlesztésére Blazor technológiával

    ·       (K3) webes alkalmazások fejlesztésére React technológiával

    ·       (K2) alapvető ergonómiai elvek ismerete és alkalmazása webes környezetben

    8. A tantárgy részletes tematikája

    Előadások:

     1. Előnyök, hátrányok (szerver oldali megoldáshoz képest). Botok, crawlerek, share-link botok támogatása. Hogyan működnek a kliens oldali keretrendszerek (React és társai) alapszinten

    2. Ergonómia

    3. TypeScript

    4. React (Hello World) – Tree reconciliation. Kompozíció minta, komponens alapú fejlesztés. React, Vue, Angular, Svelte, SvelteKit történelme. JSX, TSX. React fa. Osztály és függvény komponens. Props. Komponens életciklusa. Kompozíció, komponensek egymásba ágyazása. Statikus és feltételes gyerekek, listák. Feltételes attribútumok, class és classList.

    5. React (Állapot és eseménykezelés) – state és useState. stable identity és closure kérdések. Aszinkron állapotkezelés. Eseménykezelés. Felhasználói bemenet, input és társai. Props/state/mixed alapú render (controled, uncontroled). DOM-ban tárolt állapot. Validáció. Reducers.

    6. React (Kommunikáció a fában) – Higher order components, lifting state, forceupdate, context, külső eseményekre feliratkozás, erőforrások használata. Refs.

    7. React (Render) – PureComponent, memo. Render okai, stable identity. Fragment. key attribútum. Komponens paraméterként. requestAnimationFrame. Portal. Suspense, lazy.

    8. Angular, Vue – Összehasonlítás

    9. Progressive Web Application (PWA), Telepített kliensek (Electron, react-native, PWA) általában. Telepíthetőség követelményei. Manifest.json. Service worker, életciklusa, eseményei, interfésze. Cache API és cache stratégiák. Share API.

    10. Csomagolás és optimalizáció – Csomagolók (webpack régi, ES bundler). Tree shaking (DCE), Minifying. Lazy load: modulokra, képekre. Média formátumok: JPEG-től, AVIF-ig, picture tag. Tömörítés. http/2 és http/3 protokollok. Subpixel rendering és fontok. Fetch, XHR,   CORS,  websocket. Bináris adatok Javascriptben. Web alapú játékok: WebGL, WebGPU.

    11. Blazor (Architektúra) – WebAssembly, C# a böngészőben, AoT, trim, DOM manipuláció és JavaScript interop. Hoszt modellek: szerver és kliens oldali renderelés, SignalR. Blazor Hybrid: Web View, MAUI. Standalone/hosted Blazor WASM. Projekt stuktúra, fejlesztési modellek.

    12. Blazor (Komponensek) – Razor szintaxis, kulcsszavak, vezérlő utasítások, direktívák. Komponensek életciklusa és eseményei. Routing és navigáció, paraméterek. REST API hívás.

    13. Blazor (Technikák) – Layout, adatkötés és eseménykezelés. Formok kezelése, fájl fel- és letöltés. UI virtualizáció. Sablonok. Néhány beépített komponens bemutatása.

    14. Blazor (Infrastruktúra) - Konfiguráció és függőség injektálás, naplózás, hibakezelés. SignalR használata. Bootstrapping. Aszinkronitás. Lokalizáció. Autentikáció és autorizáció.

    Gyakoraltok/laborok: 

    1. -

    2. -

    3. Házi feladat témaválasztás

    4. React – Alapok

    5. Házi feladat kidolgozás és konzultáció 

    6. React – Eseménykezelés, kommunikáció

    7. Házi feladat kidolgozás és konzultáció 

    8. React – Komplex alkalmazás

    9. Házi feladat kidolgozás és konzultáció 

    10. React – Konfiguráció, telepítés, PWA

    11. Házi feladat kidolgozás és konzultáció 

    12. Blazor – Architektúra, komponensek

    13. Blazor – Komplex alkalmazás

    14. Házibemutatás

     


    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

    Előadás

     Az előadások keretében, illetve a kiadott digitális segédanyagok által a hallgatók elsajátíthatják a tárgy tananyagát.

    Gyakorlat

    6 gyakorlatalkalom a tanult technológiák elmélyítését, míg a további 6 a házi feladat elkészítését támogatja.

    Aszinkron tananyagok

    A tárgy épít alapvető webes programozási alapismeretekre (pl. HTML, REST ismerete) és a C# nyelv minimális ismeretére, melyek tömör, a tárgyhoz szükséges összefoglalásához aszinkron módon elsajátítható tananyagokat biztosítunk

    10. Követelmények

    Szorgalmi időszakban

     

    1.       a gyakorlást a gyakorlatokon elvégzett feladatok biztosítják, amelyekről még a gyakorlat során jegyzőkönyvet kell készíteni, és beadni (részteljesítmény értékelés), valamint

    2.       a szorgalmi időszak során egy kiadott nagy házi feladatot kell önállóan megoldani és beadni (részteljesítmény értékelés).

     

    A félév végi aláírás feltételei:

      • a hallgató legalább 4 gyakorlat jegyzőkönyvét, valamint a hozzá tartozó programot futtatható állapotában, forráskód mellékelésével, határidőre beadta, és ezek mindegyike eléri az elégséges (2) szintet, és
      • a hallgató a kiadott házi feladatot a kijelölt határidőig beadta és a feladatra megkapta legalább az elérhető pontszám 50 százalékát

     

    Vizsgaidőszakban: 

    írásbeli vizsga.

     

    A házi feladat 40%-ban, a vizsga 60%-ban számít az érdemjegybe. Az osztályozhatósághoz a vizsgán az elérhető pontszám 50%-át meg kell szerezni.

     

    11. Pótlási lehetőségek
    A házi feladat utólag is, a pótlási héten leadható, vagy a pótlási héten ismételt beadásával az elért pontszáma javítható. 

    Gyakorlatok pótlására nincs lehetőség. Ugyanakkor a 6-ból csupán 4 gyakorlat teljesítése elvárt.
     

    12. Konzultációs lehetőségek Folyamatosan, az előadókkal egyeztetett időpontban
    13. Jegyzet, tankönyv, felhasználható irodalom

    ·       Christopher Nance: TypeScript Essentials, 2014, Packt Publishing, ISBN: 978- 1783985760

    ·       Matt Frisbie: Angular 2 Cookbook - Second Edition, 2017, Packt Publishing, ISBN: 978-1785881923

    ·       Christian Nagel, Jay Glynn and Morgan Skinner: Professional C# 5.0 and .NET 4.5.1, Wrox, ISBN: 978-1118833032

    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra56
    Félévközi készülés órákra22
    Felkészülés zárthelyire0
    Házi feladat elkészítése32
    Kijelölt írásos tananyag elsajátítása0
    Vizsgafelkészülés40
    Összesen150
    15. A tantárgy tematikáját kidolgozta

    Dr. Kővári Bence, egyetemi docens, AUT

    Rajacsics Tamás, mérnöktanár, AUT

    Albert István, mérnöktanár, AUT
    IMSc tematika és módszer A tananyag mélyebb megértésére a házi feladatok során külön követelmények teljesítésével nyílik lehetőség. Ezek az extra részfeladatok segítenek jobban megérteni az előadáson kevésbé részletezett ismereteket is. 
    IMSc pontozás

    IMSc pontok a következő módon szerezhetők:

    Extra technológiák, komplexebb megoldások alkalmazása a házi feladatban (maximum 25 pont)

    Az IMSc pontok megszerzése a programban nem résztvevő hallgatók számára is biztosított.

    Idegen nyelvi részteljesítés követelményei A tárgy nem kínál idegen nyelven teljesíthető feladatokat, ugyanakkor angol nyelven is fut, mely a mindenkori TVSZ szerint szabadon felvehető