While the latest iteration brings several important upgrades, including a point-and-click tool that lets users add formulas to workflow and the ability for developers to deploy multiple sandboxes, the bottom line with this latest release is, finally, the availability of Apex code.
Announced in October 2006 at Salesforce.coms annual Dreamforce user event, Apex is billed by the company as the first on-demand programming language and platform.
The code itself is "Java-like." Java programmers will recognize it immediately, company officials said, and anything built using Apex will be available as a Web service and is accessible via SOAP (Simple Object Access Protocol) and XML standards.
In January Salesforce launched a developer preview program that provided access to the code to about 1,200 developers.
With the Summer 07 release, all Salesforce customers will have access to the code to customize and extend their CRM applications. But the real goal for Salesforce is that Apex be used to build any other on-demand application outside of CRM—that in effect Apex becomes the Java of the on-demand world.
"The arrival of Apex heralds a new era in which all application categories will be available on demand," said Marc Benioff, Salesforce.coms CEO, during the October Winter 07 event. "By making the Apex platform and programming language available, Salesforce.com is enabling the ecosystem to lead the way for the next level of innovation in on-demand.
The question is, now that Salesforce has built the Apex code will developers come—to build outside the Salesforce environment, that is?
Mike Epner, vice president of worldwide services at development tools company Borland, is using Apex to build a new customer-facing portal that automatically communicates customer contract information to Borlands IT service and support system. "Weve written code [using Apex] that we wouldnt be able to do otherwise using a software package you just cant go and put [code] in," said Epner, in Austin, Texas.
Using Apex to develop custom functionality for Borlands Salesforce environment worked so well—and fits in with Borlands companywide mandate to use fewer custom, on-premises applications—the company has decided to hire a developer who will be strictly focused on writing Salesforce.com extensions in Apex.
But Borland has no current plans to use Apex outside of the Salesforce CRM environment.
"Right now we dont have any plans [to use Apex for programming new applications]," said Epner. "We will have a developer focused on extending our [Salesforce] applications and writing in Apex code … but thats writing just Salesforce."
Michele Hincks, a Salesforce.com customer from Enviance, which delivers on-demand applications for environmental health safety compliance, said her company utilized Apex to expose applications to its customers. "We have a system that tracks enhancement requests, and what were looking to do is connect our bug and enhancement system with Salesforce," said Hincks. "But anything we would build we would use our platform. … We write our own software using .Net."
On the flip side, Salesforce.com consulting partner Blue Wolf foresees a day when it will use Apex to build non-CRM applications.
[Apex] is eventually going to get to that point where its robust enough that it could replace a J2EE server; you can do a lot more with [a J2EE server], but [Apex] has a lot of other advantages like support infrastructure and hosted database," said Chris David, technical solutions architect at Blue Wolf, in New York.
For now, Blue Wolf is using Apex to build extensions to its customers Salesforce environments, although using Apex to build ERP (enterprise resource planning) or other applications is not out of the question, he said.
"You can subscribe to the platform, but youre still paying Salesforce for the license. [You could] use a generic application server for whatever apps you wanted to write—finance or insurance or whatever it is youre looking for," said David.