SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
OpenFlux and Flex 4
                            By Ryan Campbell




Friday, May 15, 2009
About This Session
                       •   OpenFlux vs. Flex 4
                       •   Component / Model
                       •   Views
                       •   Controllers
                       •   Metadata
                       •   Layouts
                       •   Virtualization
                       •   Extending Components vs Adding Controllers
                       •   DataGrid Component
                       •   OpenFlux Independent of Flex

Friday, May 15, 2009
What is OpenFlux?



Friday, May 15, 2009
OpenFlux is:


                       • Lightweight MVC Component Framework
                       • Makes Custom Components Easier
                       • Works with Flex 3, Flex 4 and AS3
                       • Open source, licensed under MIT
                       • Currently at version Beta 3

Friday, May 15, 2009
OpenFlux vs. Flex 4



Friday, May 15, 2009
Major Flex 4 Similarities


                 • Component logic is separate from view logic
                 • Supports custom layouts
                 • Less code duplication / monkey patching
                       compared to Flex 3
                 • Both run on computers?

Friday, May 15, 2009
Major Flex 4 Differences


                       • OpenFlux separates logic into controllers
                       • Flex 4, keeps logic in the component and
                         base classes (same as Flex 3)


                       • OpenFlux focuses on being lightweight
                       • Flex 4 is actually pretty huge

Friday, May 15, 2009
Component / Model



Friday, May 15, 2009
Component / Model


                       • Contains no logic
                       • Only contains public properties
                       • Extends FluxComponent
                       • FluxComponent handles attaching
                         controllers and views



Friday, May 15, 2009
Component / Model



                       EXAMPLE:




Friday, May 15, 2009
Views



Friday, May 15, 2009
Views


                       • OpenFlux views implement IFluxView
                       • Flex 4 views extend Skin (which extends
                         Group)
                       • OpenFlux uses Degrafa
                       • Flex 4 uses FXG

Friday, May 15, 2009
Views



                       EXAMPLE:




Friday, May 15, 2009
Controllers



Friday, May 15, 2009
Controllers


                       • OpenFlux separates component logic in to
                         multiple controllers
                       • Flex 4 doesn’t have controllers
                       • Listen for events and modify the model
                       • Don’t need drag’n drop? Don’t include it!
                       • Add / remove controllers even at runtime
Friday, May 15, 2009
Controllers



                       EXAMPLE:




Friday, May 15, 2009
Metadata



Friday, May 15, 2009
Metadata


           • OpenFlux has 7 different [Metadata] tags
           • Uses custom metadata to reduce code
                  duplication
           • Dependency Injection
           • Handles adding/removing event listeners

Friday, May 15, 2009
Metadata
                                    Component
               [Capacitor]
               [DefaultSetting(property=quot;valuequot;]

                                     Controller
               [ViewHandler(event=quot;clickquot;, handler=quot;clickHandlerquot;)]
               [EventHandler(event=quot;clickquot;, handler=quot;clickHandlerquot;)]
               [ViewContract]
               [ModelAlias]
                                     Common
               [StyleBinding]
Friday, May 15, 2009
Metadata



                       EXAMPLE:




Friday, May 15, 2009
Layouts



Friday, May 15, 2009
OpenFlux Layouts


                       • Implement ILayout (4 methods)
                       • Optionally implement IDragLayout (2 more
                         methods)
                       • Optionally extend LayoutBase (handles 2
                         ILayout methods for you)
                       • HorizontalLayout is 132 lines of code

Friday, May 15, 2009
Flex 4 Layouts



                       • Don’t implement an interface
                       • Must extend LayoutBase
                       • Also handle virtualization (with
                         DataGroup)
                       • HorizontalLayout is 1,720 lines of code

Friday, May 15, 2009
Layouts




                       EXAMPLE:




Friday, May 15, 2009
Virtualization



Friday, May 15, 2009
Virtualization

        • Flex 4 virtualization is handled by DataGroup and
               Layouts
        • OpenFlux components know nothing about
               virtualization
        • Handled by VirtualCollection
        • Looks like a regular array collection to the
               component



Friday, May 15, 2009
Virtualization

         <VirtualCollection id=quot;virtualquot;
           data=quot;{ someHugeDataSet }quot;
           position=quot;{ scrollBar.position }quot;
           size=quot;30quot; />

         <List id=”list” data=quot;{ virtual }quot; />

         <ScrollBar id=quot;scrollBar“
           max=quot;{ someHugeDataSet.length - virtual.size }quot; />




Friday, May 15, 2009
Virtualization




                       EXAMPLE:




Friday, May 15, 2009
Extending, extending,
                            extending


Friday, May 15, 2009
Extending a Component

       <AutoCompletePromptTextInput id=”input”
            prompt=”First Name”
            items=”{ names }” />

                         Adding Controllers

        <TextInput id=”input”>
           <PromptController prompt=”First Name” />
           <AutoCompleteController items=”{ names }” />
        </TextInput>

Friday, May 15, 2009
DataGrid & Tree



Friday, May 15, 2009
DataGrid & Tree


                       • Built over a weekend (including Tree and
                         TreeDataGrid)
                       • Extends from List. Header is even
                         horizontal List.
                       • One new controller for DataGrid, One for
                         Tree



Friday, May 15, 2009
DataGrid & Tree




                       EXAMPLE:




Friday, May 15, 2009
OpenFlux Independence



Friday, May 15, 2009
What’s that mean?


               • Use OpenFlux components with or without
                       Flex.
               • Lighter weight implementations of Flex
                       interfaces
               • Still supports MXML, CSS, Data Binding and
                       Resource Bundles
               • Compiled SWFs as small as 75KB without RSL
Friday, May 15, 2009
What was replaced?



           • UIComponent, SystemManager, LayoutManager
           • Application, Label and Image
           • Holy crap that was a lot of work...


Friday, May 15, 2009
What was kept?



           • StyleManager, BindingManager, ResourceManager
                   we’re keeping (because we have to)
           • Events and interfaces
           • Any other classes that don’t reference
                   UIComponent



Friday, May 15, 2009
OpenFlux App




                       EXAMPLE:




Friday, May 15, 2009
www.openflux.org
                        Blog, Examples, Docs, Source
                          Code and Google Group




Friday, May 15, 2009

Mais conteúdo relacionado

Semelhante a Ryan Campbell - OpenFlux and Flex 4

#JavaOne What's in an object?
#JavaOne What's in an object?#JavaOne What's in an object?
#JavaOne What's in an object?Charlie Gracie
 
Loggly - 5 Popular .NET Logging Libraries
Loggly - 5 Popular .NET Logging LibrariesLoggly - 5 Popular .NET Logging Libraries
Loggly - 5 Popular .NET Logging LibrariesSolarWinds Loggly
 
Frontend Engineer Toolbox
Frontend Engineer ToolboxFrontend Engineer Toolbox
Frontend Engineer ToolboxYnon Perek
 
Server Independent Programming
Server Independent ProgrammingServer Independent Programming
Server Independent ProgrammingZendCon
 
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...Fabrice Bernhard
 
What's New in Plug-in Development (Galileo)
What's New in Plug-in Development (Galileo)What's New in Plug-in Development (Galileo)
What's New in Plug-in Development (Galileo)Chris Aniszczyk
 
Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...
Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...
Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...Go Iwai
 
Operations and Monitoring with Spring
Operations and Monitoring with SpringOperations and Monitoring with Spring
Operations and Monitoring with SpringEberhard Wolff
 
JS awesomeness or how will ES6 help me build better apps ?
JS awesomeness or how will ES6 help me build better apps ?JS awesomeness or how will ES6 help me build better apps ?
JS awesomeness or how will ES6 help me build better apps ?Пламен Стоев
 
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie..."How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...Fwdays
 
Making your first contribution to Foreman
Making your first contribution to ForemanMaking your first contribution to Foreman
Making your first contribution to ForemanDominic Cleal
 
Launchpad: Lessons Learnt
Launchpad: Lessons LearntLaunchpad: Lessons Learnt
Launchpad: Lessons LearntTim Penhey
 
Magento Function Testing Framework - Intro and Overview
Magento Function Testing Framework - Intro and OverviewMagento Function Testing Framework - Intro and Overview
Magento Function Testing Framework - Intro and OverviewTom Erskine
 
Portlets
PortletsPortlets
Portletsssetem
 
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad AssisKubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad AssisAgileSparks
 
Christophe Jolif - Flex Data Visualization going one step further with IBM IL...
Christophe Jolif - Flex Data Visualization going one step further with IBM IL...Christophe Jolif - Flex Data Visualization going one step further with IBM IL...
Christophe Jolif - Flex Data Visualization going one step further with IBM IL...360|Conferences
 
Serverless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOpsServerless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOpsJoseph Lust
 
Functest in Depth
Functest in DepthFunctest in Depth
Functest in DepthOPNFV
 

Semelhante a Ryan Campbell - OpenFlux and Flex 4 (20)

#JavaOne What's in an object?
#JavaOne What's in an object?#JavaOne What's in an object?
#JavaOne What's in an object?
 
Loggly - 5 Popular .NET Logging Libraries
Loggly - 5 Popular .NET Logging LibrariesLoggly - 5 Popular .NET Logging Libraries
Loggly - 5 Popular .NET Logging Libraries
 
Frontend Engineer Toolbox
Frontend Engineer ToolboxFrontend Engineer Toolbox
Frontend Engineer Toolbox
 
Server Independent Programming
Server Independent ProgrammingServer Independent Programming
Server Independent Programming
 
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
 
What's New in Plug-in Development (Galileo)
What's New in Plug-in Development (Galileo)What's New in Plug-in Development (Galileo)
What's New in Plug-in Development (Galileo)
 
Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...
Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...
Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...
 
FuzzyDebugger.pdf
FuzzyDebugger.pdfFuzzyDebugger.pdf
FuzzyDebugger.pdf
 
Operations and Monitoring with Spring
Operations and Monitoring with SpringOperations and Monitoring with Spring
Operations and Monitoring with Spring
 
JS awesomeness or how will ES6 help me build better apps ?
JS awesomeness or how will ES6 help me build better apps ?JS awesomeness or how will ES6 help me build better apps ?
JS awesomeness or how will ES6 help me build better apps ?
 
Integration testing - A&BP CC
Integration testing - A&BP CCIntegration testing - A&BP CC
Integration testing - A&BP CC
 
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie..."How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...
 
Making your first contribution to Foreman
Making your first contribution to ForemanMaking your first contribution to Foreman
Making your first contribution to Foreman
 
Launchpad: Lessons Learnt
Launchpad: Lessons LearntLaunchpad: Lessons Learnt
Launchpad: Lessons Learnt
 
Magento Function Testing Framework - Intro and Overview
Magento Function Testing Framework - Intro and OverviewMagento Function Testing Framework - Intro and Overview
Magento Function Testing Framework - Intro and Overview
 
Portlets
PortletsPortlets
Portlets
 
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad AssisKubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
 
Christophe Jolif - Flex Data Visualization going one step further with IBM IL...
Christophe Jolif - Flex Data Visualization going one step further with IBM IL...Christophe Jolif - Flex Data Visualization going one step further with IBM IL...
Christophe Jolif - Flex Data Visualization going one step further with IBM IL...
 
Serverless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOpsServerless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOps
 
Functest in Depth
Functest in DepthFunctest in Depth
Functest in Depth
 

Mais de 360|Conferences

Metaio Mobile Augmented Reality
Metaio Mobile Augmented RealityMetaio Mobile Augmented Reality
Metaio Mobile Augmented Reality360|Conferences
 
Mobile Apps- Business Toolkit for the Manager
Mobile Apps- Business Toolkit for the ManagerMobile Apps- Business Toolkit for the Manager
Mobile Apps- Business Toolkit for the Manager360|Conferences
 
Making Real Money with Mobile Apps
Making Real Money with Mobile AppsMaking Real Money with Mobile Apps
Making Real Money with Mobile Apps360|Conferences
 
Inside Mobile Widgets Publish
Inside Mobile Widgets PublishInside Mobile Widgets Publish
Inside Mobile Widgets Publish360|Conferences
 
Ignite Denver 4 Master Deck
Ignite Denver 4 Master DeckIgnite Denver 4 Master Deck
Ignite Denver 4 Master Deck360|Conferences
 
Oğuz Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
Oğuz	Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...Oğuz	Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
Oğuz Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...360|Conferences
 
Tyler Wright - Undo History with Flight
Tyler Wright - Undo History with FlightTyler Wright - Undo History with Flight
Tyler Wright - Undo History with Flight360|Conferences
 
Chad Udell - Developers are from Mars, Designers are from Venus
Chad Udell - Developers are from Mars, Designers are from VenusChad Udell - Developers are from Mars, Designers are from Venus
Chad Udell - Developers are from Mars, Designers are from Venus360|Conferences
 
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!360|Conferences
 
Erik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
Erik Loehfelm - Experience Design with Flash Catalyst and Flex GumboErik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
Erik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo360|Conferences
 
Ryan Phelan - Bending and Flexing
Ryan Phelan - Bending and FlexingRyan Phelan - Bending and Flexing
Ryan Phelan - Bending and Flexing360|Conferences
 
Giorgio Natilli - Blaze DS Connectivity Framework
Giorgio Natilli - Blaze DS Connectivity FrameworkGiorgio Natilli - Blaze DS Connectivity Framework
Giorgio Natilli - Blaze DS Connectivity Framework360|Conferences
 
Douglas Knudsen - Great Mash Up
Douglas Knudsen - Great Mash UpDouglas Knudsen - Great Mash Up
Douglas Knudsen - Great Mash Up360|Conferences
 
Wes Leonardo - Putting AIR into your Application
Wes Leonardo - Putting AIR into your ApplicationWes Leonardo - Putting AIR into your Application
Wes Leonardo - Putting AIR into your Application360|Conferences
 
Samuel Asher Rivello - PureMVC Hands On Part 1
Samuel Asher Rivello - PureMVC Hands On Part 1Samuel Asher Rivello - PureMVC Hands On Part 1
Samuel Asher Rivello - PureMVC Hands On Part 1360|Conferences
 
Adrian Pomilio - Flex Ajax Bridge and Legacy Applications
Adrian Pomilio - Flex Ajax Bridge and Legacy ApplicationsAdrian Pomilio - Flex Ajax Bridge and Legacy Applications
Adrian Pomilio - Flex Ajax Bridge and Legacy Applications360|Conferences
 

Mais de 360|Conferences (20)

InsideMobile Keynote
InsideMobile KeynoteInsideMobile Keynote
InsideMobile Keynote
 
Metaio Mobile Augmented Reality
Metaio Mobile Augmented RealityMetaio Mobile Augmented Reality
Metaio Mobile Augmented Reality
 
Web Os Hands On
Web Os Hands OnWeb Os Hands On
Web Os Hands On
 
Mobile Apps- Business Toolkit for the Manager
Mobile Apps- Business Toolkit for the ManagerMobile Apps- Business Toolkit for the Manager
Mobile Apps- Business Toolkit for the Manager
 
Making Real Money with Mobile Apps
Making Real Money with Mobile AppsMaking Real Money with Mobile Apps
Making Real Money with Mobile Apps
 
Unlocking Android
Unlocking AndroidUnlocking Android
Unlocking Android
 
Inside Mobile Widgets Publish
Inside Mobile Widgets PublishInside Mobile Widgets Publish
Inside Mobile Widgets Publish
 
You Know WebOS
You Know WebOSYou Know WebOS
You Know WebOS
 
Ignite Denver 4 Master Deck
Ignite Denver 4 Master DeckIgnite Denver 4 Master Deck
Ignite Denver 4 Master Deck
 
Oğuz Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
Oğuz	Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...Oğuz	Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
Oğuz Demirkapı - Hands On Training: Creating Our First i18N Flex Application ...
 
Tyler Wright - Undo History with Flight
Tyler Wright - Undo History with FlightTyler Wright - Undo History with Flight
Tyler Wright - Undo History with Flight
 
Chad Udell - Developers are from Mars, Designers are from Venus
Chad Udell - Developers are from Mars, Designers are from VenusChad Udell - Developers are from Mars, Designers are from Venus
Chad Udell - Developers are from Mars, Designers are from Venus
 
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
Mansour Raad & Anthony Jayaprakash - Yet Another Mapping Framework, NOT!
 
Erik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
Erik Loehfelm - Experience Design with Flash Catalyst and Flex GumboErik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
Erik Loehfelm - Experience Design with Flash Catalyst and Flex Gumbo
 
Ryan Phelan - Bending and Flexing
Ryan Phelan - Bending and FlexingRyan Phelan - Bending and Flexing
Ryan Phelan - Bending and Flexing
 
Giorgio Natilli - Blaze DS Connectivity Framework
Giorgio Natilli - Blaze DS Connectivity FrameworkGiorgio Natilli - Blaze DS Connectivity Framework
Giorgio Natilli - Blaze DS Connectivity Framework
 
Douglas Knudsen - Great Mash Up
Douglas Knudsen - Great Mash UpDouglas Knudsen - Great Mash Up
Douglas Knudsen - Great Mash Up
 
Wes Leonardo - Putting AIR into your Application
Wes Leonardo - Putting AIR into your ApplicationWes Leonardo - Putting AIR into your Application
Wes Leonardo - Putting AIR into your Application
 
Samuel Asher Rivello - PureMVC Hands On Part 1
Samuel Asher Rivello - PureMVC Hands On Part 1Samuel Asher Rivello - PureMVC Hands On Part 1
Samuel Asher Rivello - PureMVC Hands On Part 1
 
Adrian Pomilio - Flex Ajax Bridge and Legacy Applications
Adrian Pomilio - Flex Ajax Bridge and Legacy ApplicationsAdrian Pomilio - Flex Ajax Bridge and Legacy Applications
Adrian Pomilio - Flex Ajax Bridge and Legacy Applications
 

Último

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 

Último (20)

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 

Ryan Campbell - OpenFlux and Flex 4

  • 1. OpenFlux and Flex 4 By Ryan Campbell Friday, May 15, 2009
  • 2. About This Session • OpenFlux vs. Flex 4 • Component / Model • Views • Controllers • Metadata • Layouts • Virtualization • Extending Components vs Adding Controllers • DataGrid Component • OpenFlux Independent of Flex Friday, May 15, 2009
  • 4. OpenFlux is: • Lightweight MVC Component Framework • Makes Custom Components Easier • Works with Flex 3, Flex 4 and AS3 • Open source, licensed under MIT • Currently at version Beta 3 Friday, May 15, 2009
  • 5. OpenFlux vs. Flex 4 Friday, May 15, 2009
  • 6. Major Flex 4 Similarities • Component logic is separate from view logic • Supports custom layouts • Less code duplication / monkey patching compared to Flex 3 • Both run on computers? Friday, May 15, 2009
  • 7. Major Flex 4 Differences • OpenFlux separates logic into controllers • Flex 4, keeps logic in the component and base classes (same as Flex 3) • OpenFlux focuses on being lightweight • Flex 4 is actually pretty huge Friday, May 15, 2009
  • 9. Component / Model • Contains no logic • Only contains public properties • Extends FluxComponent • FluxComponent handles attaching controllers and views Friday, May 15, 2009
  • 10. Component / Model EXAMPLE: Friday, May 15, 2009
  • 12. Views • OpenFlux views implement IFluxView • Flex 4 views extend Skin (which extends Group) • OpenFlux uses Degrafa • Flex 4 uses FXG Friday, May 15, 2009
  • 13. Views EXAMPLE: Friday, May 15, 2009
  • 15. Controllers • OpenFlux separates component logic in to multiple controllers • Flex 4 doesn’t have controllers • Listen for events and modify the model • Don’t need drag’n drop? Don’t include it! • Add / remove controllers even at runtime Friday, May 15, 2009
  • 16. Controllers EXAMPLE: Friday, May 15, 2009
  • 18. Metadata • OpenFlux has 7 different [Metadata] tags • Uses custom metadata to reduce code duplication • Dependency Injection • Handles adding/removing event listeners Friday, May 15, 2009
  • 19. Metadata Component [Capacitor] [DefaultSetting(property=quot;valuequot;] Controller [ViewHandler(event=quot;clickquot;, handler=quot;clickHandlerquot;)] [EventHandler(event=quot;clickquot;, handler=quot;clickHandlerquot;)] [ViewContract] [ModelAlias] Common [StyleBinding] Friday, May 15, 2009
  • 20. Metadata EXAMPLE: Friday, May 15, 2009
  • 22. OpenFlux Layouts • Implement ILayout (4 methods) • Optionally implement IDragLayout (2 more methods) • Optionally extend LayoutBase (handles 2 ILayout methods for you) • HorizontalLayout is 132 lines of code Friday, May 15, 2009
  • 23. Flex 4 Layouts • Don’t implement an interface • Must extend LayoutBase • Also handle virtualization (with DataGroup) • HorizontalLayout is 1,720 lines of code Friday, May 15, 2009
  • 24. Layouts EXAMPLE: Friday, May 15, 2009
  • 26. Virtualization • Flex 4 virtualization is handled by DataGroup and Layouts • OpenFlux components know nothing about virtualization • Handled by VirtualCollection • Looks like a regular array collection to the component Friday, May 15, 2009
  • 27. Virtualization <VirtualCollection id=quot;virtualquot; data=quot;{ someHugeDataSet }quot; position=quot;{ scrollBar.position }quot; size=quot;30quot; /> <List id=”list” data=quot;{ virtual }quot; /> <ScrollBar id=quot;scrollBar“ max=quot;{ someHugeDataSet.length - virtual.size }quot; /> Friday, May 15, 2009
  • 28. Virtualization EXAMPLE: Friday, May 15, 2009
  • 29. Extending, extending, extending Friday, May 15, 2009
  • 30. Extending a Component <AutoCompletePromptTextInput id=”input” prompt=”First Name” items=”{ names }” /> Adding Controllers <TextInput id=”input”> <PromptController prompt=”First Name” /> <AutoCompleteController items=”{ names }” /> </TextInput> Friday, May 15, 2009
  • 31. DataGrid & Tree Friday, May 15, 2009
  • 32. DataGrid & Tree • Built over a weekend (including Tree and TreeDataGrid) • Extends from List. Header is even horizontal List. • One new controller for DataGrid, One for Tree Friday, May 15, 2009
  • 33. DataGrid & Tree EXAMPLE: Friday, May 15, 2009
  • 35. What’s that mean? • Use OpenFlux components with or without Flex. • Lighter weight implementations of Flex interfaces • Still supports MXML, CSS, Data Binding and Resource Bundles • Compiled SWFs as small as 75KB without RSL Friday, May 15, 2009
  • 36. What was replaced? • UIComponent, SystemManager, LayoutManager • Application, Label and Image • Holy crap that was a lot of work... Friday, May 15, 2009
  • 37. What was kept? • StyleManager, BindingManager, ResourceManager we’re keeping (because we have to) • Events and interfaces • Any other classes that don’t reference UIComponent Friday, May 15, 2009
  • 38. OpenFlux App EXAMPLE: Friday, May 15, 2009
  • 39. www.openflux.org Blog, Examples, Docs, Source Code and Google Group Friday, May 15, 2009