Ted Patrick, the Flex Evangelist at Adobe, showed me FXT, an independent project he's been working on that I think could make some big waves in web development. FXT is an open source solution that uses templating and Flex to give web developers the ability to create feature rich websites. This is a distinctly different market from the rich internet application space that Flex is targeting, but I think web developers of all stripes will be interested in FXT.
Any good application developer knows about Model-View-Controller and the benefits of separating business logic with the view. In RIAs, we see this theme. But the web, thanks to the original concept, MVC has never taken off within web development (which is distinct from web application development). If you are building a website, you munge the view and the model together. As websites have become more interactive, the support of that interactivity has lagged. Internet Explorer doesn't support the same code implementation as FireFox or Safari and vice versa. Anyone who's worked with Ajax and DHTML knows the minefield the DOM can become and the hacks required for a true cross-platform application.
FXT takes away those problems and provides a rapid way to develop interactive websites with Flex. At first I was skeptical, because I'm a firm believer that Flex should be used for applications and that it is overkill for regular websites. However FTX changes my mind because it gives you the same level of interactivity, with no loading times. The best part is that because it leverages Flash, you get the cross platform, cross browser benefits with none of the hacks currently required with Ajax and DHTML. It is truly build once, deploy everywhere. Skeptical? Take a look at the example and view the HTML source.
So how does it work? FXT implements client side templating. The model is simply an XML island embedded in HTML. This makes FXT 100% SEO friendly, something Flash has been knocked for in the past. The view and controller resides in a Flex 2 SWF, which means the UI can be reskinned and changed within that single SWF file. The data is kept separate until it loads on the client, at which time it merges with a server-side SWF and creates the page. With E4X you can build very immersive websites using components, data binding and asynchronous loading. And because it uses Flash, you can seamlessly integrate music and video in a way that adds value and isn't just annoying.
Up to this point, I've always thought of the Flash platform as a way to deliver experiences in the form of applications. But with FXT, it brings the benefits of the platform to regular websites. And these won't be the Flash applications that break every rule and techies have come to despise - these follow the rules of the browser and simply add a layer of interactivity in the same way Ajax does. While this traditionally hasn't been the goal of Flex, I think it's a great move, and will be a great entry point for the platform.