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

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

Webes alkalmazások fejlesztése

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 Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

MVC. Model View Controller

JAVA webes alkalmazások

Web-fejlesztés NGM_IN002_1

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

Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése. Történet ASP ASP.NET. Működés. Készítette: Simon Nándor

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.

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

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

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

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

Kiknek szól ez a könyv? Miről szól a könyv? Hogyan épül fel a könyv? Mire van szükség a könyv használatához? Szokások Forráskód Hibajegyzék

1. fejezet Bevezetés a web programozásába (Balássy György munkája) Az internet működése... 11

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

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

Közösség, projektek, IDE

API tervezése mobil környezetbe. gyakorlat

Iman 3.0 szoftverdokumentáció

AJAX Framework építés. Nagy Attila Gábor Wildom Kft.

Flex: csak rugalmasan!

Gyakorlati vizsgatevékenység A

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

Web programoz as

Gyakorlati vizsgatevékenység B

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

WWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31

A Java EE 5 plattform

Bevezetés Működési elv AJAX keretrendszerek AJAX

iphone és Android két jó barát...

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

Előszó A Windows alkalmazásfejlesztés rövid története A Windows életútja A Windows 8 paradigmaváltása... 16

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

ASP-s alkalmazás készítés

Ustream.tv Bepillantás egy közösségi élővideo site működésébe

Zimbra levelező rendszer

Földmérési és Távérzékelési Intézet

TERC V.I.P. hardverkulcs regisztráció

Intelligens, adaptív felhasználói felülettel rendelkez webalkalmazások fejlesztése

Google Web Toolkit. Elek Márton. Drótposta kft.

Csoport neve: Kisiskolások Feladat sorszáma: 2. Feladat címe: Oktatási intézmény honlapja, oktatási naplóval. E-Project.

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás

Két tűz között. statikus site generátorok és javascript alkalmazások és a Drupal

JavaScript Web AppBuilder használata

Webes alapozás. url, http, szerver oldal

2F Iskola fejlesztői dokumentáció

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

Webes alkalmazások fejlesztése 12. fejezet. Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Informatikus, Webfejlesztő. Nagy Gusztáv

Nyilvántartási Rendszer

Petőfi Irodalmi Múzeum. megújuló rendszere technológiaváltás

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

RIA Rich Internet Application

WEB-PROGRAMOZÁS II. 1. Egészítse ki a következő PHP kódot a következők szerint: a,b,c,d: <?php. interface Kiir { public function kiir();

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

Szolgáltatás Orientált Architektúra és több felhasználós adatbázis használata OKF keretein belül. Beke Dániel

.NET Microsoft.Net Framework és programozása II.

GeoServer, OpenLayers és WFS. Dolleschall János

Programozási alapismeretek 4.

Felhasználói dokumentáció. a TávTagTár programhoz. Készítette: Nyíri Gábor, hdd@nc-studio.com GDF Abakusz regisztrációs kód: GDFAba43

Készítette: Enisz Krisztián, Lugossy Balázs, Speiser Ferenc, Ughy Gergely

Junior Java Képzés. Tematika

Internet programozása. 1. előadás

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

HTML. Ismerkedés a JavaScripttel. A JavaScript lehet ségei. A JavaScript kód helye. Önálló JavaScript fájlok

George Shepherd. 1. A webes alkalmazások alapjai 1

Tartalomjegyzék. Bevezetés. 1. A.NET 3.5-keretrendszer 1. A korszerű alkalmazások felépítésének kihívásai... 2

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás

SUSE Linux Enterprise Server 12 Hargitai Zsolt

Szoftver technológia. Projektmenedzsment eszközök. Cserép Máté ELTE Informatikai Kar 2019.

Automatikus infrastruktúra menedzsment és alkalmazástelepítés

9.óra CodeIgniter Framework #1. Gyimesi Ákos

Web programozás. Internet vs. web. Internet: Az Internet nyújtotta néhány alapszolgáltatás:

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

BEVEZETÉS AZ INTERNET ÉS A WORLD WIDE WEB VILÁGÁBA. Kvaszingerné Prantner Csilla, EKF

Alkalmazásokban. Dezsényi Csaba Ovitas Magyarország kft.

Eduroam változások - fejlesztések, fejlődések. Mohácsi János NIIF Intézet HBONE Workshop 2015

.NET Microsoft.Net Framework és programozása II.

A PHP nyelv alapjai. Web-Sky Consulting Kft Tóth Imre 2009

Informatikai Tesztek Katalógus

Siki Zoltán DigiKom Kft. BME ÁFGT. KÖRINFO Konferencia május 28-án

1. ábra Mester oldal alapján különböző témákkal létrehozott webhely oldalai

Felhasználói kézikönyv. Verzió: 1.01

GIS fejlesztés Web platformra nyílt forráskódú ingyenes eszközökkel

XML Webszolgáltatás alapú osztott alkalmazás fejlesztése Johanyák Zsolt Csaba 1

SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC

Nyílt forrású, webes WGS84-EOV transzformáció

Hálózati operációs rendszerek II. Novell Netware 5.1 Hálózati nyomtatás

Entity Framework alapú adatbáziselérés

Játékfejlesztés a Windows Phone 7 erejével

AJAX AJAX. AJAX: Asynchronous JavaScript and XML. az alábbi technológiákon alapul: AJAX-ot támogató keretrendszerek

OOP és UML Áttekintés

Testreszabott alkalmazások fejlesztése Notes és Quickr környezetben

Szoftver Tervezési Dokumentáció. Nguyen Thai Binh

Átírás:

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

ASP.NET MVC Framework 2009-ben jelent meg az első verziója, azóta folyamatosan fejlesztik Nyílt forráskódú Microsoft technológia Szerveroldali webprogramozáshoz keretrendszer Modell-View-Controller (MVC) tervezési mintára épül Jelenleg az ASP.NET WebForms-al fejlesztik párhuzamosan és 4.0-ás verziónál tart Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 2

Konkurencia Python Django Ruby Ruby On Rails PHP CodeIgniter Symphony Zend Framework Java Spring Web MVC Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 3

Model-View-Controller tervezési minta Vezérlő (Controller) o o Modell: Az adatok kezeléséért felelős réteg. Nézet: A weblapok megjelenítéséért felelős réteg Adatbázis Modell (Model) Nézet (View) Program o Vezérlő: Ide kerül az üzleti logika, ő vezérli, hogy melyik nézet jelenjen meg a felhasználónak és kezeli a különböző interakciókat. Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 4

MVC és MVVM összehasonlítása Nézet (View) Nézetmodell (ViewModel) Modell (Model) o Az MVC a tapasztalat szerint, jobban bevált a nagyobb webes alkalmazásoknál o A két minta nagyon hasonlít egymásra, de nem ugyanaz a kettő: MVVM-ben a nézetmodell nem ugyanazt a szerepet tölti be, mint MVC-ben a vezérlő. Amíg a vezérlő felelős azért, hogy mely nézet jelenjen meg, addig a nézetmodell nem tudja ezt meghatározni. Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 5

Keretrendszer működése Vezérlő Akció metódus Kliens Kérés küldése Nézet meghatározása Nézet Akció metódus Legenerált HTML oldal HTML oldal Nézet generálása Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 6

További technológiák Szerver oldalon (.NET technológiák) Dependency Injector.NET-hez (Ninject) Mocking Library (Moq) Unit Testing Framework (nunit) Kliens oldalon (Javascript technológiák) jquery (Core, UI, Mobile stb.) Knockout (adatkötés, MVVM) Prototype.js Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 7

Előkészületek Microsoft Visual Studio 2010 Ultimate NuGet Package Manager (opcionális) Web Platform Installer ASP.NET MVC 3 Microsoft Visual Studio 2012 Ultimate ASP.NET MVC 4 Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 8

DEMO Hello World weboldal elkészítése Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 9

ASP.NET - View Engine A HTML oldalak generálását az ASP.NET-en belül a különböző View Engine-ek végzik A keretrendszer felépítéséből adódóan lehetőség van arra, hogy különböző nézetmotorokat definiáljunk és használjunk Saját nézetmotor készítéséhez két interfészt kell implementálni: IViewEngine és IView, illetve regisztrálnunk kell az alkalmazásunkban, amit a ViewEngine.Engines tulajdonságon keresztül tudjuk megtenni Ha nem szeretnénk teljesen az alapoktól újraírni, akkor a már meglévő beépített nézeteket (RazorViewEngine és WebFormViewEngine) is felhasználhatjuk Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 10

ASP.NET - View Engine ASPX View Engine használata (lásd eddigi előadások) Razor View Engine (ezt érdemes használni): ASP.NET MVC 3-tól elérhető @<nyelvi szerkezet vagy kifejezés> @:<szöveg> - Egyszerű szöveget generál @using <névtér>.net-es névtér használata a nézet oldalon @model <típus> a Model tulajdonság típusának megadása (alapértelmezetten dynamic) @section <név> - egy előre definiált részterületet lehet megadni vele @helper <metódus> - Helper metódusokat lehet definiálni nhaml nem XML alapú view engine Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 11

Akció osztályok ActionResult Absztrakt ősosztálya az összes akcióosztálynak ViewResult - egy előre beállított nézetet rajzol ki RedirectResult - A megadott URL-re továbbítja a felhasználót PartialViewResult - egy előre beállított parciális nézetet rajzol ki EmptyResult - Egy üres választ ad vissza JsonResult - Egy megadott ViewData objektumot szerializál JSON objektumra JavaScriptResult - Egy megadott Javascript kóddal tér vissza, amit a kliens képes futtatni ContentResult - a válaszfolyamba írja közvetlenül magát a visszatérési értéket, így nincs szükség külön nézetre FileContentResult/FilePathResult - Egy fájllal tér vissza FileStreamResult - Egy FileStream-el tér vissza Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 12

DEMO To-Do-Site weboldal elkészítése Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 13

URL Routing Az ASP.NET MVC lehetőséget biztosít arra, hogy a programozó saját URL címsablonokat definiáljon a webes alkalmazásához Segítségével a felhasználó egyszerűebben és gyorsabban juthat el a rendszerünk különböző funkcióihoz Melyiket egyszerűbb megjegyezni: http://mywebsite.com/articles/2012-12-13 http://mywebsite.com?type=articles&date=2012-12-13 Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu 14

URL Routing Bármilyen URL sablont készíthetünk, rendszerünk számára, illetve bármennyit megadhatunk, akár vezérlőkre és akciómetódusokra is lebontva Általában szegmensekre tagoljuk az URL címünket és a szegmensek helye alapján találjuk ki, hogy éppen mit kell tenni: http://mywebsite.com/articles/2012-12-03 weboldalunk címe akciónk neve dátum szerinti szűrés Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu 15

Validáció Nem elég kliensoldalon ellenőrizni az adatok helyességét, hanem szerver oldalon is szükség van rá, ezért az ASP.NET MVC keretrendszer több lehetőséget is biztosít a minél hatékonyabb és kényelmesebb validációhoz: Kliens oldali validáció: Kliens oldalon Javascript segítségével ellenőrizzük az adatokat. Így nem generálunk fölösleges adatforgalmat egy-egy rossz érték esetén. Model validációs attribútumok: A modell osztályok tulajdonságait, különböző attribútumokkal látjuk el Önvalidáló modellek (Self-validation models): Ezek az objektumok önmagukat tudják validálni (IValidatableObject), azaz lehetőség van arra, hogy a validációs logikát a model rétegbe helyezzük. Explicit model validáció: A validáció a vezérlőben kerül elvégzésre, a ModelState tulajdonságon keresztül. Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu 16

Szűrők használata (Filtering) Egyszerű és elegáns módszert kínál olyan dolgok implementálására, amik nem igazán illeszkednek az MVC-s tervezési mintába Jellemzően loggolásra, felhasználók azonosítására és cachelésre szoktuk használni Saját szűrőket is definiálhatunk, ehhez az IActionFilter interfészt kell implementálnunk. Két metódust kell megírnunk: OnActionExecuting: Az akciómetódus lefutása előtt hívódik meg OnActionExecuted: Az akciómetódus lefutása után hívódik meg Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 17

ASP.NET Web API Egy újabb Microsoft technológia, amivel egyszerűen és gyorsan készíthetünk web szervert az MVC tervezési minta segítségével Először a WCF technológia része volt, de tavaly kikerült onnan és az ASP.NET-hez tették Cél, hogy HTTP kéréseken keresztül érhessük el a rendszerünk különböző szolgáltatásait, majd a válaszokat JSON vagy XML formátumban küldjük vissza a kliens részére A vezérlők nem a Controller osztályból vannak származtatva, hanem az ApiController-ből, ennek megfelelően kicsit más logikával működnek Könnyen illeszthető már meglévő MVC-s alkalmazásainkhoz Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 18

TypeScript programozási nyelv Microsoft 2012. szeptemberében adta ki a 0.8-as verzióját a nyelvből, nyílt forráskódú, platform- és operációsrendszer független Anders Hejlsberg (Pascal, Delphi, C#) is részt vesz a projektben Statikus típusrendszere van, illetve magasabb szintű nyelvi eszközöket kínál az objektum-orientált programozáshoz(osztályok, modulok, interfészek stb.) Célja, hogy a Javascript nyelv tervezési hibáit valamilyen szinten javítsa, illetve megfelelő eszközt nyújtson nagyobb projektet készítésére is Rohamosan fejlődik, a következő verzióban (0.9) már a nyelv támogatni fogja a generikus típusokat is Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 19

Hasznos linkek és könyvek Linkek http://www.asp.net/ http://www.codeproject.com/ www.google.com http://www.typescriptlang.org/ Könyvek Pro ASP.NET MVC 3 Framework Steven Anderson, Adam Freeman, Apress 2011 Pro ASP.NET MVC 4 Adam Freeman, Apress 2012 Pro C# 2010 and the.net 4 Platform Andrew Troelsen, Apress 2010 Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 20

Köszönöm a figyelmet! Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 21