I've been working with Spring quite a lot over the last few months - we use it to wire things together behind the Broadchoice Workspace - and it constantly amazes me how comprehensive the Spring project is - see below for an example.
By integrating the open source BlazeDS project directly into Spring, Adobe brings Flex integration to a vast community of Java Spring developers who can now expose their Java services to Flex UIs in a very simple way. It should really help the uptake of Flex in the Java community!
An example of Spring's comprehensive nature: Ray blogged about sending email using Spring's mail support via Groovy. I recently built a new Model-Glue 3 app on top of our Groovy services and needed to send email. I could have used CFMAIL but Railo has a bug that does not allow + in email addresses and I didn't want that restriction (since we send email elsewhere directly from Groovy). It was very simple to use the same Spring mail package directly from CFML by declaring the Spring-managed beans in the CFCOMPONENT tag of my controller so that Model-Glue would autowire it!
Broadchoice Workspace is deployed on the cloud and whilst most of the machinery is Java/Groovy behind the Flex/AIR application, we also have the iPhone-compatible web version which is powered by CFML. It's a Model-Glue 3 / ColdSpring application that reuses the core Groovy services (via a Spring adapter that Joe Rinehart wrote).
So we've been running CFML in the cloud in production for nearly two months now and it's working out really well for us. We're using Railo 3.0, another option for cloud computing.
Adobe have said that cloud deployment is something they want to make possible with ColdFusion so at some point we'll have an embarrassment of riches in terms of choices for CFML in the cloud.
Who else is using CFML in the cloud today? Who is thinking about doing so?
What is your preference - .Net, PHP or Java ?Some of the respondents had specific preferences, some talked about the pros and cons of each. Several pointed out that the requirements should drive technology choices, not preferences, and that considerations of the client's existing technology stack were important. A few mentioned Ruby or Ruby on Rails, and even Grails got one mention. Spot anything missing?I am coming across very open requirements when it comes to preferred web platforms.
I welcome your input to see what are your preferences.
Here's the response I posted to the IT Architects group:
A few people mentioned Ruby / Ruby on Rails as a potential technology for web applications. Groovy is also a strong contender for shops that lean toward Java. For the last seven years I've been involved with a lot of web projects that use Adobe's ColdFusion markup / scripting language. It compiles to Java bytecode and runs in any Servlet container - and therefore has very strong integration with Java. It also has a large library of built-in functionality tailored for the enterprise, such as PDF manipulation, JMS support, automatic SOAP web services support for components, integration with SMS and so on.Thoughts?It's also worth considering that these days the requirements placed on web applications are increasingly sophisticated and user interfaces need to support more than just simply data entry and table-based display. AJAX gets you part of the way there but it takes a lot of development time and it's hard to maintain cross-browser compatibility. Adobe has done a lot of work on the Flash Player over the years and their Flex tooling is quite remarkable with the XML-based "MXML" UI layout language and the ECMAScript-based "ActionScript" programming language.
Whilst some may rail against a proprietary technology stack (although it doesn't appear to be an issue for people who prefer .NET / Microsoft), Adobe has also worked hard in the Open Source arena, donating the core of the Flash Player engine to the Mozilla project (as Tamarin) and providing the Flex 3 SDK as open source, as well as the server-side messaging engine BlazeDS which provides Flex's bridge to Java (or Groovy). The Adobe Integrated Runtime (AIR) allows you to take web applications to the desktop as well to provide occasionally connected online/offline capability. As others have noted, requirements are the key driver, along with any client considerations of existing technology or preference. I was just surprised that no one had mentioned the web tooling of one of the other largest software companies out there...
Disclaimer: I was the senior architect for Macromedia's IT division for several years and remained with Adobe for a year after their acquisition of Macromedia so I am somewhat of an evangelist for their technologies (and just came back from their annual MAX conference in San Francisco where they showcased their current and future technology offerings).
This is a substantially different version of the talk seen at Scotch on the Rocks and CFUNITED...
Commercial use will be just $99/user per year with educational licenses at $49/user per year. Registered non-profit organizations can get free licenses.
If you're also a Salesforce user, you'll love the integration between groups in Workspace and your company's Salesforce account, allowing you to see open opportunities directly in the Workspace and create collaborative spaces based on opportunities so that you can work with your non-Salesforce peers on closing deals!
Working with Brian Kotek, Joe Rinehart and Ray Camden on this application has been a wonderful experience. We've all learned a lot from each other as we've learned a lot about Flex, AIR, Groovy, BlazeDS, Spring, Hibernate and integration with CFML via Model-Glue 3 (Gesture) and ColdSpring!
Also, for Workspace users on-the-go, there is an iPhone-compatible web application (with plans for full Blackberry support by year end).
It's running on the Broadchoice Collaboration Platform, our "2.0" ColdFusion-powered platform - not to be confused with the Broadchoice Workspace, our "3.0" AIR/Flex desktop application that launched in beta today!
Here's a screenshot of the latest internal build, running on my laptop (with real content!) - the navigation and layout has changed a bit since our earlier screenshots - but we're all using the Workspace in-house to collaborate on projects as we draw closer to launch:
In addition to the AIR application, we're also working on an iPhone web application - built with CFML - that exposes all the Workspace content as well as providing the ability to send messages to spaces.
Folks who sign up for the beta program will get to experience both of those!
The beta will start next week on a first come, first served basis (so those who have already signed up will get their login credentials and access instructions around the 15th - thank you for your patience!).
- Monday
- Opening General Session
- Adobe Roadmap: Enterprise
- Flex Architecture Face-Off - panel
- Real-Time Collaboration Apps with Flex and Cocomo - Nigel Pegg
- Tuesday
- Mixing Open Source and Commercial Software
- General Session
- Adobe@Adobe: IT Innovation
- Developing Rich Applications with jQuery and Adobe AIR - John Resig
- The REST of SOA
- Wednesday
- Advanced Patterns for ColdFusion Test Automation - Bill Shelton / Marc Esher (MXUnit)
- Building Real-Time and Collaborative Applications with Flex and BlazeDS
- Event-Driven Programming in ColdFusion - an updated version of my session from Scotch on the Rocks and CFUNITED
- Cocomo Deep Dive: Building Social RIAs with Flex + Adobe Hosted Services - Nigel Pegg
- Developing Enterprise ColdFusion Applications - Joe Rinehart
Also a reminder that BACFUG meets on the Wednesday evening immediately after MAX ends and I am pleased to announce that we are having a double session with some MAX speakers:
- Bill Shelton and Marc Esher will present on Unit Testing in ColdFusion with MXUnit
- Joe Rinehart will present on Model-Glue 3: Gesture
That's a smokin' deal courtesy of BFusion & BFlex '08.
Matt Chotin is asking what non-Flex resources helped you learn this in order to grasp Flex's programming nuances.
If you are a Flex developer these days but had to go through that broader learning curve, comment on his blog post with specific recommendations for books, blogs, websites etc that helped you.
I haven't made it to WotP yet but given the atmosphere and buzz at MXDU/webDU, I'll bet it's a great event - the aussies are a terrific bunch and there is so much hardcore RIA work going on down under!
Workshop Prequisites for cf.Objective() 2008
This document will continue to be updated between now and the conference but this should help you get ready for your workshop session.
We've worked hard to make cf.Objective() 2008 a "must see" event. We have a number of firsts this year that we're very proud of:
- The public release of Open BlueDragon on May 3rd!
- The public unveiling - and Alpha - of Model-Glue 3: Gesture!
- The public unveiling of Mate, the new Flex framework from AsFusion!
- The first conference to feature the latest rising star in the frameworks world: ColdBox - with an introductory session and a two hour, hands-on advanced workshop!
- The first public information about Swiz, the new Flex framework from Chris Scott of ColdSpring fame!
- Speaking of Chris Scott, we're the first conference to feature a two-hour, hands-on workshop for ColdSpring!
- We're also the first conference to feature a two-hour, hands-on workshop on agile development for ColdFusion developers by the leading light in automated process & testing, John Paul Ashenfelter!
If you're a Mach-II user - or thinking of using Mach-II - you might also be interested in the pre-conference classes.
- Mate - Laura Arguello
- Cairngorm for ColdFusion Developers - Brian Rinaldi
- Flex: No Frameworks Required - Maxim Porges
Would folks be interested in a Flex frameworks shootout BOF?
- Flex 3 for ColdFusion Developers - Mike Nimer
- Agile Bootcamp: What ColdFusion Developers Need To Know - John Paul Ashenfelter
- ColdSpring l337 - Chris Scott
- Advanced Techniques With The ColdBox Framework - Luis Majano
As we see which sessions are going to be the most popular, we'll finalize the Sunday sessions.
Adobe Developer Week is back, next week, March 24th thru 28th. Topics cover AIR, ColdFusion 8, Blaze DS with twenty sessions spread throughout the week.
Lots of AIR / Flex 3 stuff as well as three ColdFusion sessions!
It was an enjoyable discussion with some differing opinions and looks like being the first of an ongoing series of roundtable format shows. Next week's edition will cover's New Atlanta's announcement of BlueDragon J2EE going open source, among other things.
You can download episodes (sorry, "editions") from the site or subscribe via iTunes.
Browsing through the Grails site, I noticed they have a plugin for Flex so I figured I'd try it out.
Following the instructions, I installed the plugin (grails install-plugin flex) which took a fair while to fetch the plugin from the codehaus.org site and build it and install it into my project. Then I created a service class - a regular Groovy class - with just this one additional line:
Then I put my main.mxml file in the web-app directory of my Grails project with these lines inside the mx:Application tag:
<mx:Button label="Hello" click="ro.hello()"/>
<mx:TextInput text="{ro.hello.lastResult}"/>
Then I hit the MXML file in my Grails app:
http://localhost:8080/bookstore/main.mxml
Much churning ensued as the Flex app was compiled on demand and then up it came with the Hello button. Click. The return value from my HelloService.groovy hello() appeared in the text box.
It's a trivial app but it showed just how incredibly seamless the integration is. It uses the Web Tier Flex compiler for on-demand MXML compilation and it automatically manages the destinations for you.
It'll be a big event - we have around 150 RSVPs so far across the three groups!
- 6:30pm for food / drink / networking
- 7:00pm for the main presentation from Ted Patrick, Adobe's Technical Evangelist for Flex
The raffle will include:
- iPod Nano
- Flex Builder 3 Professional ($699 value - when released)
- CS3 Web Premium Suite ($1,599 value!!)
Due to the popularity of this event, we will be in the "Town Hall" open space inside the security area so you must RSVP using the BACFUG web site - http://bacfug.org/ (scroll down - the RSVP link is below the meeting information)
Direct RSVP link.
About this presentation:
Flex 3 and AIR are getting close to launch and in preparation, Ted Patrick from the Adobe Flex/AIR product team is traveling to select cities to show off the great new features and help prepare us for this exciting launch.
Flex 3 is a feature-packed release, adding new UI components like the advanced datagrid and improved CSS capabilities; powerful tooling additions like refactoring; and extensive testing tools including memory and performance profiling, plus the addition of the automated testing framework to Flex Builder.
Adobe AIR is game-changing in so many ways, extending rich applications to the desktop, enabling access to the local file system, system tray, notifications and much more. Now you can write desktop applications using the same skills that you've been already using to create great web apps including both Flex and AJAX.
Don't miss out on the opportunity to see and hear about this highly anticipated release of Flex 3 and AIR during this special pre-release tour. Plus, in addition to giving away some one of a kind Flex/AIR branded schwag, we will also be raffling off a copy of Flex Builder 3 Professional (pending availability), a full commercial copy of CS3 Web Premium and an iPod Nano at this event!
About Ted Patrick:
Ted Patrick is a Technical Evangelist for Flex at Adobe Systems. He worked with Flash since FutureSplash Animator and watched its evolution from animation to application.
Ted helped Macromedia/Adobe with the development of ActionScript 3, AVM2, ASC compiler, and Flash Player 9 for some 18 months prior to Flex 2's release.
Prior to joining Adobe in May 2006, he provided consulting services at PowerSDK Software and Cynergy Systems.
Ted is a serial entrepreneur having successfully started-up 4 times and raised over 7 Million in VC funding for companies he founded.
3 companies have been successfully sold to other businesses and one was sold to a publicly traded company in 2001. Ted is actively involved in the Flex development community and works at Adobe to define the future of rich media.
We will be raffling off some incredible prizes:
- Flex Builder 3 Professional (shipped after launch)
- CS3 Web Premium
- Apple iPod Nano
Read the BACFUG website for more details and make sure you RSVP (on the BACFUG website) since the meeting will take place inside the security perimeter at Adobe's San Francisco building!
AIR Beta 3, AIR extensions/updates for Flash CS3 and Dreamweaver CS3, Flex 3 Beta 3, BlazeDS, Brio Beta, Flash Player 9 Update...
Good grief!
I just installed the new Flex Builder plugin but won't get a chance to put it through its paces for a few days. The AIR installer is sitting on my desktop and I'm just about to install the updated Flash Player. Oh, and I have my Brio account but haven't had time to play with that either. Maybe Adobe think we need something to keep us busy over the holidays?
Check out Adobe Labs to see what you might be missing!
We all got together early in the summer and came up with the tracks:
- Architecture and Design in Software
- RIA - Flex / AJAX / AIR
- Frameworks A-Z
- Process and Tools
- Platform: Database Tuning & (Application / System) Security
- Tony Hillerson - Offline/Online Features of AIR
- Charlie Arehart - Hidden Gems in CF8
- Michael Smith - Using your Whole Brain for Developers
- Paul Kenney - Test-Driven Development with ColdFusion
- Sean Corfield - Design Patterns and ColdFusion
- John Paul Ashenfelter - Pragmatic ColdFusion: Build, Test, Deploy
- Matt Chotin - Introduction to Flex with ColdFusion
- Introduction to Design Patterns
- Advanced Design Patterns
- Integrating ColdFusion with .NET and other Microsoft technologies
- Publishing and consuming Web Services
- Interface-driven design (interface = API)
- Introduction to AIR
- Data synchronization techniques with AIR
- Designing for multiple user interface technologies
- Designing for code reuse between AIR and Flex
- Real-time data management with LiveCycle Data Services
Soon we'll be posting a general call for speakers. Watch this space!
Remember that registration is already open for cf.Objective() 2008!
See this blog post for more details on the speaker selection process.
Currently flights from the Bay Area to Sydney are around $1,200 including taxes... hmm...
I'll be blogging more about Model-Glue: Flex in due course - I'll be using MG:F, rather than Cairngorm, for the Flex (and AIR) development work I'll be doing over the coming months.
It's also worth noting that Model-Glue 2.0 is now an official release.
What do you get? A slick, clean monochrome interface with simple, intuitive controls. A library mode and a reading mode. Bookshelves to organize your books. Bookmarks. Text search. All in a 3Mb download.
Adobe has quite a few free sample books in its library to get you started.
Bill McCoy has plenty more details in his blog, in particular details of support for EPUB (aka OPS), an open standard, reflowable XHTML-based format.
Dave noted that Adobe has been active in Open Source for a good long while but has recently begun to move away from the Adobe Open Source License (a vanity license - like the old Fusebox license) to more standard licenses such as BSD and MPL. We've seen the ActionScript Virtual Machine released to the Mozilla Organization (as Tamarin) and this week the Flex 3 SDK was just released as Open Source with the ActionScript and MXML compilers and ActionScript debugger all following later this year.
You can keep tabs on Adobe's voice for Open Source on the Open at Adobe blog.
You can read about (some of) Adobe's Open Source projects on opensource.adobe.com, which includes the Adobe Source Libraries and the Generic Image Library. The latter was accepted into the Boost project for C++ - an open source library project that I was involved with back in 1998, when I was still involved with the ANSI C++ Standards Committee!
Dave also mentioned RIAForge which is probably the most well-known Open Source effort around Adobe technologies, as far as the ColdFusion community is concerned.
There are quite a few changes between the Apollo Alpha (aka "M3") and the new AIR (aka "M4") builds so you'll have to make some source code changes to rebuild your Apollo apps. It's not a big deal - I had my Apollo app - an administrative console for a website - up and running as an AIR app in just a few minutes. Despite the new Flex 3 SDK, my (recompiled) Flex apps and my new AIR app seem to work just fine with my existing CFMX 7 and CF 8 sites.
And tomorrow I get a whole day of training on AIR so I'll have more to say in the next few days.
Thank you to all the other folks who entered - I had about dozen entries in total, with half of those being within a very narrow window, around quarter past midnight!
Nearly 1,000,000 visitors have come to An Architect's View since I started blogging in June 2002. Dan Wilson suggested that I run a contest for the millionth visitor and then donated a prize so here's the contest!
The counter, as of this posting, is at 999,409. The person who takes a screenshot of the counter when it is closest to 1,000,000 visitors and sends it to me will win the "Flex 2 Essential Training" videos from Lynda.com.
But wait, you Photoshoppers... Sure, anyone can cheat. So to help prevent PhotoshopFraud, you must also send me the time you took the screenshot. This is something I can easily double check (because only I will know the timestamps on all the other screen shots submitted!).
The winner will be announced a few days after the counter reaches 1,000,000 visitors (to allow for folks to get their screenshots in).
The videos are being donated by Dan Wilson who is very keen for this contest to happen and, for some strange reason, really likes my blog!
Many thanx to Dan.
Get screen grabbing!
I just finalized my schedule and, somewhat to my surprise, my session choices are nearly all Flex! So I guess you could say CFUNITED is a great conference for learning about Flex :)
Here's where I'll be:
- Wednesday
- 8:00am - Welcome - Michael Smith et al (KN)
- 8:30am - Adobe Keynote - Ben Forta (KN)
- 10:15am - Flex 101 - Ted Patrick (FL)
- 11:30am - Leveraging ColdSpring to build robust Flex applications - Chris Scott (FL) - Yes, I know I saw this at cf.Objective() - it was a good session!
- 2:00pm - Integrating Spry and ColdFusion - Andrew Powel (FL)
- 3:15pm - OO Flex: An introduction to the Flex Framework - Andrew Trice (FL)
- 4:30pm - Using the Adobe Flex toolkit for Salesforce.com - Steve Rittler (FL) - Because I missed it at cf.Objective()!
- 6:00pm - Networking Event
- 8:00pm - Solo Coding - Charlie Arehart, Chaz Chumley, Mark Drew (BOF)
- 9:00pm - Apollo and Flex fears debunked - Andrew Powell (BOF)
- Thursday
- 8:30am - Testing CF Applications - John Paul Ashenfelter (ME)
- 9:45am - Continuous Testing with Flex and ColdFusion Projects - Thomas Burleson (FL)
- 11:30am - The Future of BlueDragon and CFML - Vince Bonfanti (KN) - Very interested to see progress on their "IronDragon" / DLR project!
- 1:45pm - Prototyping Applications with Flex 2.0 (FL) - Should this be 2:00pm I wonder?
- 3:15pm - AJAX Integration with ColdFusion 8 - me! (AC)
- 4:30pm - Using MVC with Flex/ColdFusion projects - Thomas Burleson (FL)
- 7:00pm - CF Celebration - Top Secret!
- Friday
- 8:30am - Ins and Outs of working with XML - Erik Goodlad (AC)
- 9:45am - Flex and Ajax: perfect match - Rob Gonda (FL)
- 11:00am - ColdFusion 8: Application Security - Adam Wayne Lehman (AC)
- 1:30pm - Flex Charting Explained - Rob Rusher (FL)
- 2:45pm - Pragmatic ColdFusion: Build, Test, Deploy - John Paul Ashenfelter - (DP)
- 4:00pm - Q & A Panel Session
- Saturday (my non-Flex day!)
- 8:30am - Step Debugging in CF 6/7/8 with FusionDebug or the new Scorpio - Charlie Arehart (BC)
- 9:45am - Working with RSS in ColdFusion - Pete Freitag (AC)
- 11:00am - ColdFusion 8: Integrated Flex Data Services (AC) - It's a bit Flex-y :)
- 1:30pm - AJAX Integration With ColdFusion 8 - me again! (AC)
- 2:45pm - Are You "Cashing In" on Caching? - Tyson Vanek (DP)
Joe Rinehart showed off a new project at cf.Objective(), which aims to brings the ease of use of Model-Glue to Flex. He showed me an example that he'd converted from Cairngorm to his nascent "MG:F" and it was definitely an improvement. I was still bothered by all the repetitive code, left over from Cairngorm, for handling the model - endless delegate object creation, asynchronous token management, responders and result / fault handlers. Boring, tedious, monotonous boilerplate code. There had to be a better way.
I asked Joe if he thought he could come up with some sort of automagic proxy mechanism to make all that code just go away. Being Joe, of course he could!
Read about the big changes to MG:F that introduce autoproxy functionality around the service layer so that you do a lot less typing! Very nice!
I think this is going to be a great project that will really help a lot of ColdFusion developers get into Flex (me included!).
The Mozilla Public License will be used to cover the source the AS3 Flex SDK (available in source form since the release of Flex 2) as well as the Java source for the AS3 and MXML compilers, the debugger and the core AS3 libraries from the SDK.
Most of the infrastructure should be in place by the summer with a full transition to open source by the end of 2007.
You might also want to watch the video interview with Ely Greenfield and David Wadhwani by Robert Scoble of PodTech.
If you haven't seen Buzzword - which they've demo'd a few times now - check out the screen shots on their main web site. It's very, very slick.