Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET Core) Cserép Máté

Hasonló dokumentumok
Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET)

Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET) Cserép Máté.

Webes alkalmazások fejlesztése 2. előadás. Webfejlesztés MVC architektúrában (ASP.NET Core) Cserép Máté

Webes alkalmazások fejlesztése 3. előadás. Objektumrelációs adatkezelés (Entity Framework) Cserép Máté

Webes alkalmazások fejlesztése 2. előadás. Webfejlesztés MVC architektúrában (ASP.NET) Webfejlesztés MVC architektúrában Fejlesztés ASP.

Webes alkalmazások fejlesztése 3. előadás. Objektumrelációs adatkezelés (ASP.NET)

Webes alkalmazások fejlesztése 10. előadás. Webszolgáltatások tesztelése (ASP.NET Core) Cserép Máté

Webes alkalmazások fejlesztése. Bevezetés az ASP.NET MVC 5 keretrendszerbe

Webes alkalmazások fejlesztése 2. előadás. Webfejlesztés MVC architektúrában (ASP.NET Core) Cserép Máté

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Webes alkalmazások fejlesztése 7. előadás. Autentikáció és autorizáció (ASP.NET Core) Cserép Máté

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Webes alkalmazások fejlesztése 6. előadás. Weblapok fejlesztése és architektúrája (ASP.NET)

Webes alkalmazások fejlesztése 6. előadás. Állapotfenntartás (ASP.NET) 2015 Giachetta Roberto

Swing GUI készítése NetBeans IDE segítségével

3. Beadandó feladat dokumentáció

Webshop készítése ASP.NET 3.5 ben I.

Rövid leírás a Make Your Mark szoftver használatához

Force-X Content Management System, keskenynyomda.hu felhasználói dokumentáció

Webes alkalmazások fejlesztése 3. előadás. Objektumrelációs adatkezelés (Entity Framework) Cserép Máté.

Webes alkalmazások fejlesztése

Webes alkalmazások fejlesztése 6. előadás. Állapotfenntartás (ASP.NET) Állapotfenntartás. Állapotfenntartás. Állapotfenntartás.

Webes alkalmazások fejlesztése 5. előadás. Adatbevitel és validáció (ASP.NET Core) Cserép Máté

w w w. h a n s a g i i s k. h u

Szoftvertechnolo gia gyakorlat

Webes alkalmazások fejlesztése 5. előadás. Adatbevitel és validáció (ASP.NET) Cserép Máté.

Programozási technológia

Webes alkalmazások fejlesztése 14. fejezet. Szolgáltatások adatkezelése (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Webes alkalmazások fejlesztése. 9. előadás Bevezetés az ASP.NET MVC keretrendszerbe

Programozás II gyakorlat. 7. Példák a polimorfizmus alkalmazásaira

Webes alkalmazások fejlesztése 7. előadás. Autentikáció és autorizáció (ASP.NET)

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Ingyenes DDNS beállítása MAZi DVR/NVR/IP eszközökön

MŰSZAKI DOKUMENTÁCIÓ. Aleph WebOPAC elérhetővé tétele okostelefonon. Eötvös József Főiskola 6500 Baja, Szegedi út 2.

Webes alkalmazások fejlesztése 5. előadás. Adatbevitel és validáció (ASP.NET)

Szoftvertechnológia alapjai Java előadások

HVK Adminisztrátori használati útmutató

Webes alkalmazások fejlesztése 6. előadás. Állapotfenntartás (ASP.NET) Cserép Máté.

Java Programozás 11. Ea: MVC modell

VirtueMart bővítmény letölthető termékek eladásához

Webes alkalmazások fejlesztése 9. előadás. Webszolgáltatások felhasználása (ASP.NET Core &.NET Framework)

HTML 5 - Start. Turóczy Attila Livesoft Kft

Választó lekérdezés létrehozása

Models are not right or wrong; they are more or less useful.

Webes alkalmazások fejlesztése 1. előadás. Webes alkalmazások és biztonságuk

ANDROID ALKALMAZÁSFEJLESZTÉS

Google App Engine az Oktatásban 1.0. ügyvezető MattaKis Consulting

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

Google Maps használata OSM, mint alternatív térkép

Weblap készítése. Fapados módszer

Java II. I A Java programozási nyelv alapelemei

Pick Pack Pont kereső és boltválasztó alkalmazás

és az instanceof operátor

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Tájékoztató. Használható segédeszköz: -

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

Eseményvezérelt alkalmazások fejlesztése I 8. előadás. Adatbázis-kezelés modell/nézet architektúrában

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

A WORDPRESS TESTRESZABÁSA (MEGJELENÉS MENÜ ELEMEI)

Tájékoztató. Használható segédeszköz: -

Alapvető beállítások elvégzése Normál nézet

T-AVL Nyomkövető webkliens

Avery Design Pro 4.0

Webes alkalmazások fejlesztése 6. előadás. Állapotfenntartás (ASP.NET) 2015 Giachetta Roberto

1. beadandó feladat dokumentáció

Eseményvezérelt alkalmazások fejlesztése I 10. előadás. Adatbázis-kezelés modell/nézet architektúrában. Giachetta Roberto

PHP. Adatbázisok gyakorlat

Tudás Reflektor. Copyright 2011; Kodácsy Tamás;

Adatelemzés SAS Enterprise Guide használatával. Soltész Gábor solteszgabee[at]gmail.com

Téradatbázisok használata QGIS-ből A DB kezelő modul 2.2 verzió

PARTNER EXTRA. Leírás. Magyar Posta Zrt. Verzió:

VALUTAISMERTETŐ FUNKCIÓNÁLIS SPECIFIKÁCIÓ

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Felhasználói kézikönyv - Android kliens

Kompozit alkalmazások fejlesztése. IBM WebSphere Portal Server

Grafikus felhasználói felületek. Dr. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Dr.

JAVA webes alkalmazások

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

Algoritmus terv 3. Fejezet: Folyamatok meghatározása

UI megismerése, különböző felbontások támogatása, használati jogok kérése

Felhasználói leírás a DimNAV Server segédprogramhoz ( )

FELHASZNÁLÓI KÉZIKÖNYV

Web-fejlesztés NGM_IN002_1

JavaServer Pages (JSP) (folytatás)

FELHASZNÁLÓI KÉZIKÖNYV SCHEDULEDETAIL KEZELÉSI ÚTMUTATÓ (TATABÁNYA VÁROS KÖZLEKEDÉSE) 1.00 verzió Dátum:

Egyszerű alkalmazás fejlesztése JDeveloperben

Java technológiák - ANTAL Margit. komponensek. A HTTP protokoll. Webkonténerek és szervletek. Egyszerű HTTP. ANTAL Margit.

InCash számlázó program és a Webshop Hun rendszer összekötése

MVC. Model View Controller

DIGITÁLIS TANÚSÍTVÁNY HASZNÁLATA A REGIONÁLIS BOOKING PLATFORMON

Prezentáció Microsoft PowerPoint XP

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

10.óra CodeIgniter Framework #3. Gyimesi Ákos

Hiba bejelentés azonnal a helyszínről elvégezhető. Egységes bejelentési forma jön létre Követhető, dokumentált folyamat. Regisztráció.

Osztályok. 4. gyakorlat

GroupWise Naptár közzétételi gazda felhasználó

Java II. I A Java programozási nyelv alapelemei

Átírás:

Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 4. előadás Megjelenítés és tartalomkezelés (ASP.NET Core) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu

Nézetek kezelése Sok esetben a nézetünk különböző részekből áll, amelyek egymástól függetlenül változhatnak bizonyos részek (pl. címsor, menü) több oldalon is szerepelnek, másokat folyamatosan cserélünk az ismétlődő részek adják meg a weblapunk egységes kinézetét Az ismétlődő tartalmat kiemelhetjük, és felhasználhatjuk több nézetben ezek így nem feltétlenül egy vezérlőhöz tartoznak, hanem megosztottak a vezérlők között (shared view), amelyeket a Views/Shared könyvtárba helyezünk ELTE IK, Webes alkalmazások fejlesztése 4:2

Parciális nézetek A parciális nézet (partial view) olyan nézet, amely nem a teljes oldalt, csak annak egy részét adja meg ezt a tartalmat egy másik nézetben megjeleníthetjük a Html.RenderPartial utasítással megadjuk a nézet nevét, emellett megadhatjuk az ott használandó modellt, illetve nézet tulajdonságokat pl. (Item.cshtml): @model String @* a modell szöveg típusú *@ <span><b>@model</b> @* nem teljes a tartalom *@ @Html.ActionLink("See details", "Details", new { param = Model }); </span> ELTE IK, Webes alkalmazások fejlesztése 4:3

Parciális nézetek pl. (MyView.cshtml): @model IEnumerable<String> <body> <div> @foreach (String name in Model){ Html.RenderPartial("Item", name); // meghívjuk a parciális nézetet, // átadjuk a nézetmodellt } </div> </body> ELTE IK, Webes alkalmazások fejlesztése 4:4

Parciális nézetek nézet kérés válasz kliens parciális betöltés parciális betöltés parciális nézet parciális nézet eredmény HTML összeállítása ELTE IK, Webes alkalmazások fejlesztése 4:5

Parciális nézetek a parciális nézet közvetlenül is létrehozható egy vezérlőből a PartialView metódussal, ekkor a nézetben a RenderAction művelet fogja a tartalmat betölteni így a modellt, és a nézet tulajdonságait a vezérlő fogja definiálni pl.: public class ProductController : Controller { public PartivalViewResult Details( id){ Item item = return PartialView("Details", item); } } ELTE IK, Webes alkalmazások fejlesztése 4:6

Elrendezések Az elrendezés (layout) lehetőséget ad, hogy egy oldalon belül több cserélhető tartalmat adjuk meg, amelyeket más nézetekből töltsünk be az elrendező nézet a keret, amely az állandó tartalmat definiálja a behelyettesíthető tartalmak a szakaszok (section), amelyek az egyes nézetekben definiáltak a szakaszokat @section <név> { } blokk segítségével adjuk meg speciális szakasz a törzs (body), amelyet nem jelölünk be kell hivatkoznunk az elrendezést a Layout tulajdonsággal ELTE IK, Webes alkalmazások fejlesztése 4:7

Elrendezések pl. (View.cshtml): @model ProductsModel @{ Layout = "~/Views/Shared/_Layout.cshtml; // használunk egy elrendezést } @section mainmenu { // szakasz a menühöz foreach (String item in Model.ItemTypes) <div>@html.actionlink( )</div> } @* a közvetlenül megadott tartalom a törzs *@ <div id="title">list of Products</div> @section mainfooter { } // újabb szakasz ELTE IK, Webes alkalmazások fejlesztése 4:8

Elrendezések az elrendező nézetben a törzset a RenderBody(), a további szakaszokat a RenderSection(<név>) utasítással helyezhetjük el elhelyezhetünk feltételesen is szakaszokat a required opcióval (nem kötelező, hogy a szakasz definiált legyen) a szakasz megléte ellenőrizhető az IsSectionDefined(<név>) művelettel az elrendező nézet fájlnevét konvenció szer aláhúzással kezdjük, az alapértelmezett elrendezés a Views/Shared/_Layout.cshtml ennek használatához nem kell a Layout tulajdonság az elrendezések egymásba ágyazhatóak ELTE IK, Webes alkalmazások fejlesztése 4:9

Elrendezések pl.: <body> @* egyéb tartalom *@ <div id="menu"> @RenderSection("mainMenu") @* egy szakasz betöltése *@ </div> <div id="mainpage"> @RenderBody() @* fő szakasz betöltése *@ </div> <div id="footer"> @RenderSection("mainFooter", false) </div> @* opcionális szakasz *@ </body> ELTE IK, Webes alkalmazások fejlesztése 4:10

Parciális nézetek kérés nézet szakasz 1 elrendezés nézet szakaszhely 1 kliens szakasz n szakaszhely n válasz eredmény HTML összeállítása ELTE IK, Webes alkalmazások fejlesztése 4:11

Nézetek kezelése Elrendezéseket célszerű használni, amennyiben: az oldalunk keretét, struktúráját szeretnénk definiálni (pl. menü, fejléc) ugyanazok elemeket szeretnénk ugyanolyan módon megjeleníteni több oldalon Parciális nézeteket célszerű használni, amennyiben: ugyanolyan elemeket változó környezetben szeretnénk használni (pl. bejelentkező doboz), vagy egy adott elemet szeretnénk cserélhetővé tenni (pl. táblázat/diagram) az oldalnak csak egy részét szeretnénk változtatni, illetve újra betölteni ELTE IK, Webes alkalmazások fejlesztése 4:12

Fájltartalom kezelése Lehetőségünk van tetszőleges fájl tartalmat (pl. képek, dokumentumok, csomagolt fájlok) küldeni a felhasználónak a tartalom rendelkezik egy típussal (ernet media type), amennyiben a böngésző meg tudja jeleníteni, akkor megjelenítheti, egyébként felkínálhatja letöltésre fájltartalmat a File metódussal tölthetünk be megadhatjuk a tartalmat binárisan, adatfolyamként, vagy elérési útvonallal meg kell adnunk a típust megadhatjuk a letöltési fájl nevet (ekkor mindenképpen letöltésre ajánlja fel) ELTE IK, Webes alkalmazások fejlesztése 4:13

Fájltartalom kezelése pl.: return File("/Content/Pictures/image.jpg", "image/jpg"); // JPEG kép betöltése a fájlrendszerről Byte[] imagefile = // betöltés adatbázisból Return File(imageFile, "image/png", "image.png"); // PNG kép betöltése az adatbázisból, majd // letöltése (alapértelmezetten) image.png // néven a megjelenített fájltartalmat az Url.Action művelet használatával beágyazhatjuk a nézetbe ELTE IK, Webes alkalmazások fejlesztése 4:14

Példa Feladat: Valósítsuk meg egy utazási ügynökség weblapját, amelyben apartmanok között böngészhetünk. a kódismétlődés elkerülése végett használjuk elrendezést (_Layout.cshtml), amelyben megadjuk a fejlécet, illetve a városok listáját az Index és Details oldalakban csak a különböző részeket adjuk meg a képek megjelenítéséhez két új akciót adunk meg, egyikkel a listában tudunk minden épülethez egy képet adni (ImageForBuilding), a másikkal egyenként tudjuk a képeket betölteni kis és nagy méretben (Image) előfordulhat, hogy nincs kép (NoImage.png) ELTE IK, Webes alkalmazások fejlesztése 4:15

Objektumrelációs adatkezelés Példa Tervezés (entitás modell): a City entitás tárolja a városok adatait tartalmazza a Building entitás az épületek adatait tartalmazza, benne a város azonosítójával az Apartment entitás az apartman adatokat tárolja, benne az épület azonosítójával a BuildingImage entitás tárolja az épületek bemutató képeit, minden képből egy nagyobb, és egy kisebb változatot, valam az épület azonosítóját ELTE IK, Webes alkalmazások fejlesztése 4:16

Objektumrelációs adatkezelés Példa Tervezés (adatbázis): Cities Column Name Condensed Type Buildings Column Name Condensed Type Apartments Column Name Condensed Type Id Id Id Name nvarchar(max) CityId BuildingId Comment nvarchar(max) Comment nvarchar(max) LocationX float Price LocationY float Room Name nvarchar(max) Turnday SeaDistance ShoreId BuildingImages Column Name Condensed Type Id BuildingId ImageLarge varbinary(max) ImageSmall varbinary(max) ELTE IK, Webes alkalmazások fejlesztése 4:17

Példa az épületek elhelyezkedése tárolva van az épületek táblában (LocationX, LocationY), ezt csak át kell adnunk szöveges formában a térképnek (ügyelve arra, hogy ponttal kell elválasztani a tizedesrészt) a Google térképet a Details oldalon jelenítjük meg, megadva a méretet, illetve a megjelölt koordinátát. A megjelenítéshez a Google Maps JavaScript API-t használjuk. a konfigurációban (appsettings.json) megadjuk az egyedi térképkulcsot, amely a következő helyről igényelhető: http://console.developers.google.com ELTE IK, Webes alkalmazások fejlesztése 4:18