RIA Rich Internet Application

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

RIA Rich Internet Application

Flex: csak rugalmasan!

Web-fejlesztés NGM_IN002_1

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

JAVA webes alkalmazások

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

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

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

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

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

MVC. Model View Controller

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

Java I. A Java programozási nyelv

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

Már megismert fogalmak áttekintése

Web programoz as

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

JAVA PROGRAMOZÁS 2.ELŐADÁS

Interfészek. PPT 2007/2008 tavasz.

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

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

Webszolgáltatások (WS)

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

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

Objektumorientált programozás

OOP: Java 8.Gy: Abstract osztályok, interfészek

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

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

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

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

12.óra jquery Framework #1. Gyimesi Ákos

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

ESEMÉNY VEZÉRELT ALKALMAZÁSOK FEJLESZTÉSE I. Bevezetés. Készítette: Gregorics Tibor

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

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

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

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

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

Ajax és Echo 2. Bokor Attila

Book Template Title. Author Last Name, Author First Name

A Java EE 5 plattform

Mikor? Milyen alkalmazásnál?

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

A JavaScript főbb tulajdonságai

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

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

10. évfolyam 105 óra azonosító számú Hálózatok, programozás és adatbázis-kezelés 105 óra Adatbázis- és szoftverfejlesztés gyakorlat tantárgy

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

és az instanceof operátor

Moodle -egy ingyenes, sokoldalú LMS rendszer használata a felsőoktatásban

Broadcast Service Widget

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

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

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

Tartalomjegyzék. Előszó... 10

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

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Inczédy György Középiskola, Szakiskola és Kollégium Nyíregyháza, Árok u. 53. TANMENET. Informatika szakmacsoport

Java Programozás 11. Ea: MVC modell

Programozás BMEKOKAA146. Dr. Bécsi Tamás 5. előadás

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

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

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Java programozási nyelv 5. rész Osztályok III.

Szerver oldali technológiák Szerver oldali script nyelvek PHP

webalkalmazások fejlesztése elosztott alapon

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés

Összesítés. Látogatások száma Oldalak Találatok Adatmennyiség (11.08 Oldalak/Látogatás)

Programozási nyelvek Java

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft

Java programozási nyelv 6. rész Java a gyakorlatban

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

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

Informatikus, Webfejlesztő. Nagy Gusztáv

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

Programozási technológia

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

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

Adattárház automatizálási tapasztalatok a Generali Biztosítóban

Viczián István IP Systems JUM XIX szeptember 18.

Java Web technológiák

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

OOP és UML Áttekintés

Junior Java Képzés. Tematika

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

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

HTML és CSS. Horváth Árpád május 6. Óbudai Egyetem Alba Regia M szaki Kar (AMK) Székesfehérvár

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

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

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

Grafikus felületek készítése 1.

OOP #14 (referencia-elv)

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

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

JAVA PROGRAMOZÁS 3.ELŐADÁS

Komponens alapú fejlesztés

C#, OOP. Osztályok tervezése C#-ban

Átírás:

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

Áttekintés Bevezető Flex áttekintés ActionScript Felhasználói felület tervezése Események Szerver oldali szolgáltatásokkal való kommunikáció 2 / 27

Áttekintés Bevezető Flex áttekintés ActionScript Felhasználói felület tervezése Események Szerver oldali szolgáltatásokkal való kommunikáció 3 / 27

Áttekintés Bevezető Flex áttekintés ActionScript Felhasználói felület tervezése Események Szerver oldali szolgáltatásokkal való kommunikáció 4 / 27

Áttekintés Bevezető Flex áttekintés ActionScript Felhasználói felület tervezése Események Szerver oldali szolgáltatásokkal való kommunikáció 5 / 27

Áttekintés Bevezető Flex áttekintés ActionScript Felhasználói felület tervezése Események Szerver oldali szolgáltatásokkal való kommunikáció 6 / 27

Áttekintés Bevezető Flex áttekintés ActionScript Felhasználói felület tervezése Események Szerver oldali szolgáltatásokkal való kommunikáció 7 / 27

web alkalmazás vs. desktop alkalmazás előnyök: web alkalmazás központilag karbantartható desktop alkalmazás felhasználóbarát felület a felhasználók mindkettő előnyét szeretnék kihasználni desktop alkalmazás használatához hasonló élmény nyújtására való törekvés: alkalmazás-logika egy részének kliens oldalra való költöztetése (JavaScript keretrendszerek segítségével)... böngészőfüggőség RIA platformfüggetlenség 8 / 27

RIA Rich Internet Application RIA általános jellemzők Web 1.0 (RIA-t megelőző alkalmazások): hiperszövegen alapuló alkalmazás HTML, JavaScript, CSS Web 2.0: vizuális elemek dominálnak általában böngésző plug-in szükséges aszinkron kommunikáció a szerverrel az alkalmazás jelentős része a kliens gépen fut (csökkentett hálózati forgalom) komplex desktop alkalmazáshoz hasonló biztonsági korlátozások (korlátozott hozzáférés a kliens géphez) nem használhatók a böngészők vezérlőgombjai nem indexelhető keresőmotrok által 9 / 27

RIA fejlesztő eszközök Flex (Adobe) Silverlight (Microsoft) JavaFX (Sun Microsystems Oracle)... AJAX 10 / 27

Flex keretrendszer - RIA developement toolkit Flex keretrendszer gazdag függvénykönyvtárat, komponenseket bocsát rendelkezésre az alábbi nyelvekre alapoz: ActionScript ECMA szabványnak megfelelő szkript-nyelv MXML XML alapú deklaratív nyelv (ActionScript-té fordul) az alkalmazás telepíthető: web alkalmazásként (Flash Player - plug-in használata) desktop alkalmazásként (Adobe Integrated Runtimer -AIRhasználata) 11 / 27

Fejlesztéshez szükséges eszközök Flex keretrendszer nyílt forráskódú Flex SDK (fordító, debugger) ingyenes.swf tetszőleges (ingyenes) szerkesztő vagy Flash Builder 4 fejlesztői környezet (Eclipse plug-in) kereskedelmi (korábbi neve: Flex Builder) Flash Player (böngésző plug-in) Flash vs. Flex Flash inkább animáció létrehozására (idővonal, rétegek, keretek) Flex adatfeldolgozás 12 / 27

A szerverrel való kommunikáció egy SWF-ből 13 / 27

ActionScript + MXML MXML tipikusan a felhasználói felület megadására ActionScript alkalmazás-logika implementálására <?xml version="1.0" encoding="utf-8"?> <s:application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" <fx:script source="myfunctions.as"/> <fx:script> <![CDATA[ // ActionScript kód: import mx.controls.alert; ]]> </fx:script> <s:button label="klikk" click="alert.show( Proba )"/> </s:application> 14 / 27

ActionScript (3.0) ECMAScript szabványnak megfelelő (JavaScript-hez hasonlóan), objektumorientált script nyelv Pontos adattípus meghatározást használ (strict data typing) var myvar:string="bla"; statikus (fordításidejű) illetve dinamikus (futásidejű) típusellenőrzés a változók mind objektumok (Flex 4) változó típusok (top-level package): stb. egyszerű: int, uint, Number, String, Boolean, null, void összetett: Object, Array, Date, Error, Function, RegExp, XML, XMLList 15 / 27

Szintaxis nyelvi elemek (JavaScript-hez hasonló): lásd ActionScript 3.0 referencia Statements, Keywords & Directives (itt) tömb, objektum esetén az értékadás történhet JSON-hoz hasonló szintaxissal függvénydeklaráció: function funcname([param0, param1,...paramn]) : rettype{ // kód } Adatkapcsolás (binding) implementálása (a háttérben) az eseménykezelő rendszer segítségével történik 16 / 27

Binding pl. <?xml version="1.0" encoding="utf-8"?> <s:application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"> <fx:script> <![CDATA[ [Bindable] public var s:string=""; ]]> </fx:script> <s:textinput id="text1"/> <s:button label="update" click="s=text1.text" x="130" /> <s:label x="0" y="30" text="{s}" /> </s:application> A kód eredménye: 17 / 27

Osztályok/objektumok lehetőségek: osztály deklarálása (class kulcsszó) mezők, metódusok hatóköre: public, protected, private, internal, static osztály hozzáférés módosító: public, internal, (dynamic, final) (egyszeres) öröklődés absztrakt osztály interfész 18 / 27

Felhasználói felület tervezése tipikusan MXML segítségével történik komponens készletek: Halo (MX) régebbi (Flex 3) Spark újabb (Flex 4) komponensek elrendezése a konténeren belül (Spark) Layouts BasicLayout (absolute layout), HorizontalLayout, VerticalLayout, TileLayout Konténerek: Spark: Application, Group, SkinnableContainer, Panel, DataGroup, SkinnableDataContainer MX (Spark megfelelő nélkül): Form, Grid 19 / 27

kontrol-ok: egyszerű form-kontrolok rich text editor, csúszka, számláló, dátum-kiválasztó, színkiválasztó adatvezérelt kontrolok (dataprovider objektum segítségével megadott tartalom) listák, rácsok, faszerkezet navigációs komponensek (menü, menüsor, gombsor, fülek (TabNavigator), nézetverem (ViewStack), harmonika (Accordion)) diagramkészítés előugró ablakok (pop-up windows): PopUpManager osztály segítségével különböző konténerek szolgálhatnak alapul drag-and-drop lehetőség (DragManager osztály) 20 / 27

Adathelyesség ellenőrzése, adatformázás Adathelyesség ellenőrzők: StringValidator, NumberValidator, DateValidator, EmailValidator, RegExpValidator, stb. Adatformázók: NumberFormatter, DateFormatter, stb. Állapotok (States) egy RIA felhasználói felülete több nézetből állhat egy nézetnek különböző állapotai lehetnek 21 / 27

Események A Flex eseményorientált keretrendszer (a különböző komponensek/osztályok eseményeken keresztül kommunikálhatnak egymással) az eseménykezelő paraméterként megkap egy ún. eseményobjektumot (információ az esemény eredetéről, újrafelhasználható kód) esemény kézbesítés folyamata ki(k)/ milyen sorrendben értesülhet(nek) az eseményről lehetőség saját eseményobjektum definiálására 22 / 27

eseménykezelés MXML, illetve ActionScript eseménykezelő segítségével: <?xml version="1.0" encoding="utf-8"?> <s:application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"> <fx:script> <![CDATA[ import mx.controls.alert; protected function onclick(event:event):void{ Alert.show(event.target.label + " clicked"); } ]]> </fx:script> <s:button label="button 1" click="onclick(event)" /> </s:application> 23 / 27

Pl. click esemény kezelésére ActionScript segítségével: <?xml version="1.0" encoding="utf-8"?> <s:application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" applicationcomplete="init()"> <fx:script> <![CDATA[ import mx.controls.alert; protected function init():void{ button1.addeventlistener(mouseevent.click, onclick); } protected function onclick(event:event):void{ Alert.show(event.target.label + " clicked"); } ]]> </fx:script> <s:button id="button1" label="button 1" /> </s:application> 24 / 27

Szerver oldali szolgáltatásokkal való kommunikáció a Flex kommunikálhat különböző szerver oldali technológiákkal: PHP, Java, ASP.NET, ColdFusion, stb. kommunikációs protokollok: HTTP AMF (Action Message Format) bináris adatcsere AMF+PHP: Zend AMF modul AMF+Java: BlazeDS, LiveCycle Data Services SOAP/WSDL webszolgáltatással (WebService) való kommunikáció 25 / 27

Flex alkalmazás felépítése A Flex keretrendszer MVC-elvre alapoz Mikroarchitektúra: keretrendszer, mely bizonyos tervezési mintákat alkalmaz, illetve az alkalmazás szerkezetére vonatkozó szabályok betartására ösztönöz használata hatékonyabbá teheti komplex Flex alkalmazások fejlesztését Mikroarchitektúrák Első generációs mikroarchitektúrák: PureMVC Cairngorm Második generációs mikroarchitektúrák: Swiz Mate Robotlegs 26 / 27

Hasznos hivatkozások Adobe Flex hivatalos oldala: www.adobe.com/products/flex/ ActionScript 3.0 Referencia: help.adobe.com/en US/FlashPlatform/reference/actionscript/3/ Dokumentáció, példák, video-tutorialok: Flex and Flash Builder Documentation www.adobe.com/devnet/flex/documentation.html Adobe Flex 4 help.adobe.com/en US/flex/using/ Flex Test Drive - Build an application in an hour www.adobe.com/devnet/flex/testdrive.html Flex in a Week video training www.adobe.com/devnet/flex/videotraining.html 27 / 27