There are many differences between Adobe flex development and traditional web development. The correct understanding and use of these differences can help us create a richer user experience, or in turn increase the usability of the site and the speed of browsing and updating. Flex also provides a large number of components and technology libraries to make web development easier--it provides far more powerful tools than asynchronous JavaScript and XML (Ajax) applications in traditional Web 2.0. In addition, Adobe's recently released Adobe Flash Builder 4 beta (formerly known as Adobe Flex Builder) offers a number of new and improved tools that they can use to develop large-scale Flex applications. Flash Builder 4 focuses on increasing the productivity of developers and the workflow of designers and developers.
One of the key elements in flex development is the use of modules and Run-time shared libraries (Runtime shared Libraries,rsls) that facilitate parallel development of different parts of the system and efficient memory management on the client. Another key element is the use of Sprint BlazeDS integration, which greatly simplifies the development and integration of different technology server-side backgrounds, such as communication using Java Messaging Services (JMS) and spring security.
The following are some of the key elements of flex development:
Take advantage of the differences in flex. Learn why flex development differs from traditional Web development and take advantage of those differences to benefit your application.
Flex module. Learn about Flex modules and how to modularize development and deployment of flex. Use the Flex module to decouple different levels of the project.
Learn about anti-patterns and patterns. Understand the correct application anti-pattern in advance, so that you can implement the best design in the correct architectural pattern.
Simplify development with the spring BlazeDS integration project. Simplify Java server integration with the Spring BlazeDS integration project.
Effectively designed. Work closely with the design team to take full advantage of Flex and Adobe Flash.
Test. Plan your tests in advance.
What makes Web development different from flex?
Unlike traditional Web applications, Flex application development is more like traditional desktop application development. For example, the entire application is downloaded to the client-a huge download and depends on how the application is organized. Of course, there are many ways to optimize this process, such as using a component library or splitting the project into modules.
This approach is not the same as the traditional Hypertext Markup Language (hypertext Markup language,html), even though it was developed with Ajax. An HTML web site can usually be divided into different pages to make the download very small. And even with Ajax, downloads are relatively small, since most Ajax libraries themselves are relatively small. Using this method, you can make a single page download smaller than the entire application.
Another difference between flex and traditional Web application development is that the state is primarily maintained on the client. This is beyond the use of Ajax controls on Web applications, which typically maintain a small amount of client state on a Web browser. Now, all the states in the application are maintained in local variables.
If you are not familiar with Flex, another difference may be a challenge for you. Flex uses a high level of event-driven programming style, mainly because Adobe Flash player is single-threaded, so any calls that require a long running time need to register a callback function. Single-threaded is advantageous for graphical user interface (GUI) development because it does not have deadlocks or a thread steals all CPU cycles, thus maintaining the GUI's response. Single-threaded also makes development easier because you don't need to handle multithreaded programming. (Remember the nightmare of handling threads in swing?) )
The main mechanism for handling events in Flex is function pointers, or closures that are passed as function parameters. These pointers can be registered by the user for an event or reminder that occurred at the end of an asynchronous event. (function pointers are challenging for Java programmers because the core Java language does not yet support closures.) )