flex blaze ds
DESCRIPTION
Gelecekonline & Bilginç IT Academy olarak 29 Eylül 2010 tarihinde Adobe Flex ve Java entegrasonunu sağlayan BlazeDS seminerimizin sunumu.TRANSCRIPT
Muharrem TaçMuharrem TaçBilginç IT AcademyBilginç IT Academy
GelecekonlineGelecekonline
Flex NedirFlex Nedir
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.
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.
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
Flex Nedir ?Flex Nedir ?
TweetdeckTweetdeckGoovesharkGooveshark
Ünlü Flex uygulamalarıÜnlü Flex uygulamaları
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.
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ı
Flash Builder Nedir ?Flash Builder Nedir ?
Flash Builder Nedir ?Flash Builder Nedir ?
Flash Builder Nedir ?Flash Builder Nedir ?mxml dosyalarımxml dosyaları
Flash Builder Nedir ?Flash Builder Nedir ?as dosyalarıas dosyaları
Flash Builder Nedir ?Flash Builder Nedir ?as dosyalarıas dosyaları
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.
Flex Builder – Flash Builder Eclipse Flex Builder – Flash Builder Eclipse Plugin Nedir ?Plugin Nedir ?
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…
BlazeDS NedirBlazeDS Nedir
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
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.
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.
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.
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:
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>
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>
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>
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>
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>
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>
BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu
Blaze DS uyumlu – Flex Blaze DS uyumlu – Flex Projesi yaratmaProjesi yaratma
BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu
Blaze DS uyumlu – Flex Blaze DS uyumlu – Flex Projesi yaratmaProjesi yaratma
BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu
Blaze DS uyumlu – Flex Blaze DS uyumlu – Flex Projesi yaratmaProjesi yaratma
BlazeDS Spring EntegrasyonuBlazeDS Spring Entegrasyonu
Blaze DS uyumlu – Flex ProjesiBlaze DS uyumlu – Flex Projesi
Spring Web ProjesiSpring Web Projesi
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>
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(){}}}
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>
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(); }
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;}
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());}
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());}
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"/>
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
TeşekkürlerTeşekkürler