MVC. Model View Controller

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

RIA Rich Internet Application

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

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

Web-fejlesztés NGM_IN002_1

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

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

A Web réteg architektúrája A JSF web alkalmazás keretrendszer. Bakay Árpád dr. NETvisor kft (30)

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

JAVA webes alkalmazások

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

Üdvözli Önöket A PGY3 tantárgy! Bakay Árpád dr. NETvisor kft (30) arpad.bakay@netvisor.hu

Webes alkalmazások fejlesztése

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

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

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

Web-fejlesztés NGM_IN002_1

Mobil készülékek programozása

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

Adatbányászat és Perszonalizáció architektúra

Biztonság java web alkalmazásokban

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

A felhasználói interakciók alapelvei. Losteiner Dávid

Az IBM WebSphere Multichannel Bank Transformation Toolkit V7.1 felgyorsítja a többcsatornás alkalmazásfejlesztést

Symfony kurzus 2014/2015 I. félév. Controller, Routing

Informatikus, Webfejlesztő. Nagy Gusztáv

Közösség, projektek, IDE

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

Hello World Servlet. Készítsünk egy szervletet, amellyel összeadhatunk két számot, és meghívásakor üdvözlőszöveget ír a konzolra.

WebService tesztelés. SOAPui Pro, GreenPepper és Confluence használatával. Verhás & Verhás Szoftver Manufaktúra KNOW-HOW

CMS-en túli webes megoldások

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

!!" KÉSZÍTK: ERDÉLYI LAJOS KOLLÁR NÁNDOR WD6OGW BUK8Y7

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

Ajax és Echo 2. Bokor Attila

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

Nyilvántartási Rendszer

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

Széchenyi István Egyetem

Webszolgáltatások (WS)

Produktív környezetben használt, nyílt forráskódú komplex térinformatikai megoldások dr. Siki Zoltán

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

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

A Java EE 5 plattform

Mobil Informatikai Rendszerek

.NET Microsoft.Net Framework

KROMESCH SÁNDOR APP FELHŐ. API-k és Webszolgáltatások a Cloudban. Magyarországi Web Konferencia November 8.

Gyakorla( útmutató és demonstrációk a SZTAKI Felhő használatához

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

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása

Model View Controller alapú alkalmazásfejlesztés

RIA Rich Internet Application

Biztonságos PHP a gyakorlatban

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

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

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

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

MVC desktop alkalmazás esetén. MVC Model-View-Controller. eredete: Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások

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

Modern unit és integrációs tesztelés

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

Java Web technológiák

Gyakorlati vizsgatevékenység A

Struts2 keretrendszer

az MTA SZTAKI elearning osztályának adaptív tartalom megoldása Fazekas László Dr. Simonics István Wagner Balázs

Cross platform játékmotor + szerkesztő Támogatott platformok

Informatikai Tesztek Katalógus

Eclipse Rich AJAX Platform alapú webalkalmazások teljesítmény analízise. BSc szakdolgozat. Áshin László. Ráth István PhD hallgató

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();

Gyakorlati vizsgatevékenység B

RIA Rich Internet Application. Komplex felhasználói felülettel rendelkező web-alkalmazások

Webes alapozás. url, http, szerver oldal

Alkalmazások teljesítmény problémáinak megszűntetése

Integrált téradatbázis alapú városirányítási rendszerek

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

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

TSIMMIS egy lekérdezés centrikus megközelítés. TSIMMIS célok, technikák, megoldások TSIMMIS korlátai További lehetségek

ASP.NET CORE MVC Model réteg bevezetése Model Binding Repository tervezési minta Dependency Injection Transient és Singleton Custom Binding AutoMapper

Rendszerterv. 1. Funkcionális terv Feladat leírása:

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

Az önkormányzati térinformatikai technológia fejlődési irányai

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

Orbán Balázs-Attila DEVELOPERS FROM SCRATCH

Java I. A Java programozási nyelv

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Több app. Egy kódbázis

Gyakorlati vizsgatevékenység B

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

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

JavaScript Web AppBuilder használata

Bevezető. Servlet alapgondolatok

Webalkalmazás fejlesztés Java EE környezetben NetBeans segítségével: JavaServer Faces 1.2 AJAX

SOPHOS simple + secure. A dobozba rejtett biztonság UTM 9. Kókai Gábor - Sophos Advanced Engineer Balogh Viktor - Sophos Architect SOPHOS

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

Univerzális munkafolyamat szimulátor

FELÜLET...13 PROJEKTTERV...14

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

Web programoz as

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

Átírás:

MVC Model View Controller

Szoftver fejlesztés régen Console-based alkalmazások Pure HTML weboldalak Assembly, C Tipikusan kevés fejlesztő (Johm Carmack Wolfenstein, Doom, Quake..) Szűkös erőforrások optimális kód

Szoftver fejlesztés ma Rich alkalmazások (mobil, desktop) Komplex portálok web appok Fejlett OO programnyelvek Akár több száz fejlesztő 1 projekten Bőven vannak erőforrások nem kell többé byte szintű optimális kód

Szoftver fejlesztés ma Nincs többé univerzális programozó : Adatbázis programozó Field know-how -al rendelkező programozó Backed fejlesztő Frontend fejlesztő UX engineer Mindegyiknek bele kell nyúlnia a kódba

Cél : Kód modulokra bontása Komponensek (modulok) újrahasználása Komponensek (modulok) kicserélése Programozási feladatok szétbontása Tesztelhetőség

Ezekre a problémákra egy lehetséges megoldás az MVC design pattern

MVC - eredet 70-es évek végén a smalltalk nyelvben először (Xerox) grafikus UI megjelenésekor

MVC - szárnyalás Az MVC a webes, illetve objective c (ios) fejlesztések során kapott nagy figyelmet, és napjainkban is jelentősen meghatározza szinte bármely GUI-val rendelkező szoftver felépítését.

MVC - működés Az MVC három rétegre bontja az alkalmazást : Model (pl. adatbázis) View (amit a user lát GUI) Controller (Összeköti a View-t a Model-el, gyakorlatilag a business logic található itt azaz a modelt-t a UI bemeneteknek megfelelően változtatja)

Miért pont model view controller? 1870-ben valaki írt egy novellát 1927-ben kiadták könyvben 1987-ben készítettek egy filmet róla 2002-ben kiadták hangoskönyvként 1 novella 3 féle reprezentáció

Miért pont model view controller? Gyakran ugyanazt a problémát többféleképpen lehet megjeleníteni Change requestek (finomítások, módosítások) leggyakrabban a UI kapcsán merülnek fel (experimentation) Gyakorlatilag szétválasztjuk a kódot ami tartalmazza a problémát, attól, ami megjeleníti.

Működés

MVC frameworks server side Zend Framework (PHP) Asp.NET MVC Sok más Miért kell framework egy patternre?

Miért kell framework egy patternre? Kód standarizálása azáltal, hogy belekényszerít egy módszertanba (naming, layout, stb..) Platform függő nyelvi elemek megvalósítása standardizálása, pl : Melyik class mikor hívódik meg Hogy működik a kommunikáció (technikailag) az egyes részek között.

Példa felépítés szerver oldal Model classok Controller Classok View templatek

Példa felépítés Model classok Adatbázissal való kommunikációért felelnek update, select, stb. ORM-ek generálják tipikusan nekünk Lényegében az adatbázis réteg

Példa felépítés Model classok class User { private int _userid; private string _firstname; private string _lastname } public function setuserid(id:int); public function getuserid(id:int); public function setfirstname Gondoskodik az adatbázis kapcsolat felépítéséről, lebontásáról, mezők lekérdezéséről, updateléséről stb..

Példa felépítés Controller classok Kívülről : URL-ek, pl. xx.hu/user Függvények user input lekezelésére pl. xx.hu/user/update?id=12&firstname=b&lastname=c Lekezelik a user inputot, validálják a jogosultságot, updatelik a modelt.

Példa felépítés Controller classok class UserController { public function updateuserinfo(id:int, firstname:string, lastname:string); } public function getuserinfo(id:int); Mindem controller actionhöz (itt : függvény) tartozik egy view.

Példa felépítés View templatek Minden actionhoz egy Általában : HTML template Lényegében kirajzolja a weblapot.

Példa felépítés View templatek getuserinfo.html.template <html> <head> Get User Info </head> <body> <%script user:user = viewdata[ user ] %> User Neve : <%script write user.firstname + user.lastname %> </body>

MVC alkalmazása desktop/mobil app esetén Model classok Lokális-remote adatbázis, webservice-től kapott adat, stb.. Controller Classok View Classok

Példa felépítés View classok Rendkívül bonyolultak lehetnek UI fejlesztő szerepe Manapság rendkívüli fontosság (pl. Twitter kliensek lényegében itt a különbség)

Tipikus mobil app Dupla MVC Server side MVC response XML-JSON formátumban Client side MVC

MVC alternatívák : MVP Model View Presenter View és model közti eseményekért felelős

MVC alternatívák : MVP View nem ismeri a modelt. Presenter függvényeken keresztül manipulálja a view t (pl. settext) Könnyű view tesztelhetőséget eredményez (Test driven development hozománya) csak az interface kell a view-nak.

Model View ViewModel MVC alternatívák : MVVM Tipikusan Windows/ XAML appokban, data binding okán

MVC alternatívák : MVVM A ViewModel nem generikus minden Viewnak van egy sajátja arra épül, hogy kiszolgálja a view-t. Lehet data bindingelni a ViewModel-t a viewhez az majd updateli az adatbázist. Előny : A View-nak nem kell semmiről tudnia a ViewModel-en kívül (model változtatása nem hat ki rá), mégis lehet data binding-et alkalmazni.

Összefoglalás MVC is not magic, de egy jó irány a struktúrált kód felé Átláthatóvá, könnyen debuggolhatóvá, és módosíthatóvá teszi a kódot. Értsük meg, és használjuk ahol tudjuk Egyes frameworkök tanulási görbélye meredek lehet, de megéri az erőfeszítéseket.