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

A VIK Wikiből
→‎Vizsga: Anyagok frissítése
 
(18 közbenső módosítás, amit 3 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 (2 házi)
| 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 ===
{{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 20240212 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 ea3 2023.pdf|szerveroldali programozás]]: előnyei és hátrányai, Transact-SQL: kurzor, eljárás, függvény, trigger
* [[Média:Hatter ea4 2023.pdf|3. hét (Imre Gábor)]]: adatelérési könyvtárak: ADO.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 2023.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 20240311 JPA.pdf|5. hét]][[Média:Hatter ea5 2023.pdf| (Simon Gábor)]]: JPA: jellemzők, architektúra (Java 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>)
* 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 2023.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
* 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 2023.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 20240325 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


== Tematika ==
* [[Média:Hatter ea8 2023.pdf|REST jellegű APIk fejlesztése ASP.NET Coreban]]
TODO
* [[Média:Hatter ea9 2023.pdf|Webes felület szerver oldali generálása]]
* [[Média:Hatter ea10 2023.pdf|A számítási felhő alapfogalmai]]
* [[Média:Hatter ea11 2023.pdf|Azure alapú webhosting]]
* [[Média:Hatter ea12 2023.pdf|NoSQL adatbázisok]]
* [[Média:Hatter ea13 2023.pdf|Microservices]]
 
=== Laborok ===
* [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 ==
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.
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.
Az első házi kicsit könnyebb, de igazából nincs előnye egyik nyelv-házi kombinációnak se.
* [[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
* 1. házi: EF Core vagy JPA használata
* 2. házi: REST API készítése .NET Web API vagy Spring használatával


== Vizsga ==
== Vizsga ==
2022-ben a vizsga a következőkből állt:
*2022. tavasz
* Igaz/Hamis rész, rossz válasz -1 pont, 15 pont
**1., 2. vagy 4. vizsga
* Feleletválasztós több helyes válasszal, rossz válasz pontlevonás, 15 pont
*** Egy általános (6 pont) és egy Azure-os (4 pont) párosítós feladat
* Egy általános és egy Azure-os párba állító feladat, 6 és 4 pont
** [[Média:Hatteralkalmazasok vizsga3 2022.pdf|3. vizsga]]
* Kifejtős feladat, 10 pont
* 2024. tavasz
* T-SQL programozás feladat, 10 pont
** 2. vagy 4. vizsga
 
*** 5. feladat: a 2022. tavaszi 3. vizsgáéval megegyező
Erre 60 perc volt.
*** 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


{{Lábléc_-_Üzemmérnök-informatikus_alapszak}}
{{Lábléc_-_Üzemmérnök-informatikus_alapszak}}
<ref></ref>

A lap jelenlegi, 2024. június 27., 15:56-kori változata

Háttéralkalmazások
Tárgykód
VIAUBB04
Általános infók
Szak
üzemmérnök
Kredit
5
Ajánlott félév
4
Keresztfélév
nincs
Tanszék
AUT
Követelmények
Labor
14 db
KisZH
nincs
NagyZH
nincs
Házi feladat
2 db
Vizsga
írásbeli (papíron)
Elérhetőségek

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 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.

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.

Aláírás

  • 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.)

Pótlási lehetőség

A póthéten az egyik házifeladat pótolható.

Vizsga

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.

Osztályozás

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

  • 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

Értékelés

Pont Jegy
0 – 49 1
50 – 61 2
62 – 74 3
75 – 86 4
87 – 100 5

Tematika

Előadások

  • 1. hét (Imre Gábor): követelmények, bevezetés: rétegek; 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; szerveroldali programozás: előnyei és hátrányai, Transact-SQL: kurzor, eljárás, függvény, trigger
  • 3. hét (Imre Gábor): adatelérési könyvtárak: ADO.NET, JBDC; SQL injection; ORM: shadow-információk, öröklés, leképezések, kapcsolatok, rekurzió, osztályszintű tulajdonságok
  • 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
  • 5. hét (Simon Gábor): JPA: jellemzők, architektúra (Java 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ó (flush(), setFlushMode()), lekérdezések (setParameter, setMaxResult, setFirstResult, getSingleResult, getResultList, executeUpdate), Criteria API, natív lekérdezések, öröklés (extends, @Entity, @Id, @Inheritance(strategy), @DiscriminatorColumn, @DiscriminatorValue, @MappedSuperClass), kapcsolatok (@OneToOne, @OneToMany, @ManyToOne, @ManyToMany, @JoinColumn, @JoinTable, @OrderBy, @MapKey)
  • 6. hét (Simon Gábor): az előző hét folytatása: kapcsolatok (@ElementCollection, cascade, fetch), entitásgráfok (@NamedEntityGraph, EntityGraph, Properties); 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
  • 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; félig strukturált adatok: XML: XSD, pull / push parsing, DOM, XSLT, feldolgozása, API-k; JSON: API-k; Spring MVC: webes architektúrák, kliens- / szerveroldali renderelés; J2EE: servlet, JSP; Spring MVC: Spring Boot, RESTful, OpenAPI, DTO, hibakezelés, lapozás

Laborok

  • 1. hét: select, join, insert, @@IDENTITY, update, group by, having
  • 2. hét: párhuzamos tranzakciók, read committed, rollback, serializable, XLOCK, TABLOCKX
  • 3. hét: procedure, exec, trigger, cursor
  • 4. hét: JDBC: ...
  • 5. hét: ...
  • 6. hét: ...
  • 7. hét: ...
  • 8. hét: ...
  • 9. hét: az 1. házi bemutatása
  • 10. hét: ...
  • 11. hét: ...
  • 12. hét: a 2. házi bemutatása

Házi feladatok

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.

Vizsga

  • 2022. tavasz
    • 1., 2. vagy 4. vizsga
      • Egy általános (6 pont) és egy Azure-os (4 pont) párosítós feladat
    • 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


1. félév
2. félév
3. félév
4. félév
5. félév
6. félév