VMware Infrastructure 3 Book Excerpt and Author Interview
VMware Infrastructure 3: Advanced Technical Design Guide and Advanced Operations Guide provides a wealth of practical insights into setting up virtualization in todays corporate environments.
Tracking change and innovation in the enterprise software development community
Posted by Jon Rose on Apr 17, 2008 01:06 AM
In this post, Adobe’s James Ward teams up with InfoQ.com to bring you another Flex Top 10 (our most recent Flex Top 10). Flex is an open source application development framework for building rich Internet applications that run in the web with Flash Player, or on the desktop with Adobe AIR. Overall, Flex is a powerful framework that is easy to use, but today let's focus on some of the common mistakes that are made when building Flex applications.As a Java developer, learning Object Oriented ActionScript and the UI markup language is really a walk in the park. The challenge however for (Java) developers is that we're not designers, and with RIA technologies these two skills are very much needed.
The biggest Flex performance danger is yielding to the temptation to use containers randomly. Deeply nesting too many containers hinders the performance of your application. This is the number one performance danger that Flex developers succumb to—and luckily it is 100 percent avoidable.
Most animations are simply TOO LONG. They are long, and slow, and boring, and excessive. Tone it down. If there is one thing I have found, its that I hate waiting for stupid animations to finish so I can do something else.
Don’t get me wrong I am not bashing animations. I am simply bashing animations that are simply too long or too extravagant for their purpose. Every animation can be broken down to having a purpose. Figure out the purpose of your animation and apply accordingly.
You can shrink the size of your application's resulting SWF file by externalizing shared assets into standalone files that you can separately download and cache on the client. Multiple Flex applications can load these shared assets at runtime, but each client need only to download them once. These shared files are called Runtime Shared Libraries.Another under used feature of the framework is the built in accessibility features. You can read more about the accessibility features of Flex in Adobe’s livedocs. In addition to built in accessibility, the framework provides built in features for localization. For the latest Flex 3 framework features, checkout Adobe’s Getting Started introduction page.
Hibernate without Database Bottlenecks
Spring App Platform, Java Concurrency/Multicore, Eclipse Mylyn and more @ QCon SF Nov 19-21
IBM software architect eKit: Grady Booch podcast, whitepapers, articles
The Agile Business Analyst: Skills and Techniques needed for Agile
JProbe Freeware – Eclipse Plugin for efficient memory analysis and diagnosis
Having already gained some experience in struts 1.x, it easy to get on with struts 2.0. Does Flex provide anything better than struts 2.0 for applications which do not need animation and are not required to run offline (means they dont need to be RIA)?
Is there any GUI testing framework (of the likes of Selenium and Canoo Webtest) for Flex that can allow recording some test scripts that can be run in a continuous integration environment ? I am considering porting one of my past JSF+EJB based application to Flex+Spring(for learning Flex stuff), I noticed most of the testing frameworks are available except for this last piece that I have not heard about (yet)? Just wondering if there's any progress made on this front ?
Can I add a few things,
Letting script tags get out of control. Or using code behind methods for MXML. Only using mxml for visual components and writing everything else in ActionScript.
Using a framework for structuring your application, pureMVC, caringum, etc. The flex "framework" is mostly component set.
Looking at other component sets like FlexLib or degrafa based stuff to create what you need before writing the same thing over again.
Not using the design view but for mockups, because the code that it makes isn't very clean.
Being considerate of how many components are needing to be redraw at the same time with page resizes, component updates, or animation. Percentage based elements are can slow things down.
Not using to many events and being considerate of removing them after you are finished with them. Removing things from the display list doesn't delete there listeners.
Consider an ActionScript only project before jumping into the 500K flex framework. You can make in less then 10K and all of this should only be used if it needs to be. If all you need is basic components dont use the flex ones because using just one component you get the whole framework.
Why is this posted in the Java community? Flex isn't a Java tech ;)
Having already gained some experience in struts 1.x, it easy to get on with struts 2.0. Does Flex provide anything better than struts 2.0 for applications which do not need animation and are not required to run offline (means they dont need to be RIA)?
Hi Sandeep,
It depends on what you are trying to build. RIAs can bring many of the good things about desktop apps to the web. If you are building Wikipedia or a very content centric site then they may be little value in moving to an RIA. However if you application does data management, data visualization, or needs capabilities like desktop applications have - then Flex is a possible option. For instance check out the performance benefits of using Flex when displaying data in a Data Grid using my Census RIA Benchmark.
I hope that helps answer your question.
-James
Is there any GUI testing framework (of the likes of Selenium and Canoo Webtest) for Flex that can allow recording some test scripts that can be run in a continuous integration environment ?
I am considering porting one of my past JSF+EJB based application to Flex+Spring(for learning Flex stuff), I noticed most of the testing frameworks are available except for this last piece that I have not heard about (yet)? Just wondering if there's any progress made on this front ?
Flex supports automated testing and unit testing. There are various products and open source projects to do each. What are you currently using to test web apps?
-James
VMware Infrastructure 3: Advanced Technical Design Guide and Advanced Operations Guide provides a wealth of practical insights into setting up virtualization in todays corporate environments.
Ruby 1.9's Fibers and non-blocking I/O are getting more attention - we talked to Mohammad A. Ali of the NeverBlock project and Tony Arcieri of the Revactor project.
Tim Mackinnon talks about the aspirations behind the Agile principles and practices, the desire to become efficient, to write quality code which does not end up being thrown away.
Brian Goetz discusses the difficulties of creating multithreaded programs correctly, incorrect synchronization, race conditions, deadlock, STM, concurrency, alternatives to threads, Erlang, Scala.
Often the hardest part of changing technologies is language syntax differences. This new article provides Java developers with a transition guide to Actionscript which forms the foundation of Flex.
Neal Ford talks about having multiple languages running on one of the two major platforms: Java and .NET. He also presents the advantages offered by Ruby compared to static languages like Java or C#.
David Anderson talks about the history of Agile, the current status of it and his vision for the future. The role of Agile consists in finding ways to implement its principles.
Nick Sieger talks about the future of JRuby, Java Integration, and his work on JEE deployment tools for Ruby on Rails like Warbler.
6 comments
Reply