This action might not be possible to undo. Are you sure you want to continue?
I have wanted to cover this basic question for a really long time but it is a very hard question to answer. Flex is many things but I wanted to put a definition out there to help everyone see what it is, where we are headed, and why we created it. With all my presentations I start with "What is Flex?" and it is about time my blog had the same information. So here is my definition:
What is Flex?
Flex is a way to make SWF files! At the heart of Flex is the ability to create SWF files that run in Adobe Flash Player. Distill all the features down and really it is a development paradigm that compiles to SWF. It really is that simple but often we make the definition much harder. Just like Flash can create SWF files, so can Flex but the way you develop is completely different.
Flex is for developers.
Flex is for making applications...
Flex was built for making rich client side application behavior. It wasn't built for making web pages, banner ads, or server side logic it was built for creating client-side applications that run over the Internet talking to remote servers. Flex has been used to make some really great apps like Buzzword (Document Editor like Microsoft Word but in the web) or Picnik (Photo Editor/Manager for touching up your best snapshots) or SlideRocket (Presentation software like Apple Keynote but in the web) or Oracle Sales
. Adobe AIR is a new runtime in development by Adobe and we are very close to releasing Adobe AIR 1.on the desktop (Adobe AIR). system notifications. AIR allows you to write desktop software that runs on 3 operating systems (MAC. and development models that you already know and allows you to write the next generation of software compatibly. you want it to run compatibly in as many places as possible. In summary.WIN. I encourage you to take a fresh look at Adobe Flex and discover the opportunity in learning a new language and ecosystem. if you choose something not widely installed or incompatible. AIR empowers developers to write desktop software that leverages the Internet.or on mobile devices. If you were running a store you would want that store available to as many customers as possible and choosing Flash Player allows you to provide a great experience (rich) to 95% of the web (reach).000 times per day.. Flex is a development paradigm that allows you to write software for the web and desktop that many people can use compatibly today. you are simply turning away customers and business.. When you develop software. Developers around the world are embracing it to create all sorts of new applications and I think you should jump in too. This allows your application to be a true desktop application rather then just a website and allows you to do much more than the web allows today. and more..Prospector (An enterprise ERP application. Adobe Flash Player provides a solid foundation to build these experiences without the need to install or update anything on the end users computer. It is just a matter of time before we enable developers to leverage Flex to deliver mobile applications on Flash Lite or AIR on mobile.500. It leverages the tools. servers. The fact is that devices are becoming ever more powerful and more plentiful. drag-drop.000.000. that run on the web (Adobe Flash Player). Yes Oracle uses Adobe Flex! ) or many other applications you can see at Flex. network detection. . We are working to enable Flex to build applications for mobile platforms and support a wide range of devices.org. At Adobe we are working around the clock to make this ecosystem of software better and provide you with the best tools and platforms to make your projects a success.000 times at a rate of over 10..LINUX) with the same file.0. Just as Flex can be used to write a web based application or desktop application. . Make sure to look at the reach of the technology you select. AIR applications are real native desktop applications and provide APIs for writing files.. The real key is that all these examples provide an application experience just like desktop software. .. it can be used to write software for mobile devices. Flash Player 9 is installed on more than 95% of computers that use the Internet and has been installed more than 3..
your presentation tier is all on the client. or perhaps sort on a particular column. Instead of the logic living purely on the server side. It could be done. while your other Application servers provide the middle/business tier. Imagine clicking on a column title and the column automatically sorts without reloading the page. vs the real application itself. and the table automatically updating as a result.blank while it waits for a response from the server and loads the resulting HTML which would be a tabular list of records that match the criteria: Time Frame From To Product Group Sales Exec Deal Initiated Product Group 04/03/2005 Adapters 04/10/2005 Switches Product ADPR2D2 SWC3PO Sales Exec Jeff Smith Bob Gordon Value ($) 100K 142K Look familiar to anything you've done? Now if the user wants to change the parameters. Pretty standard stuff for Coldfusion. Flex doesn't replace CF (or JSP/J2EE/PHP/ASP/etc. which you can download here. or 10 000 users? HTML based applications are a series of HTML web pages. but the real application is aware of your mouse movements. So imagine changing filters or criteria. but you easily hook it up to a CF template which queries a database based on the parameters passed in via the URL and return back the up to date HTML. your application wouldn't need to post a request to the server every time the user made a change. and provides much more feedback to the user by using sound. and network.. It's a companion to your existing technology by being at the presentation tier. Flex vs Coldfusion (and other servlets) For CFMX developers. ASP. database. but what about 1000 users. animation. It lets you focus on the client workflow. and other visual queues. typically the page would need to be sent back to the server where it rebuilds an up to date report based on the new criteria. every key stroke. In the Flex world. A simple analogy is imagine Word or Excel being an HTML web application. and MAC. with the Flash Player penetration near 99% (version 7 is at 83%) you can provide this real-time rich experience on Unix. I put together a simple example that demonstrates this. PHP. application server. For one user this may not be a big deal. The first example which uses Coldfusion: .). ActiveX. Even better. JSP. The attached file provides a static XML file. and DHTML locks you down to particular platforms. or any other servlet language. Flex applications are LIVE applications. Alternatively any richness you try to accomplish in IE using DCOM. and not waste time building HTML tables and endless cosmetic logic. This saves hits to your web server. Windows..
# The Flex version's columns are sortable AND re-sizeable with no page refreshing required. Click on any row and you'll see how it's immediately editable. and then present the user with an edit icon which let's you edit that record. then hit submit. it loops through the XML array with some basic styling to do alternating row colors. It's roughly 40 lines or so. depending on how compact or readable you want to make your code. which posts a URL to the server. much like you would with Excel? The folks at iteration:two in their Flex Blog demonstrate this capability. the server processes the update and then sends back the resulting HTML. As demonstrated above. Since the application is live you don't need that common update/submit button to post that change. the application knows an update was made and can commit those changes on the backend if nescessary. where the browser loads in an edit page where you make the appropriate changes. The Flex version retrieves the exact same XML content as the Coldfusion one would. # No time is wasted building basic UI elements (that is tables). . Another common scenario we're all used to is list & edit. often you'll use a table to list data. The second example which uses Flex: Since my web hosting company doesn't provide Flex hosting I can only provide screen captures.It does a CFHTTP to the XML provider by passing in the sort direction parameters based on what column a user clicked on. However the key notes to make in the above example are: # The Flex version is 2 lines of code. That's a mouthful! Why not edit right in the table itself. After parsing the XML.