cloud tutorial home
  Cloud Computing Types
  NIST Cloud definition
  Cloud Computing events
  Free Applications
  Storage space on web
  Online Image Storage
  Books on Cloud
  Related Technologies
  Cloud computing sites
  Pricing
  Making Software a Service
  SOA Governance
  Symposium Offer
  about theCloudTutorial

  Articles

  Amazon SimpleDB
  Hadoop
  Google App Engine
  Cloud Computing Standards
  Why Cloud Computing
  Virtualization
  Multi-tenancy
  Cloud computing Economics
  force.com platform
  CloudComputingPlatforms
  cloud computing & SOA

  Cloud Vendors

  Cloud Computing Vendors
  Adobe
  Amazon
  AT&T Synaptic
  GoGrid
  Google
  IBM
  Microsoft
  Rackspace
  SalesForce
  Zoho

  Leader interview

  George Reese
  Marc Benioff
  Michael Miller
  Rick Jackson
  Tim Mather
  Toby Velte
  Raju Vegesna
  
 
force.com development platform
Jason Ouellette

Force.com is a Platform-as-a-Service (PaaS) offering from Salesforce.com. It provides infrastructure commonly required by business applications, customizable for the unique requirements of each business through a combination of code and configuration. This infrastructure is delivered as a service on the Internet, where it can be accessed through a web browser and integrated with on-premise applications.

Salesforce.com started out as a Software-as-a-Service (SaaS) application for Customer Relationship Management (CRM). As it grew and became widely adopted, features were added to allow the application to be customized for each company subscribing to it. For example, fields could be added to database tables, validation rules enforced on data, and custom user interface controls embedded on the screen. Over time these features became so substantial and powerful that entirely new types of applications could be constructed alongside the CRM, at which point the Force.com platform was born.

The features and design philosophy of Force.com sets it apart in the PaaS market. Force.com is specifically designed for business applications, with infrastructure that is uniquely tuned to the needs of these applications. Some examples of this infrastructure are security, user identity, logging, profiling, integration, schema-driven data management, transactions, workflow, and reporting. Contrast this to typical PaaS solutions which provide only raw web and application servers, leaving developers with a significant amount of work before they can write line one of their application.

Force.com has its own programming language called Apex. It allows developers to script interactions with other platform features, including the user interface. Its syntax is a blend of Java and database stored procedure languages like T/SQL, and can be written using a web browser or a plug-in to the Eclipse IDE. One way to understand Apex is as a domain-specific language. Although it won't solve every programming problem, Apex's specialized nature leads to some advantages in learning curve, code conciseness, ease of refactoring, and ongoing maintenance costs.

Force.com provides two approaches for the development of user interfaces: Page Layouts and Visualforce. Page Layouts are inferred from the data model, including validation rules, and then customized using a WYSYWIG editor. For many applications, Page Layouts can deliver some or all of the user interface with no development effort. Visualforce allows developers to build custom user interfaces. It consists of a series of XML markup tags called components. Like JSP, ASP.NET, Velocity, and other template processing technologies, these components format data returned by Apex code.

The software development lifecycle of a Force.com application is much like on-premise web application development, but with fewer moving parts. A data model forms the core of a Force.com application. Data modelers can use their existing Entity-Relationship tools and techniques to design the data layer, with some deltas to account for Force.com behavior. Developers who have built web applications can quickly learn enough Apex and Visualforce and build applications on Force.com. Skills in HTML, CSS, JavaScript, or Adobe Flex are needed to build custom Force.com user interfaces.

Some applications are better suited to implementation on Force.com than others. The best applications are centered around structured data with strict sharing and security rules, a user interface composed primarily of forms or wizards, and a need for real-time integration with other systems. But Force.com is not an all-or-nothing proposition. Thanks to its integration capabilities, Force.com can be used together with other cloud platforms to build composite applications.

This article is adapted by Author Jason Ouellette from his book, Development with the Force.com Platform: Building Business Applications in the Cloud, published by Addison-Wesley Professional, Oct. 2009, ISBN 0321647734, Copyright 2010 Pearson Education, Inc. For a complete Table of Contents please visit the publisher site.

About the Author: Jason Ouellette is Chief Architect for Appirio, a leading Force.com ISV and Salesforce Consulting partner. He was previously director of R&D for application products at Composite Software, where he led development of data services for Siebel, SAP and salesforce.com. Jason also has done a one-hour webcast on Force.com.