„Háttéralkalmazások/Záróvizsgatételek” változatai közötti eltérés
→7. Spring: Tétel kidolgozása |
a →5. JPA – általános: Magyarra átírás |
||
| (5 közbenső módosítás ugyanattól a felhasználótól nincs mutatva) | |||
| 484. sor: | 484. sor: | ||
|OO-modell | |OO-modell | ||
|} | |} | ||
=== Hogy néz ki egy entitás, hogyan készítünk kapcsolatokat közöttük? === | === Hogy néz ki egy entitás, hogyan készítünk kapcsolatokat közöttük? === | ||
| 745. sor: | 743. sor: | ||
|'''nem létezik''' | |'''nem létezik''' | ||
|– | |– | ||
|'' | |''lecsatolt'' | ||
|- | |- | ||
|'''létezik''' | |'''létezik''' | ||
|'' | |''új'' | ||
|'' | |''menedzselt'' vagy ''törölt'' | ||
|} | |} | ||
| 881. sor: | 879. sor: | ||
* hosszú metódusnevek helyett kézzel meg lehet írni, és a kívánt nevet lehet adni a metódusnak | * hosszú metódusnevek helyett kézzel meg lehet írni, és a kívánt nevet lehet adni a metódusnak | ||
|} | |} | ||
=== Hogyan valósíthatók meg entitások közti kapcsolatok és az entitások öröklése JPA-ban? === | === Hogyan valósíthatók meg entitások közti kapcsolatok és az entitások öröklése JPA-ban? === | ||
| 1 283. sor: | 1 279. sor: | ||
|tranzakció nélkül fut | |tranzakció nélkül fut | ||
|} | |} | ||
== 8. ASP.NET Core == | == 8. ASP.NET Core == | ||
{{Átnézendő szakasz}} | |||
=== Mi az ASP.NET Core? === | === Mi az ASP.NET Core? === | ||
... | Az ASP.NET Core egy .NET-alapú nagyteljesítményű, nyílt forráskódú, platformfüggetlen webalkalmazás‑framework. | ||
=== Mit jelent, hogy egy alkalmazás monolitikus? === | === Mit jelent, hogy egy alkalmazás monolitikus? === | ||
... | Monolitikusnak nevezzük azt az alkalmazást, amelynek összes komponense – pl. UI, üzleti logika és adatkezelés – egyetlen deploy‑egységben (pl. egy futtatható vagy szerveralkalmazásban) fut, nem részeire bontva. | ||
=== Mi a ''clean architecture''? === | === Mi a ''clean architecture''? === | ||
... | A clean architecture egy szoftvertervezési minta, melynek alapvetése a kód rétegekre (pl. domain, application, infrastructure, presentation) bontása. Alkalmazza a dependency inversiont is: a külső rétegek függnek csak az absztrakcióktól, nem fordítva. | ||
=== Sorolj fel min. 3 általános ASP.NET Core által nyújtott | === Sorolj fel min. 3 általános, ASP.NET Core által nyújtott infrastruktúrafunkciót! === | ||
... | * beépített DI | ||
* middleware alapú HTTP–pipeline-kezelés (pl. autentikáció, logging) | |||
* konfigurálhatóság (<code>appsettings.json</code> + környezeti változók) | |||
* moduláris hosting (pl. Kestrel), cross‑platform deployment (IIS, Nginx, Docker stb.) | |||
=== Hogyan indul el egy ASP.NET Core projekt? === | === Hogyan indul el egy ASP.NET Core projekt? === | ||
.. | # <code>dotnet new webapi</code> vagy <code>dotnet new mvc</code> parancs | ||
# a <code>Program.cs</code> és/vagy <code>Startup.cs</code> definiálja a hosztot, regisztrálja a service‑eket és a middleware‑eket | |||
# a <code>dotnet run</code> indítja el a Kestrel szervert | |||
# elérhető az alkalmazás | |||
=== Milyen lépései vannak, hogy egy Web API-n kiajánljunk egy EF Core által nyújtott adatmodellt (lekérdezésre, módosításra)? === | === Milyen lépései vannak, hogy egy Web API-n kiajánljunk egy EF Core által nyújtott adatmodellt (lekérdezésre, módosításra)? === | ||
... | # projekt generálása (<code>dotnet new webapi</code>) | ||
# EF Core-csomagok telepítése (<code>Microsoft.EntityFrameworkCore</code>, SQL server provider) | |||
# <code>DbContext</code> osztály és entitásmodellek létrehozása | |||
# <code>AddDbContext<...>(...)</code> DI a <code>Program.cs</code>-ben / <code>Startup.cs</code>-ben | |||
# kontroller létrehozása (<code>ApiController</code>), mely injektálja a <code>DbContext</code>‑et | |||
# lekérdező metódusok írása: <code>GET</code>, <code>POST</code>, <code>PUT</code>, <code>DELETE</code> endpointok | |||
# használat: <code>context.Entities.ToList()</code>, <code>Find(id)</code>, <code>Add()</code>, <code>Update()</code>, <code>Remove()</code>, majd <code>SaveChanges()</code> | |||
== 9. Razor == | == 9. Razor == | ||
{{Átnézendő szakasz}} | |||
=== Milyen módokon szeparálhatjuk a kliens–szerver alkalmazásrétegeket? === | === Milyen módokon szeparálhatjuk a kliens–szerver alkalmazásrétegeket? === | ||
... | * tiszta szerveroldali renderelés – minden HTML generálását a szerver végzi (pl. ASP.NET MVC, Razor Pages). | ||
* tiszta kliensoldali alkalmazás (SPA) – az UI a böngészőben fut, a szerveren csak API-szolgáltatás van (pl. Angular, React). | |||
* hibrid megközelítés – a kezdeti renderelés szerveren történik, utána a kliens veszi át az irányítást (Pl. Blazor Server, SSR + CSR kombinációk) | |||
=== Mi a szerveroldali renderelés? === | === Mi a szerveroldali renderelés? === | ||
. | A szerver generálja az egész HTML-t a kérésre, és küldi el a kliensnek. Így a böngésző azonnal meg tudja jeleníteni a teljes oldalt. | ||
=== Milyen előnyei/hátrányai vannak a kliensoldalival szemben? === | === Milyen előnyei/hátrányai vannak a kliensoldalival szemben? === | ||
==== Előnyök ==== | |||
* gyorsabb első betöltés – kész HTML érkezik | |||
* jobb SEO-támogatás | |||
==== Hátrányok ==== | |||
* magasabb szerverterhelés, minden kérésnél újrarenderelés | |||
* lassabb interaktivitás és navigáció a teljes oldalletöltések miatt | |||
=== Mi a Razor? === | === Mi a Razor? === | ||
... | A Razor egy HTML-templating szintaxis C# (vagy VB) integrálásával; 2010 óta része az ASP.NET MVC-nek / ASP.NET Core‑nak. <code>.cshtml</code> / <code>.razor</code> fájlokban használatos. | ||
=== Hogyan készül el egy HTML-oldal Razor segítségével és MVC vagy Razor Pages használatával? === | === Hogyan készül el egy HTML-oldal Razor segítségével és MVC vagy Razor Pages használatával? === | ||
==== MVC ==== | |||
# létre kell hozni egy <code>Controller</code> metódust return <code>View(model);</code>-lel | |||
# a <code>ViewName.cshtml</code> fájlban Razor-kód (<code>@model</code>, <code>@foreach</code> stb.) generálja a HTML-t | |||
==== Razor Pages ==== | |||
# létre kell hozni egy <code>.cshtml</code> fájlpárt (<code>Index.cshtml</code> + <code>Index.cshtml.cs</code>), ahol: | |||
## a <code>*.cshtml.cs</code> tartalmazza az oldal logikáját az <code>OnGet()</code> és <code>OnPost()</code> metódusokkal | |||
## a <code>*.cshtml</code> Razor-jelölésekkel hivatkozik a <code>@Model</code> objektumra | |||
== 10. Microservices == | == 10. Microservices == | ||
| 1 516. sor: | 1 539. sor: | ||
=== A számítási felhő fő jellemzői === | === A számítási felhő fő jellemzői === | ||
* önkiszolgálás bármikor | |||
* nagy rugalmasság | |||
** skálázhatóság | |||
*** akár egy komplex vállalati rendszer is kialakítható | |||
** számlázás fogyasztás alapján | |||
* felhasználók közt megosztott erőforrások | |||
* széleskörű hálózati elérés | |||
** internet | |||
** IoT | |||
=== A számítási felhő fizikai, térbeli kiépítése === | === A számítási felhő fizikai, térbeli kiépítése === | ||
==== Fizikai ==== | |||
* nagy, légkondicionált raktárépületek | |||
* bennük általában már "csak" előreszerelt konténerekkel | |||
==== Térbeli ==== | |||
A nagyobbtól a kisebbig: | |||
* region | |||
* availability zone | |||
** redundancia | |||
* data center | |||
=== Főbb publikus felhőszolgáltatók === | === Főbb publikus felhőszolgáltatók === | ||
* AWS | |||
* Microsoft Azure | |||
* Google Cloud | |||
* OVH (EU) | |||
=== Felhős szolgáltatásmodellek === | === Felhős szolgáltatásmodellek === | ||
. | |||
* infrastructure as a service | |||
* platform as a service | |||
* software as a service | |||
{| class="wikitable" | |||
|+Üzemeltetési modellek (a más által kezelttől a saját kezelésűig) | |||
!típus | |||
!jellemzői | |||
!példa | |||
|- | |||
|nyilvános | |||
| | |||
* más által üzemeltetett | |||
* szabadon elérhető | |||
|ld.: ''[[Háttéralkalmazások/Záróvizsgatételek#Főbb publikus felhőszolgáltatók|Főbb publikus felhőszolgáltatók]]'' | |||
|- | |||
|hibrid | |||
| | |||
* nyilvános szolgáltatás | |||
* saját környezetben | |||
|Azure Stack Hub, AWS Outposts | |||
|- | |||
|közösségi | |||
| | |||
* egy csoport tagjai közt megosztott, zárt infrastruktúra | |||
|EESZT | |||
|- | |||
|saját | |||
| | |||
* saját szolgáltatás | |||
* saját környezetben | |||
|– | |||
|} | |||
=== Szolgáltatásgaranciák (SLA) === | === Szolgáltatásgaranciák (SLA) === | ||
* magas uptime | |||
* redundancia | |||
** áramellátás | |||
** hálózat | |||
** hardver | |||
*** tárhely | |||
** földrajzi | |||
*** természeti katasztrófák | |||
=== Skálázási lehetőségek === | === Skálázási lehetőségek === | ||
* vertikális | |||
** erőforrások növelése | |||
* horizontális | |||
** példányok bővítése | |||
* automatikusan is lehet | |||
=== Példák elérhető szolgáltatásokra === | === Példák elérhető szolgáltatásokra === | ||
* AWS | |||
** S3 | |||
** SQS | |||
** EC2 | |||
* Google | |||
** Pub/Sub | |||
=== A felhős modell előnyei, hátrányai === | === A felhős modell előnyei, hátrányai === | ||
{| class="wikitable" | |||
|+Összehasonlítás | |||
!előny | |||
!hátrány | |||
|- | |||
|költséghatékony | |||
|drágább is lehet | |||
|- | |||
|használatalapú árazás | |||
|bonyolult árazás | |||
|- | |||
|könnyen skálázható | |||
|nem végtelenül skálázható | |||
|- | |||
|SLA | |||
|a nagyon magas SLA-kért többet kell fizetni | |||
|- | |||
|menedzselt üzemeltetés és biztonság (DRP) | |||
|nem férünk hozzá fizikailag a szerverekhez | |||
|- | |||
|globális | |||
|helyi adatvédelmi megfelelőség esetleges hiánya | |||
|- | |||
|sokféle szolgáltatás | |||
|vendor lock-in (breaking changes) | |||
|} | |||
== 13. Azure == | == 13. Azure == | ||
{{Átnézendő szakasz}} | |||
=== Azure alapszolgáltatások viszonya egymáshoz === | === Azure alapszolgáltatások viszonya egymáshoz === | ||
==== Előfizetés ==== | ==== Előfizetés ==== | ||
Azure-szolgáltatások igénybevételének elszámolási és hozzáférési egysége; egy Azure-fiók alatt több előfizetés is lehet, és az éves költési korlátok is erre épülnek. | |||
==== AD ==== | ==== AD ==== | ||
Identitás- és jogosultságkezelés központja, amelyhez előfizetések, felhasználók és szolgáltatások (alkalmazásregisztrációk) kapcsolódnak. | |||
==== Fiók (account) ==== | ==== Fiók (account) ==== | ||
Microsoft-fiók vagy szervezeti (Azure AD) fiók, amellyel be lehet jelentkezni és kapcsolatba lehet hozni az Azure-előfizetéseket. | |||
==== Erőforráscsoport ==== | ==== Erőforráscsoport ==== | ||
. | Logikai gyűjtőkonténer az előfizetésen belül, amelybe kapcsolódó erőforrásokat, pl. VM-eket vagy adatbázisokat csoportosítunk; segíti az RBAC-t és a költségkövetést. | ||
==== Erőforrás ==== | ==== Erőforrás ==== | ||
. | Valós szolgáltatásobjektum (pl. virtuális gép, tárhely, SQL-adatbázis), amely egy előfizetésen belül erőforráscsoportban jön létre. | ||
=== Erőforrások beállítható alapjellemzői === | === Erőforrások beállítható alapjellemzői === | ||
.. | * '''név''' – globálisan vagy az előfizetésen belül egyedi azonosító | ||
* '''régió''' – földrajzi hely (pl. <code>eastus</code>, <code>westeurope</code>) | |||
* '''típus és SKU''' – szolgáltatás rétegének és teljesítményének kiválasztása (pl. basic, standard) | |||
* '''címkék''' – kulcs–érték párok a költség- és szervezési szempontú csoportosításhoz | |||
=== Régió kiválasztásának szempontjai === | === Régió kiválasztásának szempontjai === | ||
. | * késleltetés | ||
* szabályozás és megfelelőség | |||
** egyes adattípusokra helyhez kötött tárolási előírások vonatkozhatnak | |||
* elérhetőség | |||
** nem minden régió támogat minden szolgáltatást. | |||
* költségek | |||
** régiónként eltérő árszintek lehetnek. | |||
=== Azure SQL és Azure App Service szolgáltatások... === | === Azure SQL és Azure App Service szolgáltatások... === | ||
==== ...bemutatása. ==== | ==== ...bemutatása. ==== | ||
... | * '''Azure SQL Database:''' teljesen menedzselt relációsadatbázis-szolgáltatás automatikus mentéssel, patcheléssel, méretezéssel és beépített teljesítményoptimalizálással. | ||
* '''Azure App Service:''' PaaS típusú app hosting szolgáltatás .NET, Java, Node.js, Python stb. számára. Könnyen skálázható és CI/CD-támogatott. | |||
==== ...felépítése (logikai) erőforrások szintjén. ==== | ==== ...felépítése (logikai) erőforrások szintjén. ==== | ||
* '''Azure SQL''': logikai SQL-szerver → adatbázis(ok) (→ Elastic Pool) | |||
* '''Azure App Service''': App Service Plan (compute és scale) → Web App → deployment slots, konfigurációk stb. | |||
==== ...árazási tényezői. ==== | ==== ...árazási tényezői. ==== | ||
* '''Azure SQL''': vCore- vagy DTU-alapú teljesítmény, adattárolás mérete, elérhetőség (zóna-redundancia), licencek (Azure Hybrid Benefit) | |||
* '''App Service''': service plan típusa (free, shared, basic, standard, premium, isolated), példányszám, skálázás típusa (manual, autoscale), operációs rendszer (Windows / Linux) | |||