Portingalargewindowsapptoflex

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    Portingalargewindowsapptoflex - Presentation Transcript

    1. PORTING A LARGE APP Adam Breindel [email_address]
    2. The Large App
      • Mindjet MindManager … a mindmapping tool
      • Deployed as a desktop productivity app
      • Mac and Windows Versions (currently v7.2)
      • … plus …
      • Real-time map collaboration via hosted service
    3.  
    4.  
    5.  
    6. Tech eval
      • Needed to work in locked-down corporate env
        • No TCP sockets, no new plugins
      • Not a lot of alternatives
        • Silverlight – too immature
          • 1.0 had not RC’d yet, 2.0 was still in alpha, Might be a “new” plugin
        • Java/Applet/JNLP/WebStart
          • JavaFX script not ready, else would require a lot of rendering code
      • Flash 9: Right place at the Right time
        • ActionScript 3 combines best of static and dynamic worlds
        • Declarative and procedural GUIs
        • E4X – Why? Xml-based DSL on back end
        • New linking model for modularity: SWC
        • Known quantity performer for visual FX
    7. Architecture
      • Similar to desktop app rather than web app
      • MVC  M2VC … popular for AJAX/SmartClient
      • Less use of interfaces than, e.g. C# or Java
        • Compiled to one SWF (worked, but don’t assume)
        • Might have helped ‘break the build’ type issues
        • Can use a ‘more dynamic’ style
          • closures instead of obj/interface/function pattern
    8. Tooling
      • Combined FlexBuilder, FlexSDK, and OSFlash
        • No problems provided those using OS tools are savvy to the command line / script experience
      • Could have used UML tool for the model part
      • Tools are quirky
        • Certain “quirks” == big business risk to project
        • E4X parse bug
        • Other bugs aren’t really critical to this discussion
    9. Learnings
    10. Shallow Learning Curve
      • 3 of 5 coders in initial impl had no Flash exp
      • 2 had Flash but minimal AS3/Flash9 (just out)
      • BUT … abstractions leak
      • Over the player model
        • E.g., onEnterFrame, doLater
      • And over the looks-like-Java model
        • Threads, Blocking vs. Callbacks, CPS, &c .
    11. Don’t Think About Movies & Clips
      • VM-based runtimes are the standard now
      • Just think of it like .Net, Java, Ruby, whatever
      • Bring your OO experience
        • You won’t need it everywhere,
        • But it helps a lot on the big problems
    12. !(Premature Optimization)
      • Still “the root of all evil”
      • Conduct benchmarks for potential showstoppers
        • E4X
      • One perf issue discovered later
        • Closures eat memory
        • So replace “hotspot” closures – small fix
      • Size: SWF is 972kb with some assets
    13. Oslo Notwithstanding…
      • There’s a lot to be said for AS3/ES4/JS2!
      • Unscientific estimate of 2x-4x gain over purely dynamic JS
        • Refactoring
        • Compile-time analysis
      • 1.3-1.5x gain over strict language (e.g. Java)
        • Less code == less bugs, less to maintain
    14. E4X Works On a Large Scale
      • Necessity due to legacy server design
        • SOAP “wrapper” around XML DSL
      • Fear of irrevocable “contamination” unfounded
        • Did refactor a bunch
        • Not hard
      • E4X in AS3 needs its own spec, its own syntax docs, and a matching test suite!
        • Not news
        • Particular issue with namespaces (attributes)
    15. Where is the XHTML Edit Widget?
      • Rich text widget in Flex 3 is inadequate
      • Doesn’t appear to be a full one in Flex 4
      • Proper 3 rd -party component?
      • Hacks, e.g. JavaScript / content editable
      • AIR gets closer with HTML integration
      • Seems like a money-making opportunity!
    16. Async can be a Pain
      • Sometimes you really want to block
      • But the trend seems to be away from threads
        • E.g. Silverlight has threads but not for your web calls
        • Democratization of development means greater proportion of devs who can’t work with threads
      • Leveraged CPS, function queues (chaining) instead
    17. Overall, Flex/Flash == NonIssue
      • Every project has issues, but they weren’t with Flex or Flash
      • Team was extremely experienced coming in
      • Mindjet allowed anything that would play with their ASP.Net servers
    18. Questions?
      • My contact info:
        • Adam Breindel / Ind. Consultant
        • [email_address]
        • http://skipmeamadeus.blogspot.com

    + adbreindadbreind, 2 years ago

    custom

    395 views, 1 favs, 1 embeds more stats

    Slides from a SF presentation on porting a large ap more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 395
      • 376 on SlideShare
      • 19 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 3
    Most viewed embeds
    • 19 views on http://skipmeamadeus.blogspot.com

    more

    All embeds
    • 19 views on http://skipmeamadeus.blogspot.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories