What is Flex (Adobe/Macromedia)?

Have you found yourself often wishing there was a way to make web applications that weren't limited to the heavy restrictions of HTML? You can use JavaScript to make your forms and page elements a bit more intuitive with dynamic combo boxes, but to do more it often requires heavy amounts of work and very little result can be seen from it. Even if you are a pro at it, it's extremely time consuming. That means increased costs per project and more code to maintain and debug.

In this article we will show you why it is important to always re-evaluate your programming paradigms and to always be thinking how to improve productivity, code quality and to use the right tool for the job.
We will be showing what is Adobe Flex, why have we decided here at NY Business Link to use Flex together with Ruby on Rails and for game development.

Another issue with developing visually rich and engaging application with HTML/JavaScript is that you are spending the bulk of your time on the User Interface instead of the Business Logic and workflow. That's a big issue because that robs time away from you to be able to devote to the core business functionality that is going to set your application apart from others.

As we think about our daily work flow for client projects here at NY Business Link we often ask ourselves: How can we do this better? How can we speed up development while maintaining quality or improving it? From asking ourselves questions such as this we ofter develop case studies on new technologies or programming techniques so that we can provide a better return for our clients and improve productivity here at our company.

One of the ways we have been able to solve this issue is with the use of Adobe Flex. It is designed from the ground up to be a development base for Rich Internet Applications ( aka RIA ). You may have ssen application natively in Flash itself. However where Flex differs is that it is designed to be a true application development environment. Where as Flash is more of a base target platform. The Flash development tool is geared for designers, and developing on a timeline is a strange concept. Flex removes that barrier to entry by providing a programmatic way for developing these RIAs.

If you change your thinking of the flash player as a base for simple animations and think of the fact that it is deployed in over 99% of all computers on the internet. Couple to that the fact that the flash player has a very advanced Actionscript 3 engine and you have the base for a rich deployment base that is truly multi-platform.

Flex removes that barrier to entry by providing a programmatic way for developing these RIAs. This is very important as it allows us to build real applications, as in separated Model View Controllers ( MVC ) and separate the various parts of business logic from the user interface. Unlike in flash animation where everything is centered around a "movie" or "animation", in Flex you are in a true programming environment where you are developing modular pieces of code which can be tested as a individual unit and be used on a larger application. That way you can concentrate on the important business logic and offload gui to the Flex Framework or to the various tested components you have developed.

What is an RIA anyways? Well HTML applications are state-less. Application servers maintain state by using cookies and session variables to keep track of users, but all the logic is on the server. So while a user is looking at a page in their browser, the application is unable to do anything until the user commits an action that sends data from the page back to the server for processing. The code processes the data, and generates resulting HTML that the browser loads back in.

HTML based applications are a series of HTML web pages; Flex applications are LIVE applications. A simple analogy is imagine Word or Excel being an HTML web application; vs the real application itself. It could be done; but the real application is aware of your mouse movements, every key stroke, and provides much more feedback to the user by using sound, animation, and other visual queues.

Even better, with the Flash Player penetration near 99% (version 7 is at 83%) you can provide this real-time rich experience on Unix, Windows, and MAC. Alternatively any richness you try to accomplish in IE using DCOM, ActiveX, and DHTML locks you down to particular platforms.

About this entry