Adobe and Salesforce.com Unite RIA and The Cloud

The two major trends transforming software right now are Rich Internet Applications (RIAs) and Cloud Computing / Software as a Service (SaaS or PaaS). These trends are driven by two needs:

  • Full client capabilities, which allow software to perform optimally and increase usability

      • Easy deployment, which allows developers to focus on business needs instead of building infrastructure
      The combination of RIA and Cloud is the future of software because it provides full client capabilities and easy deployment. The chart below illustrates this in comparison to the other major software architectures (main-frame, client / server, and web).
<img src="http://www.jamesward.com/blog/wp-content/uploads/2009/10/RIA.png" alt="RIA" title="RIA" width="600" height="370" class="alignnone size-full wp-image-1272" srcset="https://www.jamesward.com/uploads/2009/10/RIA.png 600w, https://www.jamesward.com/uploads/2009/10/RIA-300x185.png 300w" sizes="(max-width: 600px) 100vw, 600px" />

In line with these trends Adobe and Salesforce.com [announced today][1] that they are working together to unite Rich Internet Applications and The Cloud. At the core of this announcement is a developer preview of the [Adobe Flash Builder for Force.com][2] tool. This tool enables developers to easily build intuitive user interfaces with Flex which connect to the Force.com cloud platform and Salesforce.com CRM data. These applications can be deployed either in the browser or on the desktop using Adobe AIR. When utilizing Adobe AIR, the applications can still function when users are disconnected. Later, when users reconnect, the changes are synchronized with Force.com using the LiveCycle Data Services synchronization engine.

Being able to connect Flex applications to Salesforce.com / Force.com has been possible (and easy) since I co-created what was originally called the [Flex Toolkit for Apex][3]. So while it has been possible to build Rich Cloud Applications for a few years, today's announcement is significant for a few reasons:

  * Adobe and Salesforce are now officially partnered together around Rich Cloud Applications
  * Much better, officially supported developer tooling
  * Much better offline data synchronization

It's really exciting to see how the vision of Rich Cloud Applications is becoming reality!

If you'd like to learn more or try out the new tooling check out these resources:

  * [Get the developer preview and watch video demos][2]
  * [Get inspired and see how it works][4]
  * [Watch a video walk-through][5]

Another great way to learn more is to sign up for a [Webinar / Tech Talk][6] that I will be co-presenting.

Let me know what you think about this exciting new partnership and developer tooling.

Text to Speech in Flex

Back in August at the Flex Jam in Orlando one of the projects we worked on was Text to Speech in Flex. We didn’t finish the project at the Jam so I wanted to post the final version here. Check it out:

(source code)

I used the iSpeech.org API to convert the text to speech. It was pretty easy to build this demo but a production version would need to use a proxy so that the username and password can’t be discovered.

Flex Builder 3 on Eclipse 3.5

UPDATE: Flash Builder 4 (the new version of Flex Builder) officially supports Eclipse 3.5. Download Flash Builder 4.

I recently tried to upgrade to Eclipse 3.5 on my Ubuntu Linux desktop. Unfortunately this caused some problems with the Flex Builder 3 for Linux alpha 4. According to the stack traces in Eclipse the main problems seemed to stem from the com.adobe.flexbuilder.project.compiler.internal.ProblemManager class. So I decided to re-write that class from scratch to see if I could make the problems go away. My new implementation of ProblemManager seems to have fixed the issues that I was seeing. I’ve only tested this on Linux so I’m not sure if it will fix any problems on Mac or Windows. Here are the instructions for fixing the problems with Flex Builder 3 on Eclipse 3.5 on Linux:

Query the Loaded Classes in Flex / AS3

One of the things I love most about programming is running into walls and then finding creative ways to get over (or through) them. The most recent wall I ran into with Flex was that I wanted to be able to find classes at runtime that either implement a given interface or have specific metadata on them. Flash Player doesn’t provide an API to do this directly so I went searching for a workaround. Christophe Herreman tipped me off to a few great utilities for doing this:

RIAs on the Web, on the Desktop, and in a PDF

Some believe that the “Internet” in “rich Internet application” (RIA) means that RIAs must only run in the browser. However my definition of RIA is not constrained to only web-based applications. RIAs can run anywhere: web, desktop, mobile devices, TVs, or even inside PDFs. Ideally we should have some level of code and library reusability between these environments. However to think that we can reuse the entire application is a pipe dream. Client capabilities and end user needs vary too greatly between these mediums.

Building Rich Cloud Applications with Force.com and Flex

Combining the power of the cloud and the client allows developers to have the best of both worlds - easy deployment and full client capabilities. Salesforce.com’s cloud platform, called Force.com, and the Flash Platform are two proven and reliable choices for building these types of Rich Cloud Applications. Last week I co-hosted a webinar called “Developing Rich User Interfaces on Force.com Using Adobe Flex” in which Ryan Marples (from Salesforce.com) and I walked through the two platforms and how to use them together to build great software. If you didn’t have the chance to join the webinar then please go watch the recording and let us know what you think.

My MAX 2009 Sessions

MAX 2009 is coming fast! It’s going to be another great event with tons of great speakers and after party fun. Here are my sessions this year:

Also Drunk on Software will be there filming some episodes.

So this is certainly a MAX you don’t want to miss! I hope to see you there!