„Háttéralkalmazások” változatai közötti eltérés

Lap létrehozva
 
Előadások: Hibák hozzáadása
 
(31 közbenső módosítás, amit 4 másik szerkesztő végzett, nincs mutatva)
6. sor: 6. sor:
| félév = 4
| félév = 4
| tanszék = AUT
| tanszék = AUT
| labor = 14
| labor = 14 db
| kiszh = nincs
| kiszh = nincs
| nagyzh = nincs
| nagyzh = nincs
12. sor: 12. sor:
| vizsga = írásbeli (papíron)
| vizsga = írásbeli (papíron)
| tárgyhonlap = https://www.aut.bme.hu/Course/VIAUBB04
| tárgyhonlap = https://www.aut.bme.hu/Course/VIAUBB04
| kereszt = nincs
}}
}}
{{TODO BProf}}


A tárgy célja megismertetni a hallgatókkal az háttéralkalmazások fejlesztése során leggyakrabban használt szerver oldali megoldásokat. A tárgy keretében a hallgatók jártasságot szereznek adatbázisokra épülő rendszerek megvalósításában, elsajátítják az adatrétegben és az üzleti logikai rétegben alkalmazott tipikus módszereket és eljárásokat. A tárgy ismerteti a különböző adatbázis-kezelő szerverek felépítését, működését és programozását. Továbbá bemutatja azon eljárásokat és megoldásokat, melyek segítségével az alkalmazott adatbázis platform elérhető és hatékonyan kezelhető az üzleti logikai komponensekben.
A tárgy célja megismertetni a hallgatókkal az háttéralkalmazások fejlesztése során leggyakrabban használt szerver oldali megoldásokat. A tárgy keretében a hallgatók jártasságot szereznek adatbázisokra épülő rendszerek megvalósításában, elsajátítják az adatrétegben és az üzleti logikai rétegben alkalmazott tipikus módszereket és eljárásokat. A tárgy ismerteti a különböző adatbázis-kezelő szerverek felépítését, működését és programozását. Továbbá bemutatja azon eljárásokat és megoldásokat, melyek segítségével az alkalmazott adatbázis platform elérhető és hatékonyan kezelhető az üzleti logikai komponensekben.


== Követelmények ==
== A szorgalmi időszakban ==
=== Laborgyakorlatok ===
* Az összesen 10 laborból legalább 7 teljesítése.
* A laborfeladatok feltöltésének határideje: 1 hét.


=== A szorgalmi időszakban ===
=== Házi feladat ===  
A tárgyhoz 2 házi feladat (részteljesítmény értékelés) tartozik, melyeket az erre kijelölt gyakorlati alkalmakon kell bemutatni. Mindkét házi feladatra 20-20 pont kapható, amelyeknek egyenként 50%-át el kell érni.


* A tárgyhoz 2 házi feladat (részteljesítmény értékelés) tartozik, melyeket az erre kijelölt gyakorlati alkalmakig kell bemutatni. Mindkét házi feladatra 20-20 pont kapható, amelyeknek egyenként 50%-át el kell érni.
=== Aláírás ===
* A házi feladat beszedéseken túl, 12 érdemi gyakorlatot tartunk, ebből 8-nak sikeresen teljesítettnek kell lennie. Egy gyakorlat sikeres, ha a hallgató jelen van az órán és sikeresen megírja a beugrót. A beugró az óra elején, rövid számonkérés, amely néhány kérdésből áll. Pontszámot nem adunk rá, egy beugró sikeres, vagy sikertelen lehet. A beugrókon a gyakorlathoz kapcsolódó, korábbi órákon (előadások, gyakorlatok) elhangzott anyagok ismeretét ellenőrizzük.
* Mindkét házi feladat sikeres bemutatása és legalább 10-10 pont elérése.
* Részvétel legalább 7 gyakorlaton (és ezeken a beugró sikeres teljesítése.)


=== A félév végi aláírás feltételei ===
=== Pótlási lehetőség ===
A póthéten az egyik házifeladat pótolható.


* Mindkét házi feladat sikeres bemutatása és legalább 10-10 pont elérése.
=== Vizsga ===
* Részvétel legalább 8 gyakorlaton és ezeken a beugró sikeres teljesítése
A vizsgaidőszakban 60 perces írásbeli vizsgát tartunk, amely 60 pontos, ebből legalább 30 pontot el kell érni a sikerességhez.


=== A vizsgaidőszakban ===
=== Osztályozás ===  
A végső osztályzatot a házi feladatok és a vizsga pontszámok összeadásával határozzuk meg.


* A vizsgaidőszakban írásbeli vizsgát tartunk, amely 60 pontos, ebből legalább 30 pontot el kell érni a sikerességhez.
* Első házi feladat (Adatmodell és adatelérési réteg fejlesztése): max. 20 pont
* Második házi feladat (Adatmodell, adatréteg és REST API fejlesztése): max. 20 pont
* Vizsga: max. 60 pont


Az osztályzat megállapításának módja:
=== Értékelés<ref>Imre Gábor [https://teams.microsoft.com/l/message/19:Rou9i34ACNaJy77a2N1aL1WrR8L55Wx-72t5DL_p00Q1@thread.tacv2/1710155862819?tenantId=6a3548ab-7570-4271-91a8-58da00697029&groupId=ab9a3761-4679-47af-bfc6-96ae8ca8c751&parentMessageId=1709550674314&teamName=H%C3%A1tt%C3%A9ralkalmaz%C3%A1sok%20-%20BMEVIAUBB04-HU&channelName=General&createdTime=1710155862819 kommentje] a 2023/24-es tanév kurzusának Teams-csoportjában 2024. 03. 11. 12:17-kor</ref> ===
{{Jegykonvertálás|0 – 49|50 – 61|62 – 74|75 – 86|87 – 100
}}


A házi feladatok pontszáma 20-20%-ban, a vizsga 60%-ban számít az érdemjegybe.
== Tematika ==
=== Előadások ===
* 1. hét (Imre Gábor): [[Média:Hatter ea 01 Bevezetés.pdf|követelmények, bevezetés]]: rétegek; [[Média:Hatter ea2 2023.pdf|adatbázisok]]: rendszerarchitektúra, relációk, integritás, Microsoft SQL Server, tranzakciók, hibák, izolációs szintek
* 2. hét (Imre Gábor): az előző hét folytatása; [[Média:Hatter ea 03 Microsoft SQL Server programozása.pdf|szerveroldali programozás]]: előnyei és hátrányai, Transact-SQL: kurzor, eljárás, függvény, trigger
* [[Média:Hatter ea4.pdf|3. hét (Imre Gábor)]]: adatelérési könyvtárak: .NET, JBDC; SQL injection; ORM: shadow-információk, öröklés, leképezések, kapcsolatok, rekurzió, osztályszintű tulajdonságok
* [[Média:Hatter ea5.pdf|4. hét (Simon Gábor)]]: Entity Framework Core: entitásmodell, kapcsolatok (gyerek / principal), tulajdonlás, DbContext (entitásnyilvántartás), Core Tools / Migrations / Reverse Engineering, mapping, konvenciók, egyedi modellkonfiguráció (attribútumok, Fluent API), létrehozás, módosítás, törlés, lekérdezések (LINQ), kiértékelés, betöltés
* [[Média:Hatter ea 06 JPA.pdf|5. hét (Simon Gábor)]]: JPA: jellemzők, architektúra (Jakarta EE), annotációk (testreszabás, típusok, beágyazott osztály, konverter), persistence unit, JNDI, DataSource, (managed) persistence context, entitások állapota és életciklusa (EntityManager), adatbázisszinkronizáció (<code>flush()</code>, <code>setFlushMode()</code>), lekérdezések (<code>setParameter</code>, <code>setMaxResult</code>, <code>setFirstResult</code>, <code>getSingleResult</code>, <code>getResultList</code>, <code>executeUpdate</code>), Criteria API, natív lekérdezések, öröklés (<code>extends</code>, <code>@Entity</code>, <code>@Id</code>, <code>@Inheritance(strategy)</code>, <code>@DiscriminatorColumn</code>, <code>@DiscriminatorValue</code>, <code>@MappedSuperClass</code>), kapcsolatok (<code>@OneToOne</code>, <code>@OneToMany</code>, <code>@ManyToOne</code>, <code>@ManyToMany</code>, <code>@JoinColumn</code>, <code>@JoinTable</code>, <code>@OrderBy</code>, <code>@MapKey</code>)
** Habár a 4. dián említve van a ''Java EE → Jakarta EE'' átnevezés, a 6., 15–18. és 21. diákon még mindig a régi név szerepel.
* 6. hét (Simon Gábor): az előző hét folytatása: kapcsolatok (<code>@ElementCollection</code>, <code>cascade</code>, <code>fetch</code>), entitásgráfok (<code>@NamedEntityGraph</code>, <code>EntityGraph</code>, <code>Properties</code>); [[Média:Hatter ea7a.pdf|Spring]]: modulok, dependency injection, inversion of control, bean (annotáció, konfigurációs osztály, élettartam); Spring Boot: függőségek, konfigurációs osztály (autoconfig, property alapú), profiles, adatelérés, JDBCTemplate, JPA; Spring Data: repositoryk
** A 4–5. és 45. dián említett ''Java EE'' 2020 óta a ''Jakarta EE'' nevet viseli.<ref>https://blogs.oracle.com/javamagazine/post/transition-from-java-ee-to-jakarta-ee</ref>
* 7. hét (Simon Gábor): az előző hét folytatása: JPA-entitások és tranzakciók (transactionManager config), @Transactional, propagation, deklaratív tranzakciók működése; [[Média:Hatter ea7b.pdf|félig strukturált adatok]]: XML: XSD, pull / push parsing, DOM, XSLT, feldolgozása, API-k; JSON: API-k; [[Média:Hatter ea 07 WebAlapok SpringMVC.pdf|Spring MVC]]: webes architektúrák, kliens- / szerveroldali renderelés; J2EE: servlet, JSP; Spring MVC: Spring Boot, RESTful, OpenAPI, DTO, hibakezelés, lapozás
* 8. hét (Simon Gábor): [[Média:Hatter ea8.pdf|ASP.NET Core Web API]]: Kestrel, projektsablonok, konfiguráció, alapszolgáltatások, request–response pipeline, middlewares (developer exception page, routing, endpoint), controller API (<code>Controller</code>, <code>ControllerBase</code>, <code>ApiController</code>), konvenció / attribútum alapú routing, GET, POST, best practices (DTO)
* 9. hét (Simon Gábor): [[Média:Hatter ea9.pdf|ASP.NET Core-alapszolgáltatások]]: konfiguráció: környezeti változók, secrets; szerveroldali renderelés: más keretrendszerek (JSP, PHP, Ruby on Rails, ASP(X)), ASP.NET Core Razor Pages és MVC, Razor View Engine; actionök és segédfüggvényeik, model binding, view discovery, Razor view engine (RVE), <code>.cshtml</code>, layoutok, futási sorrend, tag / HTML helpers; Razor Pages: indexoldal, routing, binding
* 10. hét (Simon Gábor): [[Média:Hatter ea10.pdf|felhőszolgáltatások]]
* 11. hét: ''szünet''
* 12. hét (Simon Gábor): [[Média:Hatter ea11.pdf|Azure alapú webhosting]]
** Elavult információ a 10–11. diákon: az ''Azure Active Directory''t 2023 óta ''Microsoft Entra ID''-nak hívják.<ref>https://learn.microsoft.com/en-us/azure/active-directory/fundamentals/new-name</ref>
* 13. hét: [[Média:Hatter ea12 2023.pdf|NoSQL adatbázisok]]
** A 21. dián hivatkozott cikk a Wayback Machine-ban: https://web.archive.org/web/20131111150501/http://www.sarahmei.com/blog/2013/11/11/why-you-should-never-use-mongodb/
* 14. hét: [[Média:Hatter ea13 2023.pdf|microservices]]


== Tematika ==
=== Laborok ===
TODO
* [https://github.com/BMEVIAUBB04/gyakorlat-sql-alapok 1. hét]: <code>select</code>, <code>join</code>, <code>insert</code>, <code>@@IDENTITY</code>, <code>update</code>, <code>group by</code>, <code>having</code>
* [https://github.com/BMEVIAUBB04/gyakorlat-tranzakciok 2. hét]: párhuzamos tranzakciók, read committed, rollback, serializable, <code>XLOCK</code>, <code>TABLOCKX</code>
* [https://github.com/BMEVIAUBB04/gyakorlat-mssql 3. hét]: procedure, exec, trigger, cursor
* [https://github.com/BMEVIAUBB04/gyakorlat-jdbc 4. hét]: JDBC: ...
* [https://bmeviaubb04.github.io/gyakorlat-ef/ 5. hét]: ...
* [https://github.com/BMEVIAUBB04/gyakorlat-jpa 6. hét]: ...
* [https://github.com/BMEVIAUBB04/gyakorlat-rest-spring-mvc 7. hét]: ...
* [https://github.com/BMEVIAUBB04/gyakorlat-rest-web-api 8. hét]: ...
* 9. hét: ''az 1. házi bemutatása''
* [https://github.com/BMEVIAUBB04/gyakorlat-server-side-rendering 10. hét]: ...
* [https://github.com/BMEVIAUBB04/gyakorlat-azure 11. hét]: ...
* 12. hét: ''a 2. házi bemutatása''


== Házi ==
== Házi feladatok ==
TODO
A tárgyhoz két házi feladat tartozik, amiben .NET és Java fejlesztést kérnek. Ezekből mindkettő kötelező, de lehet választani, melyiket melyik nyelven írjuk.
* [[Média:Hatter 1. Házi feladat 2024.pdf|1. házi]]: [[Média:Hatter 1-hazi-feladat-net--main 2024.zip|EF Core]] vagy [[Média:Hatter 1-hazi-feladat-java--main 2024.zip|JPA]] használata
* [[Média:Hatter 2. Házi feladat 2024.pdf|2. házi]]: REST API készítése [[Média:Hatter 2-hazi-feladat-dotnet--main 2024.zip|.NET Web API]] vagy [[Média:Hatter 2-hazi-feladat-java--main 2024.zip|Spring]] használatával


== Vizsga ==
== Vizsga ==
TODO
*2022. tavasz
**1., 2. vagy 4. vizsga
*** Egy általános (6 pont) és egy Azure-os (4 pont) párosítós feladat
** [[Média:Hatteralkalmazasok vizsga3 2022.pdf|3. vizsga]]
* 2024. tavasz
** 2. vagy 4. vizsga
*** 5. feladat: a 2022. tavaszi 3. vizsgáéval megegyező
*** Több kifejtős feladat is volt a ''microservices'' részből
** 3. vizsga
*** 1–3. feladatok: a 2022. tavaszi 3. vizsgáéval megegyezőek
 
== Szóbeli záróvizsga ==
 
* [[Média:Zv tetelek hatteralkalmazasok 2024tavasz.pdf|Tételek (2021 tavaszától)]]
* [[Háttéralkalmazások/Záróvizsgatételek|Kidolgozott tételek]]


== Források ==
<references />
{{Lábléc_-_Üzemmérnök-informatikus_alapszak}}
{{Lábléc_-_Üzemmérnök-informatikus_alapszak}}
A lap eredeti címe: „https://vik.wiki/Háttéralkalmazások