SlideShare une entreprise Scribd logo
1  sur  78
Flex Solutions for your daily development Marco Casario CTO – Comtaste http://casario.blogs.com
Who am I Flex Daily Solutions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Flex Daily Solutions
GOAL Architecture your code Design Patterns Flex Daily Solutions ,[object Object],[object Object],[object Object]
GOAL Create a View Helper Design Patterns Flex Daily Solutions A view helper contains formatting code, delegating its processing responsibilities to its helper classes, implemented as Actionscript classes.  Helpers also store the view's intermediate data model and serve as business data adapters.
GOAL Elements of a View Helper Design Patterns Flex Daily Solutions A View Helper  consists in an ActionScript class that encapsulates business logic in a helper instead of a view, making our application more modular by facilitating component re-use.
GOAL Elements of a View Helper Design Patterns Flex Daily Solutions <h:UploadHelper id=&quot;uploadHelper&quot; /> package com.fitc { import flash.events.Event; import flash.events.IOErrorEvent; ........ public class UploadHelper {} }
GOAL Create a Model Locator Design Patterns Flex Daily Solutions The Model Locator pattern defines a component that is responsible for centralizing data in an application.  When the data is updated in ModelLocator, all view components binded to the model, update themselves to render the new data.
GOAL Elements of a Model Locator Design Patterns Flex Daily Solutions A Model Locator is an ActionScript class that uses the Singleton pattern. This pattern has a method that creates a new instance of the class if one does not exist. If an instance already exists, it simply returns a reference to that object.
GOAL Create a Front Controller Design Patterns Flex Daily Solutions The Front Controller pattern defines a component that is responsible for processing application requests.  A front controller centralizes functions and applies them across all views and states.
GOAL Elements of a Front Controller Design Patterns Flex Daily Solutions A front controller centralizes functions and applies them across all views and states. It’s an ActionScript class that uses the addEventListener() method to create and manage event handlers.
GOAL Elements of a Front Controller Design Patterns Flex Daily Solutions public class EventController { private var myApp:FrontController_2 = Application.application as FrontController_2; public function EventController() { super(); myApp.addEventListener(&quot;changeBlog&quot;, myEventHandler); } public function myEventHandler(event:FC_Event):void { mx.controls.Alert.show(&quot;Event dispatched&quot;); }
GOAL Elements of a Front Controller Design Patterns Flex Daily Solutions To send complex data with a custom event we have to extend the Event class. The flash.events.Event class doesn’t allow developers to add properties to it.
GOAL Elements of a Front Controller Design Patterns Flex Daily Solutions ,[object Object],[object Object],[object Object]
GOAL Elements of a Front Controller Design Patterns Flex Daily Solutions public   class  FC_Event  extends  Event { public   var  evProp:String; public   function  FC_Event(evParam:String,type:String) { super (type); this .evProp = evParam; } override   public   function  clone():Event { return   new  FC_Event(evProp,type); }
GOAL Elements of a Front Controller Design Patterns Flex Daily Solutions Now you have to define the custom event using the Metadata and then dispatch the event from your component: <mx:Metadata> [Event(name=&quot;changeBlog&quot;, type=&quot;com.comtaste.fitc.FC_Event&quot;)] </mx:Metadata>
GOAL Elements of a Front Controller Design Patterns Flex Daily Solutions Now you have to define the custom event using the Metadata and then dispatch the event from your component: <comp:FC_CB id=&quot;fc_cb&quot;  x=&quot;161&quot; y=&quot;10&quot; changeBlog=&quot;eventFired(event)&quot; /> private function changeHandler():void { var eventObj:FC_Event = new FC_Event(myCombo.value as String,&quot;changeBlog&quot;);  dispatchEvent(eventObj); }
GOAL Advanced RPC tecnique  Flex RPC Flex Daily Solutions ASyncToken  is a dynamic class  that provides a place to set additional or token-level data for asynchronous rpc operations. Each RPC calls return objects typed as  AsyncToken.
GOAL The ASynchToken class  Flex RPC Flex Daily Solutions A dynamic class  allows develepers to programmatically add new properties at run-time. We can take advantage of this features to append a flag to the class to track our services calls.
GOAL The ASynchToken class  Flex RPC Flex Daily Solutions var myHS:HTTPService = new HTTPService(); myHS .url = “http://www.comtaste.com/page.jsp&quot;; var token:AsyncToken =  myHS .send(); token.addResponder(new Responder( function (event:ResultEvent):void { states = event.result.people.person; }, function (event:FaultEvent):void { Alert.show(“Error occured: ”+ event.fault.faultString); } );
GOAL Monitore the network traffic could be crucial in many contexts. TraceTarget Flex Daily Solutions Monitoring the network traffic
GOAL This class provides a logger target that uses the trace() method to output log messages  Flex Daily Solutions The TraceTarget class  TraceTarget
GOAL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Flex Daily Solutions Debug using the Logging APIs  TraceTarget
GOAL To use the Logging API and send the messages to the Flash Player Debug, you must define the log target and add it to the Log object: myLogTarget:TraceTarget = new TraceTarget(); Log.addTarget(myLogTarget); Logging APIs Flex Daily Solutions Debug using the Logging APIs
GOAL Then, using the  getLogger()  method of the Log object, you can send a message to the file that you intend to debug: Log.getLogger(&quot;myMXMLfileOrClass&quot;).info(&quot;My message&quot;); Flex Daily Solutions Debug using the Logging APIs  Logging APIs
GOAL ,[object Object],[object Object],[object Object],Flex Daily Solutions Debug using the Logging APIs  Logging APIs
GOAL Flex Daily Solutions Debug using the Logging APIs  Logging APIs
GOAL You can print all the messages passed to the global trace() method in an external file called flashlog.txt.  Create and configure the mm.cfg file (usually located in  driveocuments and Settingsser_name) as follow : TraceOutputFileName=c:/logs/flashlog.txt ErrorReportingEnable=1 TraceOutputFileEnable=1 MaxWarnings=0 Troubleshooting tips for flashlog.txt not being generated . Flex Daily Solutions Debug with the flashlog.txt file  Logging APIs
GOAL URLLoader Flex Daily Solutions Remote communication without using the RPC Flex classes The RPC classes are not the only system for remote data communication with Flex.  We can also use the URLLoader class, part of the  flash.net  package, which permits the downloading of data as text, binary data, or URL-encoded variables.
GOAL URLLoader Flex Daily Solutions Remote communication without using the RPC Flex classes At first create an instance of the URLLoader class: private var myURLService:URLLoader; At this point, you can call the load() method of the class, which expects to receive a URLRequest object as a parameter.
GOAL URLLoader Flex Daily Solutions Remote communication without using the RPC Flex classes The URLRequest class specifies that all the information is wrapped in a single HTTP request: myURLService.load( new URLRequest(“http://server.com/data.xml&quot;));.
GOAL URLLoader Flex Daily Solutions Remote communication without using the RPC Flex classes When response data is returned, the COMPLETE event is dispatched. This event makes up part of the  flash.events.Event  class, and you usually record it with the addEventListener method: myURLService.addEventListener(Event.COMPLETE, completeHandler);
GOAL Adobe AIR Flex Daily Solutions Flex on the desktop with AIR
GOAL Adobe AIR Flex Daily Solutions Flex on the desktop with AIR At the end of the FITC I want to hope everyone knows what  Adobe AIR is ;)  Developing an AIR desktop application is  very easy if you are a Flex developers.
GOAL Optimizing Flex Builder Performance IDE Optimizations Flex Daily Solutions ,[object Object],[object Object],[object Object],[object Object]
GOAL Optimizing Flex Builder Performance Flex Daily Solutions ,[object Object],[object Object],[object Object],[object Object],IDE Optimizations
GOAL Optimizing Flex Builder Performance Flex Daily Solutions Check for the version of the JVM : FlexBuilder folderrein>java -version Check on the Sun site the latest version of the JRE and if a newer version exists, download. Copy the jre folder in the package you just downloaded to the installation folder of Flex Builder, overwriting the one that’s already there . IDE Optimizations
GOAL Optimizing Flex Builder Performance Flex Daily Solutions ,[object Object],[object Object],[object Object],[object Object],[object Object],IDE Optimizations
GOAL Optimizing Flex Builder Performance Flex Daily Solutions ,[object Object],IDE Optimizations Xms: 512MB Xmx: 1024MB -vmargs -Xms1024m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m
GOAL Shortcuts Flex Daily Solutions Flex Builder Keyboard Shortcut  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
GOAL Shortcuts Flex Daily Solutions Flex Builder Keyboard Shortcut  ,[object Object],[object Object],[object Object],[object Object],[object Object]
GOAL Flex Daily Solutions Overcoming the cross domain policy  A proxy service  acts as a bridge between the application and the remote data to load.  It eliminates the need for crossdomain.xml policy file on the server that hosts the web service.  Instead of directly accessing external resources on different domains, Flex will access this proxy service, which looks after accessing the resources on the specified domains . Cross domain
GOAL Flex Daily Solutions Overcoming the cross domain policy  You can develop your own proxy service creating a server-side proxy file that consists of a script published on the server.  <%@ page language=&quot;java&quot; contentType=&quot;text/html; charset=utf-8&quot; pageEncoding=&quot;utf-8&quot; import=&quot;java.io.BufferedReader, java.io.InputStreamReader, java.io.IOException, java.io.InputStream, java.net.MalformedURLException, java.net.URL, java.net.URLConnection&quot; %> <%! private String contentURL; public static final String CONTENT_URL_NAME = &quot;contentURL&quot;; %> <% // get the url through the request: ............. Cross domain
GOAL Flex Daily Solutions Overcoming the cross domain policy  You can also check on the client side whether the cross-domain file exists and then decide if  loading the proxy service.  An object dispatches a  SecurityErrorEvent  event  to report the occurrence of a security error. var loader:URLLoader = new URLLoader(); loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, loadProxyService); var request:URLRequest = new URLRequest(&quot;http://www.[yourDomain].com&quot;); loader.load(request); } private function loadProxyService(event:SecurityErrorEvent):void {} Cross domain
GOAL Flex Daily Solutions Overcoming the cross domain policy  Another option is to use the Proxy Service of BlazeDS. BlazeDS is the remoting and HTTP-based messeaging which Adobe is contributing to the community under LGPL. It’s free and open source. Cross domain
GOAL Flex Daily Solutions Overcoming the cross domain policy  ,[object Object],[object Object],[object Object],[object Object],Cross domain
GOAL Flex Daily Solutions Overcoming the cross domain policy  In order to use BlazeDS Proxy Service you need to install BlazeDS on your server.   After installation you’ll find the proxy-config.xml file in the  WEB-INF/flex/  folder.  Open the  proxy-config.xml in a text or XML editor and add your web service. Cross domain
GOAL Flex Daily Solutions Overcoming the cross domain policy  Add the web service destination in the  proxy-config.xml file, above the </service> tag:  <destination id=“myWS&quot;> <properties> <wsdl>http://www.server.com/mycfc.cfc?wsdl</wsdl> <soap>*</soap> </properties> <adapter ref=&quot;soap-proxy&quot;/> </destination> Cross domain
GOAL Flex Daily Solutions Overcoming the cross domain policy  ,[object Object],[object Object],[object Object],[object Object],Cross domain
GOAL Cross domain Flex Daily Solutions Overcoming the cross domain policy  ,[object Object],[object Object],[object Object]
GOAL Time is money. Save time reducing development time. The FlexLib project is a community effort to create open source user interface components for Adobe Flex Flex open source Flex Daily Solutions Don’t reinvent the wheel.
GOAL A lot of ready to use and to extend Flex components. Current components: AdvancedForm, Base64Image, EnhancedButtonSkin, CanvasButton, ConvertibleTreeList, Draggable Slider, Fire, Highlighter, HorizontalAxisDataSelector IconLoader, ImageMap, PromptingTextArea, PromptingTextInput, Scrollable Menu Controls, SuperTabNavigator, Alternative Scrolling Canvases, Horizontal Accordion, TreeGrid, FlowBox, Docking ToolBar, Flex Scheduling Framework Flex open source Flex Daily Solutions The flexlib Library
GOAL Flex 3 Flex Daily Solutions My favourite Flex 3 features  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
GOAL Flex 3 Flex Daily Solutions My favourite Flex 3 features  ,[object Object],[object Object],[object Object],[object Object]
GOAL Flex 3 Flex Daily Solutions My favourite Flex 3 features  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
GOAL Flex 3 Flex Daily Solutions My favourite Flex 3 features  The Flex 3 SDK offers new classes that enable you to assign a GroupingCollection to a data provider instead of flat data (usually returned as response data). To regroup the data in a grouping view, you must instance a Grouping object and specify the data to use for the regrouping through its fields property: var myGroup:Grouping = new Grouping(); myGroup.fields = [new GroupingField(&quot;region&quot;)];
GOAL Flex 3 Flex Daily Solutions My favourite Flex 3 features  You can then create a GroupingCollection object and send the ArrayCollection to it(the flat data is contained in the source property): var myGroupColl:GroupingCollection = new GroupingCollection(); myGroupColl.source = new ArrayCollection(myRegion.city);
GOAL Flex 3 Flex Daily Solutions My favourite Flex 3 features  Finally, link the Grouping object to the grouping property of the GroupingCollection object and create the collection class to send to the dataProvider of the AdvancedDataGrid: myGroupColl.grouping = myGroup; myGroupColl.refresh(); myADG.dataProvider = myGroupColl;
GOAL Flex 3 Flex Daily Solutions My favourite Flex 3 features  In Flex 3 you can create a summary using the summaries property of the GroupingField class. The summary data can be visualized in a row of the AdvancedDataGrid. To create summary data, use the  summaries  property of the  GroupingField  class. This property accepts instances of the  SummaryRow  classand it contains the  fields  property, which specifies an Array of one or more SummaryFields objects defining the data fields to create for the summary.
GOAL Flex 3 Flex Daily Solutions My favourite Flex 3 features  Consider an ArrayCollection created from a Model : <mx:Model id=&quot;myRegion&quot; source=“assets/states.xml&quot; /> <mx:ArrayCollection id=&quot;myAC&quot; source=&quot;{myRegion.city}&quot; />
GOAL Flex 3 Flex Daily Solutions My favourite Flex 3 features  To create a summary data you must first create grouped data: <mx:GroupingCollection id=&quot;myGC&quot; source=&quot;{myAC}&quot;> <mx:Grouping> <mx:GroupingField name=&quot;Region&quot;>
GOAL Flex 3 Flex Daily Solutions My favourite Flex 3 features  In the <mx:GroupingField> tag, specify the summaries property, which takes instances of the SummaryRow class: <mx:summaries> <mx:SummaryRow summaryPlacement=&quot;group&quot;>
GOAL Flex 3 Flex Daily Solutions My favourite Flex 3 features  For the SummaryRow class, specify the fields property, which defines the fields on which to carry out the summary operations: <mx:fields> <mx:SummaryField operation=&quot;SUM&quot; dataField=&quot;population&quot; label=&quot;total&quot;/>
GOAL Flex 3 Flex Daily Solutions My favourite Flex 3 features  These are the type of operations that you can handle using the Summary:
GOAL Cairngen is a one-shot code generation tool for Adobe Cairngorm developed by Eric Feminella  (http://www.ericfeminella.com/) Cairngen is built entirely in Ant, and provides a solution for generating Cairngorm classes from within the Flex builder IDE. Cairngen Flex Daily Solutions Boost your productivity with  Cairngen
GOAL Apache Ant is a software tool for automating software build processes.  Ant uses XML to describe the build process and its dependencies, whereas make has its Makefile format. By default the XML file is named build.xml. Ant is an Apache project. It is open source software, and is released under the Apache Software License. Cairngen Flex Daily Solutions Boost your productivity with  Cairngen
GOAL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Cairngen Flex Daily Solutions Boost your productivity with  Cairngen
GOAL In addition, the main target will also create your applications ModelLocator, FrontController and Services.mxml and generate them to the appropriate packages. Cairngen Flex Daily Solutions Boost your productivity with  Cairngen
GOAL After downloading Cairngen 2.1, extract Cairngen to your Flex project directory, or create a new generic project and point it to the location where you extracted Cairngen 2.x. Cairngen Flex Daily Solutions Boost your productivity with  Cairngen
GOAL Flex  Inspirational  Quotes Agenda Flex Daily Solutions Fight your daily demotivation while coding
GOAL A developer is the product of his thoughts. Inspirational Quotes Flex Daily Solutions Think and Believe Big.
GOAL You’re a better Flex developer than you think you are. Agenda Flex Daily Solutions Good developers are ordinary people that believe in what they do.
GOAL Let interest and enthusiasm guide you. Agenda Flex Daily Solutions Learn to be eager and avid of knowledge. It’s more important than your brainpower.
GOAL Not only knowledge is power. Agenda Flex Daily Solutions Use knowledge in a constructive way.  Improve your ability to get information.
GOAL Simplicity. Agenda Flex Daily Solutions Don’t even think that a more complex and better solution than yours exists .
GOAL Never sell yourself short. Agenda Flex Daily Solutions Find your own skills and your talents.
GOAL Be your Flex Entreprenure. Agenda Flex Daily Solutions “  I don’t know the answer to those questions, but I could find a man in five minutes who does “   Henry Ford
we make it RIA Marco Casario CTO – Comtaste http://casario.blogs.com

Contenu connexe

Tendances

Gerenciamento de estado no Angular com NgRx
Gerenciamento de estado no Angular com NgRxGerenciamento de estado no Angular com NgRx
Gerenciamento de estado no Angular com NgRxLoiane Groner
 
Angular tutorial
Angular tutorialAngular tutorial
Angular tutorialRohit Gupta
 
Full-Stack Reativo com Spring WebFlux + Angular - Devs Java Girl
Full-Stack Reativo com Spring WebFlux + Angular - Devs Java GirlFull-Stack Reativo com Spring WebFlux + Angular - Devs Java Girl
Full-Stack Reativo com Spring WebFlux + Angular - Devs Java GirlLoiane Groner
 
Angular for Java Enterprise Developers: Oracle Code One 2018
Angular for Java Enterprise Developers: Oracle Code One 2018Angular for Java Enterprise Developers: Oracle Code One 2018
Angular for Java Enterprise Developers: Oracle Code One 2018Loiane Groner
 
Siebel Open UI Debugging (Siebel Open UI Training, Part 7)
Siebel Open UI Debugging (Siebel Open UI Training, Part 7)Siebel Open UI Debugging (Siebel Open UI Training, Part 7)
Siebel Open UI Debugging (Siebel Open UI Training, Part 7)Tech OneStop
 
GWT training session 1
GWT training session 1GWT training session 1
GWT training session 1SNEHAL MASNE
 
Customizing the Presentation Model and Physical Renderer in Siebel Open UI
Customizing the Presentation Model and Physical Renderer in Siebel Open UICustomizing the Presentation Model and Physical Renderer in Siebel Open UI
Customizing the Presentation Model and Physical Renderer in Siebel Open UITech OneStop
 
Content-Driven Apps with React
Content-Driven Apps with ReactContent-Driven Apps with React
Content-Driven Apps with ReactNetcetera
 
Redux and context api with react native app introduction, use cases, implemen...
Redux and context api with react native app introduction, use cases, implemen...Redux and context api with react native app introduction, use cases, implemen...
Redux and context api with react native app introduction, use cases, implemen...Katy Slemon
 

Tendances (9)

Gerenciamento de estado no Angular com NgRx
Gerenciamento de estado no Angular com NgRxGerenciamento de estado no Angular com NgRx
Gerenciamento de estado no Angular com NgRx
 
Angular tutorial
Angular tutorialAngular tutorial
Angular tutorial
 
Full-Stack Reativo com Spring WebFlux + Angular - Devs Java Girl
Full-Stack Reativo com Spring WebFlux + Angular - Devs Java GirlFull-Stack Reativo com Spring WebFlux + Angular - Devs Java Girl
Full-Stack Reativo com Spring WebFlux + Angular - Devs Java Girl
 
Angular for Java Enterprise Developers: Oracle Code One 2018
Angular for Java Enterprise Developers: Oracle Code One 2018Angular for Java Enterprise Developers: Oracle Code One 2018
Angular for Java Enterprise Developers: Oracle Code One 2018
 
Siebel Open UI Debugging (Siebel Open UI Training, Part 7)
Siebel Open UI Debugging (Siebel Open UI Training, Part 7)Siebel Open UI Debugging (Siebel Open UI Training, Part 7)
Siebel Open UI Debugging (Siebel Open UI Training, Part 7)
 
GWT training session 1
GWT training session 1GWT training session 1
GWT training session 1
 
Customizing the Presentation Model and Physical Renderer in Siebel Open UI
Customizing the Presentation Model and Physical Renderer in Siebel Open UICustomizing the Presentation Model and Physical Renderer in Siebel Open UI
Customizing the Presentation Model and Physical Renderer in Siebel Open UI
 
Content-Driven Apps with React
Content-Driven Apps with ReactContent-Driven Apps with React
Content-Driven Apps with React
 
Redux and context api with react native app introduction, use cases, implemen...
Redux and context api with react native app introduction, use cases, implemen...Redux and context api with react native app introduction, use cases, implemen...
Redux and context api with react native app introduction, use cases, implemen...
 

En vedette

Subprime Primer 1
Subprime Primer 1Subprime Primer 1
Subprime Primer 1snowslider
 
Presentacion Report Eseo Journals Research
Presentacion Report Eseo Journals ResearchPresentacion Report Eseo Journals Research
Presentacion Report Eseo Journals Researcheseochile
 
Diplomado eseo tec_junio2011
Diplomado eseo tec_junio2011Diplomado eseo tec_junio2011
Diplomado eseo tec_junio2011eseochile
 
Eseo presentation 2011 wits
Eseo presentation 2011 witsEseo presentation 2011 wits
Eseo presentation 2011 witseseochile
 
Light Hearted Art
Light Hearted ArtLight Hearted Art
Light Hearted ArtFrankb
 
Aprendiendo a usar las cuentas de correo corporativos
Aprendiendo a usar las cuentas de correo corporativosAprendiendo a usar las cuentas de correo corporativos
Aprendiendo a usar las cuentas de correo corporativosiliana29
 

En vedette (6)

Subprime Primer 1
Subprime Primer 1Subprime Primer 1
Subprime Primer 1
 
Presentacion Report Eseo Journals Research
Presentacion Report Eseo Journals ResearchPresentacion Report Eseo Journals Research
Presentacion Report Eseo Journals Research
 
Diplomado eseo tec_junio2011
Diplomado eseo tec_junio2011Diplomado eseo tec_junio2011
Diplomado eseo tec_junio2011
 
Eseo presentation 2011 wits
Eseo presentation 2011 witsEseo presentation 2011 wits
Eseo presentation 2011 wits
 
Light Hearted Art
Light Hearted ArtLight Hearted Art
Light Hearted Art
 
Aprendiendo a usar las cuentas de correo corporativos
Aprendiendo a usar las cuentas de correo corporativosAprendiendo a usar las cuentas de correo corporativos
Aprendiendo a usar las cuentas de correo corporativos
 

Similaire à Flex Daily Solutions @ FITC 2008

.NET Portfolio
.NET Portfolio.NET Portfolio
.NET Portfoliomwillmer
 
27 - Panorama Necto 14 component mode & java script - visualization & data di...
27 - Panorama Necto 14 component mode & java script - visualization & data di...27 - Panorama Necto 14 component mode & java script - visualization & data di...
27 - Panorama Necto 14 component mode & java script - visualization & data di...Panorama Software
 
Necto 16 training 20 component mode &amp; java script
Necto 16 training 20   component mode &amp; java scriptNecto 16 training 20   component mode &amp; java script
Necto 16 training 20 component mode &amp; java scriptPanorama Software
 
MAX 2008 - Building your 1st AIR application
MAX 2008 - Building your 1st AIR applicationMAX 2008 - Building your 1st AIR application
MAX 2008 - Building your 1st AIR applicationrtretola
 
Flex In Portal Final
Flex In Portal   FinalFlex In Portal   Final
Flex In Portal FinalSunil Patil
 
Flex_rest_optimization
Flex_rest_optimizationFlex_rest_optimization
Flex_rest_optimizationKhou Suylong
 
Top 10 Techniques For React Performance Optimization in 2022.pptx
Top 10 Techniques For React Performance Optimization in 2022.pptxTop 10 Techniques For React Performance Optimization in 2022.pptx
Top 10 Techniques For React Performance Optimization in 2022.pptxBOSC Tech Labs
 
Operator SDK for K8s using Go
Operator SDK for K8s using GoOperator SDK for K8s using Go
Operator SDK for K8s using GoCloudOps2005
 
Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Lou Sacco
 
Flex Camp London
Flex Camp LondonFlex Camp London
Flex Camp Londonguest1cb483
 
Android application architecture
Android application architectureAndroid application architecture
Android application architectureRomain Rochegude
 
Fundamental concepts of react js
Fundamental concepts of react jsFundamental concepts of react js
Fundamental concepts of react jsStephieJohn
 
Apex Replay Debugger and Salesforce Platform Events.pptx
Apex Replay Debugger and Salesforce Platform Events.pptxApex Replay Debugger and Salesforce Platform Events.pptx
Apex Replay Debugger and Salesforce Platform Events.pptxmohayyudin7826
 

Similaire à Flex Daily Solutions @ FITC 2008 (20)

.NET Portfolio
.NET Portfolio.NET Portfolio
.NET Portfolio
 
27 - Panorama Necto 14 component mode & java script - visualization & data di...
27 - Panorama Necto 14 component mode & java script - visualization & data di...27 - Panorama Necto 14 component mode & java script - visualization & data di...
27 - Panorama Necto 14 component mode & java script - visualization & data di...
 
ReactJS.pptx
ReactJS.pptxReactJS.pptx
ReactJS.pptx
 
manual
manualmanual
manual
 
manual
manualmanual
manual
 
Test
TestTest
Test
 
Necto 16 training 20 component mode &amp; java script
Necto 16 training 20   component mode &amp; java scriptNecto 16 training 20   component mode &amp; java script
Necto 16 training 20 component mode &amp; java script
 
MAX 2008 - Building your 1st AIR application
MAX 2008 - Building your 1st AIR applicationMAX 2008 - Building your 1st AIR application
MAX 2008 - Building your 1st AIR application
 
Adobe Flex4
Adobe Flex4 Adobe Flex4
Adobe Flex4
 
Flex In Portal Final
Flex In Portal   FinalFlex In Portal   Final
Flex In Portal Final
 
Flex_rest_optimization
Flex_rest_optimizationFlex_rest_optimization
Flex_rest_optimization
 
react-en.pdf
react-en.pdfreact-en.pdf
react-en.pdf
 
Top 10 Techniques For React Performance Optimization in 2022.pptx
Top 10 Techniques For React Performance Optimization in 2022.pptxTop 10 Techniques For React Performance Optimization in 2022.pptx
Top 10 Techniques For React Performance Optimization in 2022.pptx
 
Operator SDK for K8s using Go
Operator SDK for K8s using GoOperator SDK for K8s using Go
Operator SDK for K8s using Go
 
Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014
 
Flex Camp London
Flex Camp LondonFlex Camp London
Flex Camp London
 
FlexCamp London
FlexCamp LondonFlexCamp London
FlexCamp London
 
Android application architecture
Android application architectureAndroid application architecture
Android application architecture
 
Fundamental concepts of react js
Fundamental concepts of react jsFundamental concepts of react js
Fundamental concepts of react js
 
Apex Replay Debugger and Salesforce Platform Events.pptx
Apex Replay Debugger and Salesforce Platform Events.pptxApex Replay Debugger and Salesforce Platform Events.pptx
Apex Replay Debugger and Salesforce Platform Events.pptx
 

Plus de marcocasario

HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...marcocasario
 
HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...
HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...
HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...marcocasario
 
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore RomeoHTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeomarcocasario
 
HTML5 cross-platform and device development: web app per tutti gli schermi
HTML5 cross-platform and device development: web app per tutti gli schermiHTML5 cross-platform and device development: web app per tutti gli schermi
HTML5 cross-platform and device development: web app per tutti gli schermimarcocasario
 
Applicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore RomeoApplicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore Romeomarcocasario
 
Mobile HTML5 Web Apps - Codemotion 2012
Mobile HTML5 Web Apps - Codemotion 2012Mobile HTML5 Web Apps - Codemotion 2012
Mobile HTML5 Web Apps - Codemotion 2012marcocasario
 
Enterprise Spring and Flex applications
Enterprise Spring and Flex applicationsEnterprise Spring and Flex applications
Enterprise Spring and Flex applicationsmarcocasario
 
Local Persistent data with ActionScript 3 and AIR
Local Persistent data with ActionScript 3 and AIRLocal Persistent data with ActionScript 3 and AIR
Local Persistent data with ActionScript 3 and AIRmarcocasario
 
Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3
Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3
Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3marcocasario
 
Adobe TechConnection: Flex Best Practices
Adobe TechConnection: Flex Best PracticesAdobe TechConnection: Flex Best Practices
Adobe TechConnection: Flex Best Practicesmarcocasario
 
We make it RIA at Comtaste
We make it RIA at ComtasteWe make it RIA at Comtaste
We make it RIA at Comtastemarcocasario
 
Flex and AIR User Interface Design Showcases and Examples
Flex and AIR User Interface Design Showcases and ExamplesFlex and AIR User Interface Design Showcases and Examples
Flex and AIR User Interface Design Showcases and Examplesmarcocasario
 
Designing Flex and AIR applications
Designing Flex and AIR applicationsDesigning Flex and AIR applications
Designing Flex and AIR applicationsmarcocasario
 
Architecting ActionScript 3 applications using PureMVC
Architecting ActionScript 3 applications using PureMVCArchitecting ActionScript 3 applications using PureMVC
Architecting ActionScript 3 applications using PureMVCmarcocasario
 
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...marcocasario
 
Developing Mash up applications with Adobe AIR
Developing Mash up applications with Adobe AIRDeveloping Mash up applications with Adobe AIR
Developing Mash up applications with Adobe AIRmarcocasario
 
Rich Internet Application con Flex, AIR e Java
Rich Internet Application con Flex, AIR e JavaRich Internet Application con Flex, AIR e Java
Rich Internet Application con Flex, AIR e Javamarcocasario
 
Developing Adobe AIR desktop applications
Developing Adobe AIR desktop applicationsDeveloping Adobe AIR desktop applications
Developing Adobe AIR desktop applicationsmarcocasario
 
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3marcocasario
 
Choosing the right Rich Internet Application technology path
Choosing the right Rich Internet Application technology pathChoosing the right Rich Internet Application technology path
Choosing the right Rich Internet Application technology pathmarcocasario
 

Plus de marcocasario (20)

HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
 
HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...
HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...
HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Clau...
 
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore RomeoHTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
 
HTML5 cross-platform and device development: web app per tutti gli schermi
HTML5 cross-platform and device development: web app per tutti gli schermiHTML5 cross-platform and device development: web app per tutti gli schermi
HTML5 cross-platform and device development: web app per tutti gli schermi
 
Applicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore RomeoApplicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore Romeo
 
Mobile HTML5 Web Apps - Codemotion 2012
Mobile HTML5 Web Apps - Codemotion 2012Mobile HTML5 Web Apps - Codemotion 2012
Mobile HTML5 Web Apps - Codemotion 2012
 
Enterprise Spring and Flex applications
Enterprise Spring and Flex applicationsEnterprise Spring and Flex applications
Enterprise Spring and Flex applications
 
Local Persistent data with ActionScript 3 and AIR
Local Persistent data with ActionScript 3 and AIRLocal Persistent data with ActionScript 3 and AIR
Local Persistent data with ActionScript 3 and AIR
 
Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3
Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3
Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3
 
Adobe TechConnection: Flex Best Practices
Adobe TechConnection: Flex Best PracticesAdobe TechConnection: Flex Best Practices
Adobe TechConnection: Flex Best Practices
 
We make it RIA at Comtaste
We make it RIA at ComtasteWe make it RIA at Comtaste
We make it RIA at Comtaste
 
Flex and AIR User Interface Design Showcases and Examples
Flex and AIR User Interface Design Showcases and ExamplesFlex and AIR User Interface Design Showcases and Examples
Flex and AIR User Interface Design Showcases and Examples
 
Designing Flex and AIR applications
Designing Flex and AIR applicationsDesigning Flex and AIR applications
Designing Flex and AIR applications
 
Architecting ActionScript 3 applications using PureMVC
Architecting ActionScript 3 applications using PureMVCArchitecting ActionScript 3 applications using PureMVC
Architecting ActionScript 3 applications using PureMVC
 
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...
 
Developing Mash up applications with Adobe AIR
Developing Mash up applications with Adobe AIRDeveloping Mash up applications with Adobe AIR
Developing Mash up applications with Adobe AIR
 
Rich Internet Application con Flex, AIR e Java
Rich Internet Application con Flex, AIR e JavaRich Internet Application con Flex, AIR e Java
Rich Internet Application con Flex, AIR e Java
 
Developing Adobe AIR desktop applications
Developing Adobe AIR desktop applicationsDeveloping Adobe AIR desktop applications
Developing Adobe AIR desktop applications
 
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3
 
Choosing the right Rich Internet Application technology path
Choosing the right Rich Internet Application technology pathChoosing the right Rich Internet Application technology path
Choosing the right Rich Internet Application technology path
 

Dernier

Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 

Dernier (20)

Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

Flex Daily Solutions @ FITC 2008

  • 1. Flex Solutions for your daily development Marco Casario CTO – Comtaste http://casario.blogs.com
  • 2.
  • 3.
  • 4.
  • 5. GOAL Create a View Helper Design Patterns Flex Daily Solutions A view helper contains formatting code, delegating its processing responsibilities to its helper classes, implemented as Actionscript classes. Helpers also store the view's intermediate data model and serve as business data adapters.
  • 6. GOAL Elements of a View Helper Design Patterns Flex Daily Solutions A View Helper consists in an ActionScript class that encapsulates business logic in a helper instead of a view, making our application more modular by facilitating component re-use.
  • 7. GOAL Elements of a View Helper Design Patterns Flex Daily Solutions <h:UploadHelper id=&quot;uploadHelper&quot; /> package com.fitc { import flash.events.Event; import flash.events.IOErrorEvent; ........ public class UploadHelper {} }
  • 8. GOAL Create a Model Locator Design Patterns Flex Daily Solutions The Model Locator pattern defines a component that is responsible for centralizing data in an application. When the data is updated in ModelLocator, all view components binded to the model, update themselves to render the new data.
  • 9. GOAL Elements of a Model Locator Design Patterns Flex Daily Solutions A Model Locator is an ActionScript class that uses the Singleton pattern. This pattern has a method that creates a new instance of the class if one does not exist. If an instance already exists, it simply returns a reference to that object.
  • 10. GOAL Create a Front Controller Design Patterns Flex Daily Solutions The Front Controller pattern defines a component that is responsible for processing application requests. A front controller centralizes functions and applies them across all views and states.
  • 11. GOAL Elements of a Front Controller Design Patterns Flex Daily Solutions A front controller centralizes functions and applies them across all views and states. It’s an ActionScript class that uses the addEventListener() method to create and manage event handlers.
  • 12. GOAL Elements of a Front Controller Design Patterns Flex Daily Solutions public class EventController { private var myApp:FrontController_2 = Application.application as FrontController_2; public function EventController() { super(); myApp.addEventListener(&quot;changeBlog&quot;, myEventHandler); } public function myEventHandler(event:FC_Event):void { mx.controls.Alert.show(&quot;Event dispatched&quot;); }
  • 13. GOAL Elements of a Front Controller Design Patterns Flex Daily Solutions To send complex data with a custom event we have to extend the Event class. The flash.events.Event class doesn’t allow developers to add properties to it.
  • 14.
  • 15. GOAL Elements of a Front Controller Design Patterns Flex Daily Solutions public class FC_Event extends Event { public var evProp:String; public function FC_Event(evParam:String,type:String) { super (type); this .evProp = evParam; } override public function clone():Event { return new FC_Event(evProp,type); }
  • 16. GOAL Elements of a Front Controller Design Patterns Flex Daily Solutions Now you have to define the custom event using the Metadata and then dispatch the event from your component: <mx:Metadata> [Event(name=&quot;changeBlog&quot;, type=&quot;com.comtaste.fitc.FC_Event&quot;)] </mx:Metadata>
  • 17. GOAL Elements of a Front Controller Design Patterns Flex Daily Solutions Now you have to define the custom event using the Metadata and then dispatch the event from your component: <comp:FC_CB id=&quot;fc_cb&quot; x=&quot;161&quot; y=&quot;10&quot; changeBlog=&quot;eventFired(event)&quot; /> private function changeHandler():void { var eventObj:FC_Event = new FC_Event(myCombo.value as String,&quot;changeBlog&quot;); dispatchEvent(eventObj); }
  • 18. GOAL Advanced RPC tecnique Flex RPC Flex Daily Solutions ASyncToken is a dynamic class that provides a place to set additional or token-level data for asynchronous rpc operations. Each RPC calls return objects typed as AsyncToken.
  • 19. GOAL The ASynchToken class Flex RPC Flex Daily Solutions A dynamic class allows develepers to programmatically add new properties at run-time. We can take advantage of this features to append a flag to the class to track our services calls.
  • 20. GOAL The ASynchToken class Flex RPC Flex Daily Solutions var myHS:HTTPService = new HTTPService(); myHS .url = “http://www.comtaste.com/page.jsp&quot;; var token:AsyncToken = myHS .send(); token.addResponder(new Responder( function (event:ResultEvent):void { states = event.result.people.person; }, function (event:FaultEvent):void { Alert.show(“Error occured: ”+ event.fault.faultString); } );
  • 21. GOAL Monitore the network traffic could be crucial in many contexts. TraceTarget Flex Daily Solutions Monitoring the network traffic
  • 22. GOAL This class provides a logger target that uses the trace() method to output log messages Flex Daily Solutions The TraceTarget class TraceTarget
  • 23.
  • 24. GOAL To use the Logging API and send the messages to the Flash Player Debug, you must define the log target and add it to the Log object: myLogTarget:TraceTarget = new TraceTarget(); Log.addTarget(myLogTarget); Logging APIs Flex Daily Solutions Debug using the Logging APIs
  • 25. GOAL Then, using the getLogger() method of the Log object, you can send a message to the file that you intend to debug: Log.getLogger(&quot;myMXMLfileOrClass&quot;).info(&quot;My message&quot;); Flex Daily Solutions Debug using the Logging APIs Logging APIs
  • 26.
  • 27. GOAL Flex Daily Solutions Debug using the Logging APIs Logging APIs
  • 28. GOAL You can print all the messages passed to the global trace() method in an external file called flashlog.txt. Create and configure the mm.cfg file (usually located in driveocuments and Settingsser_name) as follow : TraceOutputFileName=c:/logs/flashlog.txt ErrorReportingEnable=1 TraceOutputFileEnable=1 MaxWarnings=0 Troubleshooting tips for flashlog.txt not being generated . Flex Daily Solutions Debug with the flashlog.txt file Logging APIs
  • 29. GOAL URLLoader Flex Daily Solutions Remote communication without using the RPC Flex classes The RPC classes are not the only system for remote data communication with Flex. We can also use the URLLoader class, part of the flash.net package, which permits the downloading of data as text, binary data, or URL-encoded variables.
  • 30. GOAL URLLoader Flex Daily Solutions Remote communication without using the RPC Flex classes At first create an instance of the URLLoader class: private var myURLService:URLLoader; At this point, you can call the load() method of the class, which expects to receive a URLRequest object as a parameter.
  • 31. GOAL URLLoader Flex Daily Solutions Remote communication without using the RPC Flex classes The URLRequest class specifies that all the information is wrapped in a single HTTP request: myURLService.load( new URLRequest(“http://server.com/data.xml&quot;));.
  • 32. GOAL URLLoader Flex Daily Solutions Remote communication without using the RPC Flex classes When response data is returned, the COMPLETE event is dispatched. This event makes up part of the flash.events.Event class, and you usually record it with the addEventListener method: myURLService.addEventListener(Event.COMPLETE, completeHandler);
  • 33. GOAL Adobe AIR Flex Daily Solutions Flex on the desktop with AIR
  • 34. GOAL Adobe AIR Flex Daily Solutions Flex on the desktop with AIR At the end of the FITC I want to hope everyone knows what Adobe AIR is ;) Developing an AIR desktop application is very easy if you are a Flex developers.
  • 35.
  • 36.
  • 37. GOAL Optimizing Flex Builder Performance Flex Daily Solutions Check for the version of the JVM : FlexBuilder folderrein>java -version Check on the Sun site the latest version of the JRE and if a newer version exists, download. Copy the jre folder in the package you just downloaded to the installation folder of Flex Builder, overwriting the one that’s already there . IDE Optimizations
  • 38.
  • 39.
  • 40.
  • 41.
  • 42. GOAL Flex Daily Solutions Overcoming the cross domain policy A proxy service acts as a bridge between the application and the remote data to load. It eliminates the need for crossdomain.xml policy file on the server that hosts the web service. Instead of directly accessing external resources on different domains, Flex will access this proxy service, which looks after accessing the resources on the specified domains . Cross domain
  • 43. GOAL Flex Daily Solutions Overcoming the cross domain policy You can develop your own proxy service creating a server-side proxy file that consists of a script published on the server. <%@ page language=&quot;java&quot; contentType=&quot;text/html; charset=utf-8&quot; pageEncoding=&quot;utf-8&quot; import=&quot;java.io.BufferedReader, java.io.InputStreamReader, java.io.IOException, java.io.InputStream, java.net.MalformedURLException, java.net.URL, java.net.URLConnection&quot; %> <%! private String contentURL; public static final String CONTENT_URL_NAME = &quot;contentURL&quot;; %> <% // get the url through the request: ............. Cross domain
  • 44. GOAL Flex Daily Solutions Overcoming the cross domain policy You can also check on the client side whether the cross-domain file exists and then decide if loading the proxy service. An object dispatches a SecurityErrorEvent event to report the occurrence of a security error. var loader:URLLoader = new URLLoader(); loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, loadProxyService); var request:URLRequest = new URLRequest(&quot;http://www.[yourDomain].com&quot;); loader.load(request); } private function loadProxyService(event:SecurityErrorEvent):void {} Cross domain
  • 45. GOAL Flex Daily Solutions Overcoming the cross domain policy Another option is to use the Proxy Service of BlazeDS. BlazeDS is the remoting and HTTP-based messeaging which Adobe is contributing to the community under LGPL. It’s free and open source. Cross domain
  • 46.
  • 47. GOAL Flex Daily Solutions Overcoming the cross domain policy In order to use BlazeDS Proxy Service you need to install BlazeDS on your server. After installation you’ll find the proxy-config.xml file in the WEB-INF/flex/ folder. Open the proxy-config.xml in a text or XML editor and add your web service. Cross domain
  • 48. GOAL Flex Daily Solutions Overcoming the cross domain policy Add the web service destination in the proxy-config.xml file, above the </service> tag: <destination id=“myWS&quot;> <properties> <wsdl>http://www.server.com/mycfc.cfc?wsdl</wsdl> <soap>*</soap> </properties> <adapter ref=&quot;soap-proxy&quot;/> </destination> Cross domain
  • 49.
  • 50.
  • 51. GOAL Time is money. Save time reducing development time. The FlexLib project is a community effort to create open source user interface components for Adobe Flex Flex open source Flex Daily Solutions Don’t reinvent the wheel.
  • 52. GOAL A lot of ready to use and to extend Flex components. Current components: AdvancedForm, Base64Image, EnhancedButtonSkin, CanvasButton, ConvertibleTreeList, Draggable Slider, Fire, Highlighter, HorizontalAxisDataSelector IconLoader, ImageMap, PromptingTextArea, PromptingTextInput, Scrollable Menu Controls, SuperTabNavigator, Alternative Scrolling Canvases, Horizontal Accordion, TreeGrid, FlowBox, Docking ToolBar, Flex Scheduling Framework Flex open source Flex Daily Solutions The flexlib Library
  • 53.
  • 54.
  • 55.
  • 56. GOAL Flex 3 Flex Daily Solutions My favourite Flex 3 features The Flex 3 SDK offers new classes that enable you to assign a GroupingCollection to a data provider instead of flat data (usually returned as response data). To regroup the data in a grouping view, you must instance a Grouping object and specify the data to use for the regrouping through its fields property: var myGroup:Grouping = new Grouping(); myGroup.fields = [new GroupingField(&quot;region&quot;)];
  • 57. GOAL Flex 3 Flex Daily Solutions My favourite Flex 3 features You can then create a GroupingCollection object and send the ArrayCollection to it(the flat data is contained in the source property): var myGroupColl:GroupingCollection = new GroupingCollection(); myGroupColl.source = new ArrayCollection(myRegion.city);
  • 58. GOAL Flex 3 Flex Daily Solutions My favourite Flex 3 features Finally, link the Grouping object to the grouping property of the GroupingCollection object and create the collection class to send to the dataProvider of the AdvancedDataGrid: myGroupColl.grouping = myGroup; myGroupColl.refresh(); myADG.dataProvider = myGroupColl;
  • 59. GOAL Flex 3 Flex Daily Solutions My favourite Flex 3 features In Flex 3 you can create a summary using the summaries property of the GroupingField class. The summary data can be visualized in a row of the AdvancedDataGrid. To create summary data, use the summaries property of the GroupingField class. This property accepts instances of the SummaryRow classand it contains the fields property, which specifies an Array of one or more SummaryFields objects defining the data fields to create for the summary.
  • 60. GOAL Flex 3 Flex Daily Solutions My favourite Flex 3 features Consider an ArrayCollection created from a Model : <mx:Model id=&quot;myRegion&quot; source=“assets/states.xml&quot; /> <mx:ArrayCollection id=&quot;myAC&quot; source=&quot;{myRegion.city}&quot; />
  • 61. GOAL Flex 3 Flex Daily Solutions My favourite Flex 3 features To create a summary data you must first create grouped data: <mx:GroupingCollection id=&quot;myGC&quot; source=&quot;{myAC}&quot;> <mx:Grouping> <mx:GroupingField name=&quot;Region&quot;>
  • 62. GOAL Flex 3 Flex Daily Solutions My favourite Flex 3 features In the <mx:GroupingField> tag, specify the summaries property, which takes instances of the SummaryRow class: <mx:summaries> <mx:SummaryRow summaryPlacement=&quot;group&quot;>
  • 63. GOAL Flex 3 Flex Daily Solutions My favourite Flex 3 features For the SummaryRow class, specify the fields property, which defines the fields on which to carry out the summary operations: <mx:fields> <mx:SummaryField operation=&quot;SUM&quot; dataField=&quot;population&quot; label=&quot;total&quot;/>
  • 64. GOAL Flex 3 Flex Daily Solutions My favourite Flex 3 features These are the type of operations that you can handle using the Summary:
  • 65. GOAL Cairngen is a one-shot code generation tool for Adobe Cairngorm developed by Eric Feminella (http://www.ericfeminella.com/) Cairngen is built entirely in Ant, and provides a solution for generating Cairngorm classes from within the Flex builder IDE. Cairngen Flex Daily Solutions Boost your productivity with Cairngen
  • 66. GOAL Apache Ant is a software tool for automating software build processes. Ant uses XML to describe the build process and its dependencies, whereas make has its Makefile format. By default the XML file is named build.xml. Ant is an Apache project. It is open source software, and is released under the Apache Software License. Cairngen Flex Daily Solutions Boost your productivity with Cairngen
  • 67.
  • 68. GOAL In addition, the main target will also create your applications ModelLocator, FrontController and Services.mxml and generate them to the appropriate packages. Cairngen Flex Daily Solutions Boost your productivity with Cairngen
  • 69. GOAL After downloading Cairngen 2.1, extract Cairngen to your Flex project directory, or create a new generic project and point it to the location where you extracted Cairngen 2.x. Cairngen Flex Daily Solutions Boost your productivity with Cairngen
  • 70. GOAL Flex Inspirational Quotes Agenda Flex Daily Solutions Fight your daily demotivation while coding
  • 71. GOAL A developer is the product of his thoughts. Inspirational Quotes Flex Daily Solutions Think and Believe Big.
  • 72. GOAL You’re a better Flex developer than you think you are. Agenda Flex Daily Solutions Good developers are ordinary people that believe in what they do.
  • 73. GOAL Let interest and enthusiasm guide you. Agenda Flex Daily Solutions Learn to be eager and avid of knowledge. It’s more important than your brainpower.
  • 74. GOAL Not only knowledge is power. Agenda Flex Daily Solutions Use knowledge in a constructive way. Improve your ability to get information.
  • 75. GOAL Simplicity. Agenda Flex Daily Solutions Don’t even think that a more complex and better solution than yours exists .
  • 76. GOAL Never sell yourself short. Agenda Flex Daily Solutions Find your own skills and your talents.
  • 77. GOAL Be your Flex Entreprenure. Agenda Flex Daily Solutions “ I don’t know the answer to those questions, but I could find a man in five minutes who does “ Henry Ford
  • 78. we make it RIA Marco Casario CTO – Comtaste http://casario.blogs.com