Manage Learn to apply best practices and optimize your operations.

''Development with the Platform'' provides quick view into key PaaS's was an early platform as a service. Central is Apex, a general language with some DSL-like traits. In an interview, author Jason Ouellette explains. is unique among cloud computing platforms as a service (PaaS). This is in part because it was one of the first such platforms, and its designers needed to forge their own approaches. Also in part, its creators had unique objectives.

From the get-go, originator chose to offer business-oriented sales force automation and customer relationship management applications that resided on the Web, and the company, which early on may have been described as an application service provider (ASP), began to be seen as a purveyor of software as a service (SaaS). was aimed at corporate application developers whose work was centered on relational database development., as described by independent developer and author Jason Ouellette, integrates with standards such as SOAP and REST, but its basic metadata representation and its native Apex language, are proprietary – intended to support business applications.

Oullette's Development with the Platform (Second Edition, Addison-Wesley, 2011) provides a thorough review of the key aspects of the platform, including such recent platform additions as Batch Apex and Chatter social media support. As in the first edition, Ouellette ably weaves an informative and thorough depiction of the platform together with an insightful underlying story of a new style of development.

There are many basic understandings that a development manager would want to achieve before embarking on cloud computing of any kind. For the cloud PaaS, just a few of the key points are the Apex language, the database and custom object handling by the platform. Here is a brief look at some of those elements:

* The Apex Language - The Apex language as described by Ouellette lets the developer script interactions between platform features using a syntax that blends some Java-like style together with a stored procedure language. In some ways – not all – Apex resembles a domain-specific language (DSL), Ouellette told in an interview. Apex is like a general-purpose language, too – however, it is designed for the needs of the developer, he emphasizes.
* The Database - The database is queried using SOQL (Salesforce Object Query Language), writes Ouellette, who advises his readers that the database essentially forms the framework for most of one's application. The database is contrived such that custom tables each can hold up to 800 fields. Strong data typing is built-in. Supporting object-oriented behaviors; Apex allows code to be structured into classes and interfaces. The database's approach to ''implicit joins'' mitigates against the use of ad hoc queries. Object-relational data mapping (ORM) with is easier than with typical Java applications, writes Ouellette. This is because the ORM layer is built into the platform, shielding the developer from the complexity.

* Custom objects – Ouellette cautions that objects more closely resemble database tables than they do traditional programming objects. Custom objects, defined during development, are important tools for the cloud computing PaaS development team. The abstraction layer takes care of representing, indexing, backing up and tuning the custom objects' storage in the database. The developer can express one-to-one, one-to-many and many-to-many relationships. But, Ouellette writes that relationships, too, are controlled and managed by the platform.

Some aspects of database object handling with Apex gives a similar impression to a DSL.
"When you build your database objects, they end up being parts of the language, which is a 'DSLish' thing. But overall, Apex is like a general purpose language. It is not like Scala [which is associated with DSLs],'' Ouellette said.

But Apex does not achieve the human-readability found with some DSLs.

''Apex still looks like code- Java code, not like plain English,'' said Ouellette said.

''Generally, it is like a 4GL – talking to the database, it looks DSLish,'' he continued. ''That makes for a productivity gain. The ORM mapping is integrated. You don't have to think about it.'' helped pioneer cloud computing, SaaS and PaaS. It is valuable to consider the elements of its approaches. Development with the Platform by Jason Ouellette is a well written entry point for anyone interested in the cloud, be it, or other.

Related information
Development with the Platform: Second Edition -

Dig Deeper on Topics Archive

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.