Flex - Overview
What is Flex?
Flex is a powerful, open source application framework which allows to build traditional applications for browser, mobile and desktop using the same programming model, tool, and codebase.
Flex provides FLEX SDK consisting of the Flex class library (ActionScript classes), the Flex compilers, the debugger, the MXML and ActionScript programming languages, and other utilities to build expressive and interactive rich internet applications (RIA)
Flex takes care of the user interface (UI) or the client-side functionality of a web application. Server-side functionality dependent on server-side components written in a traditional scripting language (Java/ PHP etc.)
Flex application is deployed as SWF file(s) plus an HTML wrapper, the CSS file(s) and any server-side script files (i.e. Java, .CFM, .PHP, etc) to the server. Like traditional web applications
These resources are delivered from the server to the client browser using the customary HTTP request / response fashion and Flash Player run the application in the browser.
Advantages of Flex
Flex applications being Flash Player based can access device capabilities like GPS, camera, local database, graphics accelerometer.
Flex applications can run on Andriod, BlackBerry Tablet OS, iOS devices.
Flex applications can run on Browsers as well as on Desktop.
Flex applications are platform independent. UI can be native to platform or can be made same on each platform.
Flex applications can interact with server with all major server side technologies like Java, Spring, Hibernate, PHP, Ruby, .NET, Adobe ColdFusion, and SAP using industry standards such as REST, SOAP, JSON, JMS, and AMF.
Flex Applications developed assures Rich User Experience through intuitive interaction with the application and presenting information in a visually richer interface.
Flex application is a single page application where states can can transition from one state to other state without having to fetch a new page from the server or to refresh the browser.
Flex application reduces the load on the server to great extent because it is only required return the application once, rather than a new page every time when the user changes views.
Disadvantages of Flex
Flex applications are single threaded applications but Flex provides an asynchronous programming model to mitigate this concern.
Flex is actionscript and XML based. Learning of these two is a must to work in Flex.