flex blaze ds

42
Muharrem Taç Muharrem Taç Bilginç IT Academy Bilginç IT Academy Gelecekonline Gelecekonline

Upload: muharrem-tac

Post on 28-Nov-2014

2.721 views

Category:

Documents


1 download

DESCRIPTION

Gelecekonline & Bilginç IT Academy olarak 29 Eylül 2010 tarihinde Adobe Flex ve Java entegrasonunu sağlayan BlazeDS seminerimizin sunumu.

TRANSCRIPT

Page 1: Flex blaze ds

Muharrem TaçMuharrem TaçBilginç IT AcademyBilginç IT Academy

GelecekonlineGelecekonline

Page 2: Flex blaze ds

Flex NedirFlex Nedir

Page 3: Flex blaze ds

Flex Nedir ?Flex Nedir ?

Macromedia’nın 2004 yılının Mart ayında duyurduğu Flash Macromedia’nın 2004 yılının Mart ayında duyurduğu Flash Platform tabanlı Rich Internet Application (RIA) geliştirme Platform tabanlı Rich Internet Application (RIA) geliştirme ortamıdır.ortamıdır.

Adobe’un Macromedia’yı almasıyla adı Adobe Flex olarak Adobe’un Macromedia’yı almasıyla adı Adobe Flex olarak değişmiştir.değişmiştir.

Uygulama geliştirme ortamı (SDK) Windows ve Mac OS X Uygulama geliştirme ortamı (SDK) Windows ve Mac OS X işletim sistemlerinde çalışmaktadır ve Linux için bir işletim sistemlerinde çalışmaktadır ve Linux için bir çalışma da bulunmaktadır.çalışma da bulunmaktadır.

Page 4: Flex blaze ds

Flex Nedir ?Flex Nedir ?

Flex SDK ile geliştirilen uygulamalar SWF olarak derlenir Flex SDK ile geliştirilen uygulamalar SWF olarak derlenir ve Flash Plugin yüklü olan her internet tarayıcısında ve Flash Plugin yüklü olan her internet tarayıcısında çalışır.çalışır.

Flex SDK ile sadece tarayıcı üzerinde çalışan uygulamalar Flex SDK ile sadece tarayıcı üzerinde çalışan uygulamalar değil, işletim sistemi üzerinde çalışan uygulamalar da değil, işletim sistemi üzerinde çalışan uygulamalar da oluşturmak mümkündür. Bu uygulamalara Adobe AIR oluşturmak mümkündür. Bu uygulamalara Adobe AIR denilmektedir. Flash Platform yüklü olan Linux ortamında denilmektedir. Flash Platform yüklü olan Linux ortamında da AIR çalışmaktadır.da AIR çalışmaktadır.

Page 5: Flex blaze ds

Flex Nedir ?Flex Nedir ?

Flex :Flex : Yazılım geliştirme sistemi veya geliştime kiti Yazılım geliştirme sistemi veya geliştime kitiFlash Platform :Flash Platform : Sistemlere yüklenen çalışma zamanı Sistemlere yüklenen çalışma zamanı bileşenleri bileşenleri Flex Builder :Flex Builder : Adobe tarafından satılan Eclipse tabanlı Adobe tarafından satılan Eclipse tabanlı geliştirme ortamı (yeni adı Flash Builder 4 )geliştirme ortamı (yeni adı Flash Builder 4 )Flex Builder Eclipse Plugin : Flex Builder Eclipse Plugin : Eclipse’iniz üzerine kurulan ve Eclipse’iniz üzerine kurulan ve Flex ortamı desteğini sağlayan pluginler bütünüFlex ortamı desteğini sağlayan pluginler bütünüas uzantılı dosyalar :as uzantılı dosyalar : ActionScript dili ile yazılmış dosyalardır, ActionScript dili ile yazılmış dosyalardır, Java dilindeki .java uzantılı dosyalar gibidirJava dilindeki .java uzantılı dosyalar gibidirmxml uzantılı dosyalar :mxml uzantılı dosyalar : Flex’e özgü arayüz tasarlama Flex’e özgü arayüz tasarlama dosyalarıdır, Java EE’de kullanılan JSP dosyaları gibidirdosyalarıdır, Java EE’de kullanılan JSP dosyaları gibidir

TanımlarTanımlar

Page 6: Flex blaze ds

Flex Nedir ?Flex Nedir ?

TweetdeckTweetdeckGoovesharkGooveshark

Ünlü Flex uygulamalarıÜnlü Flex uygulamaları

Page 7: Flex blaze ds

Flex Nedir ?Flex Nedir ?Tour de Flex : Flex componentleri ve kullanımları hakkında Tour de Flex : Flex componentleri ve kullanımları hakkında harika bir uyugulama.harika bir uyugulama.

Page 8: Flex blaze ds

Flex Builder – Flash Builder Nedir ?Flex Builder – Flash Builder Nedir ?

Flex :Flex : Yazılım geliştirme sistemi veya geliştime kiti Yazılım geliştirme sistemi veya geliştime kiti

Flex Builder :Flex Builder : Adobe tarafından satılan Eclipse tabanlı Adobe tarafından satılan Eclipse tabanlı geliştirme ortamı (yeni adı Flash Builder)geliştirme ortamı (yeni adı Flash Builder)

Flex Builder 4. versiyonundan sonra Flash Builder adını aldıFlex Builder 4. versiyonundan sonra Flash Builder adını aldı

Page 9: Flex blaze ds

Flash Builder Nedir ?Flash Builder Nedir ?

Page 10: Flex blaze ds

Flash Builder Nedir ?Flash Builder Nedir ?

Page 11: Flex blaze ds

Flash Builder Nedir ?Flash Builder Nedir ?mxml dosyalarımxml dosyaları

Page 12: Flex blaze ds

Flash Builder Nedir ?Flash Builder Nedir ?as dosyalarıas dosyaları

Page 13: Flex blaze ds

Flash Builder Nedir ?Flash Builder Nedir ?as dosyalarıas dosyaları

Page 14: Flex blaze ds

Flex Builder – Flash Builder Eclipse Flex Builder – Flash Builder Eclipse Plugin Nedir ?Plugin Nedir ?

Flex Builder Eclipse Plugin :Flex Builder Eclipse Plugin : Adobe tarafından satılan ve Adobe tarafından satılan ve Eclipse üzerine kurulan pluginler bütünüdür. Eclipse’e Eclipse üzerine kurulan pluginler bütünüdür. Eclipse’e eksiksiz olarak Flex yetenekleri kazandırır.eksiksiz olarak Flex yetenekleri kazandırır.

Önemli Not : Önemli Not : Java & Flex entegrasyonunda en iyi çalışma Java & Flex entegrasyonunda en iyi çalışma ortamını böyle sağlayabilirsiniz.ortamını böyle sağlayabilirsiniz.

Page 15: Flex blaze ds

Flex Builder – Flash Builder Eclipse Flex Builder – Flash Builder Eclipse Plugin Nedir ?Plugin Nedir ?

Page 16: Flex blaze ds

Flex Builder – Flash Builder Eclipse Flex Builder – Flash Builder Eclipse Plugin Nedir ?Plugin Nedir ?Aynı anda Java ve Flex Projesini yönetebilmek…Aynı anda Java ve Flex Projesini yönetebilmek…

Page 17: Flex blaze ds

BlazeDS NedirBlazeDS Nedir

Page 18: Flex blaze ds

BlazeDS NedirBlazeDS Nedir

Flex sunucu tarafı ile şu protokolleri kullanarak haberleşebilir:Flex sunucu tarafı ile şu protokolleri kullanarak haberleşebilir:

HTTP aracılığıyla çalışan HTTPService bileşeniHTTP aracılığıyla çalışan HTTPService bileşeni

SOAP(Simple Object Access Protocol) ile çalışan WebService SOAP(Simple Object Access Protocol) ile çalışan WebService bileşenibileşeni

Adobe AMF(Action Message Format) ile çalışan Adobe AMF(Action Message Format) ile çalışan RemoteObject bileşeniRemoteObject bileşeni

Page 19: Flex blaze ds

BlazeDS NedirBlazeDS Nedir

BlazeDS bu formatlardan AMF için bir Java BlazeDS bu formatlardan AMF için bir Java implemantasyonudur. implemantasyonudur.

Adobe tarafından yazılmıştır ve Spring, Seam gibi modern Adobe tarafından yazılmıştır ve Spring, Seam gibi modern Java Frameworklerde kullanılmaktadır.Java Frameworklerde kullanılmaktadır.

Flash ve Air uygulamaları bu teknoloji ile sunucuyla veri Flash ve Air uygulamaları bu teknoloji ile sunucuyla veri alışverişinde bulunmaktadır.alışverişinde bulunmaktadır.

Açık kaynak kodludur ve LiveCycle Data Services adlı Açık kaynak kodludur ve LiveCycle Data Services adlı Adobe’un ücretli entegrasyonunun alternatifidir.Adobe’un ücretli entegrasyonunun alternatifidir.

Page 20: Flex blaze ds

BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu

Spring Framework açık kaynak kodlu çok büyük sistemleri Spring Framework açık kaynak kodlu çok büyük sistemleri idare edebilen, işleri kolaylaştırmak için çok sayıda yardımcı idare edebilen, işleri kolaylaştırmak için çok sayıda yardımcı araçlar barındıran büyük bir Java Framework’üdür. araçlar barındıran büyük bir Java Framework’üdür. Spring Framework, BlazeDS ile entegrasyonu da Spring Framework, BlazeDS ile entegrasyonu da kolaylaştırmaktadır.kolaylaştırmaktadır.

Page 21: Flex blaze ds

BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu

Entegrasyon için Flex ve Spring olmak üzere iki ayrı proje Entegrasyon için Flex ve Spring olmak üzere iki ayrı proje yapılır.yapılır.

Spring projesi bir web uygulaması olabilir. Eclipse Web Tools Spring projesi bir web uygulaması olabilir. Eclipse Web Tools Platform’un sağladığı kolaylık kullanılabilir.Platform’un sağladığı kolaylık kullanılabilir.

Flex projesi adım adım BlazeDS ‘e uygun olarak yaratılmalıdır.Flex projesi adım adım BlazeDS ‘e uygun olarak yaratılmalıdır.

Page 22: Flex blaze ds

BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu

Spring Framework kullanılan bir web uygulaması için gereken Spring Framework kullanılan bir web uygulaması için gereken Jar’lar:Jar’lar:

Page 23: Flex blaze ds

BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu

web.xml içeriğine eklemelerweb.xml içeriğine eklemeler

<!-- Spring Context --><listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener>

<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/application-context.xml</param-value></context-param>

Page 24: Flex blaze ds

BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu

web.xml içeriğine eklemelerweb.xml içeriğine eklemeler

<!-- Spring Flex Servlet --><servlet><servlet-name>spring-flex</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/flex-servlet-context.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet>

<servlet-mapping><servlet-name>spring-flex</servlet-name><url-pattern>/messagebroker/*</url-pattern></servlet-mapping>

Page 25: Flex blaze ds

BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu

application-context.xml içeriğiapplication-context.xml içeriği

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd" xmlns:p="http://www.springframework.org/schema/p"> <bean id="userService" class="com.gelecekonline.service.UserServiceImpl"/>

</beans>

Page 26: Flex blaze ds

BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu

flex-servlet-context.xml içeriğiflex-servlet-context.xml içeriği

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:flex="http://www.springframework.org/schema/flex" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/flex http://www.springframework.org/schema/flex/spring-flex-1.0.xsd"> <context:component-scan base-package="com.gelecekonline.service" /> <flex:message-broker/> <flex:remoting-destination ref="userService" /></beans>

Page 27: Flex blaze ds

BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu

services-config.xml içeriği -1 services-config.xml içeriği -1

<?xml version="1.0" encoding="UTF-8"?><services-config>

<services><default-channels> <channel ref="user-amf"/> </default-channels> </services> <channels> <channel-definition id="user-amf" class="mx.messaging.channels.AMFChannel"> <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/useramf" class="flex.messaging.endpoints.AMFEndpoint"/> </channel-definition> </channels>

Page 28: Flex blaze ds

BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu

services-config.xml içeriği -2services-config.xml içeriği -2<logging> <target class="flex.messaging.log.ConsoleTarget" level="Info"> <properties> <prefix>[BlazeDS] </prefix> <includeDate>false</includeDate> <includeTime>false</includeTime> <includeLevel>false</includeLevel> <includeCategory>false</includeCategory> </properties> <filters> <pattern>Endpoint.*</pattern> <pattern>Service.*</pattern> <pattern>Configuration</pattern> </filters> </target> </logging></services-config>

Page 29: Flex blaze ds

BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu

Blaze DS uyumlu – Flex Blaze DS uyumlu – Flex Projesi yaratmaProjesi yaratma

Page 30: Flex blaze ds

BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu

Blaze DS uyumlu – Flex Blaze DS uyumlu – Flex Projesi yaratmaProjesi yaratma

Page 31: Flex blaze ds

BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu

Blaze DS uyumlu – Flex Blaze DS uyumlu – Flex Projesi yaratmaProjesi yaratma

Page 32: Flex blaze ds

BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu

Blaze DS uyumlu – Flex ProjesiBlaze DS uyumlu – Flex Projesi

Spring Web ProjesiSpring Web Projesi

Page 33: Flex blaze ds

BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu

Flex tarafında mxml dosyası içeriği. Remote Call kısmı:Flex tarafında mxml dosyası içeriği. Remote Call kısmı:

<fx:Declarations><s:AMFChannel id="useramf" uri="../messagebroker/useramf"/><s:ChannelSet id="channelSet" channels="{[useramf]}"/><s:RemoteObject id="remoteObject" destination="userService" channelSet="{channelSet}"/></fx:Declarations>

Page 34: Flex blaze ds

BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu

Flex tarafında as model objesi:Flex tarafında as model objesi:

package com.gelecekonline.model{[RemoteClass(alias="com.gelecekonline.User")]public class User{public var name:String;public var lastName:String;

public function User(){}}}

Page 35: Flex blaze ds

BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu

Flex tarafında mxml dosyası içeriği. Remote Call kısmı:Flex tarafında mxml dosyası içeriği. Remote Call kısmı:

<fx:Declarations><s:AMFChannel id="useramf" uri="../messagebroker/useramf"/><s:ChannelSet id="channelSet" channels="{[useramf]}"/><s:RemoteObject id="remoteObject" destination="userService" channelSet="{channelSet}"/></fx:Declarations>

Page 36: Flex blaze ds

BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu

Flex tarafında mxml dosyası içeriği. Remote Object kullanan Flex tarafında mxml dosyası içeriği. Remote Object kullanan method:method:

protected function button1_clickHandler(event:MouseEvent):void{remoteObject.addEventListener(ResultEvent.RESULT,resultHandler);remoteObject.addEventListener(FaultEvent.FAULT,faultHandler);//Spring tarafindaki methodremoteObject.getUserList(); }

Page 37: Flex blaze ds

BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu

Flex tarafında mxml dosyası içeriği. Remote Object başarılı sonuç Flex tarafında mxml dosyası içeriği. Remote Object başarılı sonuç dönerse (asenkron ilerleme):dönerse (asenkron ilerleme):

private function resultHandler(event:ResultEvent):void{var userList:ArrayCollection = event.message.body as ArrayCollection; UserDataGrid.dataProvider = userList;}

Page 38: Flex blaze ds

BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu

Flex tarafında mxml dosyası içeriği. Remote Object hatalı sonuç Flex tarafında mxml dosyası içeriği. Remote Object hatalı sonuç dönerse (asenkron ilerleme):dönerse (asenkron ilerleme):

private function faultHandler(event:FaultEvent):void{ Alert.show("Hata" + event.message.toString());}

Page 39: Flex blaze ds

BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu

Flex tarafında mxml dosyası içeriği. Remote Object hatalı sonuç Flex tarafında mxml dosyası içeriği. Remote Object hatalı sonuç dönerse (asenkron ilerleme):dönerse (asenkron ilerleme):

private function faultHandler(event:FaultEvent):void{ Alert.show("Hata" + event.message.toString());}

Page 40: Flex blaze ds

BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu

Flex tarafında mxml dosyası içeriği. DataGrid ve Button Flex tarafında mxml dosyası içeriği. DataGrid ve Button

<s:Button x="63" y="42" label="Kullanıcı Listele" click="button1_clickHandler(event)"/>

<mx:DataGrid x="63" y="117" id="UserDataGrid"/>

Page 41: Flex blaze ds

Kaynakça:Kaynakça:

http://www.adobe.com/products/flex/ http://www.adobe.com/products/flex/ http://www.springsource.org/spring-flex http://www.springsource.org/spring-flex

Page 42: Flex blaze ds

TeşekkürlerTeşekkürler