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

Hasonló dokumentumok
RIA Rich Internet Application

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ó

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

Objektumorientált programozás

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

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

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

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

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

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

Book Template Title. Author Last Name, Author First Name

Mikor? Milyen alkalmazásnál?

A Java EE 5 plattform

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

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

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

Broadcast Service Widget

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

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.

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

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

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

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

Java Programozás 11. Ea: MVC modell

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

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

Programozási nyelvek Java

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

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

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

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

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

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

Programozási technológia

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

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

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.

Junior Java Képzés. Tematika

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

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

OOP és UML Áttekinté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

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

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?

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?

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

JAVA PROGRAMOZÁS 3.ELŐADÁS

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

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

Komponens alapú fejlesztés

Átírás:

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

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

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

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

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

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)

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

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

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>

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

Szintaxis nyelvi elemek (JavaScript-hez hasonló): lásd ActionScript 3.0 referencia Statements, Keywords & Directives 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

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:

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, (dinamic, final) (egyszeres) öröklődés absztrakt osztály interfész

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

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)

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

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

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>

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>

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ó

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

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