Bindings, Platforms, and Innovation
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
Tracking change and innovation in the enterprise software development community
Posted by Jon Rose on May 29, 2008 10:22 AM
Jun Heider has an excellent piece on O’Reilly’s InsideRIA site discussing a number of the options for minimizing the startup time of Flex applications, in hopes of helping developers reduce the amount of time that users see the ugly "Loading" dialog. He covers the different areas of consideration in depth, along with any important pros and cons to consider for each technique.The Flex framework makes available to you a way to compile assets such as images, mp3 files and fonts directly into your application SWF. Although this comes in handy with making sure that the end user will have a copy of your assets this is a very good way of causing your application to remain in “Loading”.
When you embed a font in Flex, you are given the whole range of characters supported by that font. Although that might be what you’re trying to accomplish with your application, are you sure you need all the characters? For instance, in an English-only applications are you sure you really need to spend time loading data for Chinese characters?
As of Flex 3 you can now cache Adobe signed framework RSLs into a Flash Player cache. The beauty of this is twofold. First, signed framework RSLs cached in the Flash Player cache are shared among all Flex applications that are configured to use them. In other words, if someone else’s app had already pulled down the 500KB or so of signed framework RSL, and the RSL is still in the Flash Player cache, your application can use that cached RSL. Second, if someone clears their browser cache, it does not affect the Flash Player cache.
Another way to minimize that up front load time is to break your Flex application into Modules. A benefit to using Modules is that you have control over when a Module is loaded into your application and also unloaded.
...
Last point to make about Modules is the reason they were faster was because I could load them in just in time. In other words, the only Module loaded at startup was the Step1.swf Module. So in this case of Modules, the end-user saved on startup time, but will end up paying for it when they move from one Module to the next since each new Module will need to be loaded in a JIT manner. In the case of my app, this penalty is when the user moves through each of the steps 1-5 for the first time.
The number one thing you can do to help minimize the amount of time from when data is downloaded to when the user can actually use the application is by deferring instantiation. The concept behind this technique is not creating objects in memory until they’re actually needed by the application.
Although deferred instantiation techniques will cause little - and oftentimes unnoticeable - delays throughout the use of the application, this is often considered more acceptable behavior than having a long application startup delay. The other benefit to deferred instantiation is optimized memory utilization.
Download the Free Adobe® Flex® Builder 3 Trial
Adobe® Rich Internet Application Project Portal
Adobe® Rich Internet Application Project Portal
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.
This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.
This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.
This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.
After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.
IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.
Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.
No comments
Watch Thread Reply