Salesforce.com started out as a cloud-ready sales Automation (Sale Force Automation, SFA) and CRM tool (Customer relationship Management, CRM), But after so many years of evolution, it has become a common platform to build any enterprise application. The name Salesforce is a legacy of history, although the Salesforce1 platform still offers SFA and CRM applications, but it is a fundamental platform for building modern enterprise systems.
Prices and Features
The Salesforce1 platform offers many different versions of the product, like CRM app Sales Cloud, customer service app service cloud, Platform, and more. Different products will vary in built-in functionality, and all products and price lists can be viewed on http://www.salesforce.com/crm/editions-pricing.jsp. There is also a free version available for developers, which can be applied at https://developer.salesforce.com.
Here we look at the composition of the Salesforce1 platform from different perspectives.
Metadata-driven data model (Metadata-driven)
At the heart of the Salesforce1 platform is a cloud-based database that can be customized and configured with metadata. Metadata defines the data model, and Salesforce supports two different ways to modify metadata, such as clicking drag and drop on the Web interface, and modifying it through an XML-formatted definition file. The Salesforce1 platform is a multi-tenant architecture platform that supports versioning, packaging, and testing for each tenant (also called Organization or ORG) metadata (i.e., the data model).
Each object or table in the database is called SObject, and each SObject has the following functionality built into it:
custom Field
Validation logic (Validation logic)
Field Level Security
List of reference relationships and options (Reference and Picklist)
Derived Values
All the SObject are provided with:
SOAP and REST APIs
Basic deletion and modification of the interface
Change the interface via Salesforce1 's mobile-side additions and deletions
Indexed search
The SObject field type contains:
AutoNumber (Auto number)
Formula (Formula)
Cumulative rollup (Rollup Summary)
Lookup relationship (Lookup Reference)
Master-detail relationship (Master-detail Reference)
check box (checkbox)
Currency (Currency)
Date and date time (date and Date/time)
e-mail (email)
Location (geolocation)
Numbers and percentages (number and Percent)
Telephone (phone)
List of options and options for multiple selection (Picklist)
text box, text area, encrypted text (text, Encrypted text)
Url
Each newly registered ORG on the platform has built in some standard sobject, depending on the version. For example, Sales Cloud org has its own contacts, leads, and business opportunities.
The Salesforce data model has built-in security features, such as audit of data changes (change auditing), and field-level security.
Writing code to implement custom extensions
On the Salesforce1 platform, users can build apps by simply dragging and dropping the Web interface. But there are some use cases that need to be programmed for customization, such as custom interfaces, trigger, scheduled jobs.
Programming languages supported by the Salesforce1 platform:
Visualforce: Server-side template language for customizing the user interface
Apex: Used to write code logic like Trigger,visualforce controller,scheduled jobs
SOQL: domain-specific language for database queries (domain specific Language, DSL)
Visualforce uses a JSP-like syntax to create custom HTML pages that are embedded in Salesforce or Salesforce1 mobile apps. The pages in Visualforce use the traditional server-side MVC architecture, where Visualforce is View,apex Class controller,sobjects is Model. The Visualforce page can use any JavaScript, including JavaScript Remoting and a variety of RESTful Web service.
A typical Visualforce page looks like this:
<apex:page> Hello, world </apex:page> |
Apex is a syntax similar to Java that runs in a managed, separate, and secure runtime on a platform. Salesforce provides the Eclipse plug-in force.com IDE and Web-based Developer Console for writing Apex code. Apex trigger binds to each SObject event, such as update, delete, create. Both Batch jobs and scheduled jobs were written with Apex.
A simple trigger looks like this:
Trigger Foo on Contact (after insert) {to (contact newItem:trigger.new) { system.debug (' Contact Created: ' + N ewitem.name) }} |
SOQL queries can be run in Developer Console or embedded in Apex, such as:
Contact Contact = [SELECT Id from Contact LIMIT 1]; |
Apex includes a jpa/hibernate-like syntax for accessing the database, which facilitates SObject in apex.
A typical example:
Contact C = new Contact (lastname= ' Bar); Insert c;c.firstname = ' Foo '; update c;delete C; |
Apex code supports versioning, packaging, and testability. The Apex Runtime contains unit tests for code that reaches more than 75% coverage to deploy to the production environment. This requirement for code coverage helps to maintain the stability of the platform upgrade, because Salesforce runs regression testing of platform upgrades by running user-written test code.
In addition to writing Apex code, many business processes and rules can be created through Workflow and so on. Like SObject metadata, workflows can be clicked through the Web interface to create, workflows is also a set of XML format definition files, support version control, can be packaged.
Salesforce.com Ui,salesforce1 mobile app, Apex runtime, the Workflow engine is used to build enterprise back-end applications that target and interact with enterprise employees. The Salesforce1 platform provides Heroku services that enable developers to easily create, deploy, extend custom Web applications, mobile apps, and web/restful service, while interacting with Salesforce on a customer-facing interface. Heroku applications can be written in any language (Java, Ruby, NODE.JS,ETC) and deployed on a fully managed PaaS platform, where developers traditionally have to build a runtime environment and corresponding services from scratch. On Heroku, features like load balancing, fail-over, centralized logging, continuous delivery, and scalability are all out of the box.
Integration and ETL
The Salesforce1 platform provides many ways to integrate with other systems or to synchronize data migrations. The main methods of data integration are:
Heroku Connect: A standard SQL interface for high-performance Salesforce data
SOAP APIs: Web Service with strong data types
REST APIs: Support for Web service in JSON format
Streaming APIs: Event-driven messaging service
Data Import & Export: A lot of tools, wizards, and Web service provide an import of Salesforce data
Email alerts: Apex and Workflow can be used to send email reminders to users from Salesforce
Mobile Reminders: Mobile alerts are embedded in the Salesforce1 mobile app and support customized reminders
OAuth 2.0:salesforce Web Service supports OAuth 2.0 authentication, and other apps can use access token to invoke Salesforce's Web service
SAML: Support for Single sign-on between enterprise apps
Mobile SDK support for Native, Hybrid, and HTML5 Sdks:salesforce
Third-party integration service providers: Many platform integration service providers like Informatics,boomi,cast Iron,mulesoft have some out-of-the-box solution support and Salesforce integration
The ecology of the platform
There are many services, applications, frameworks, and tools libraries around the Salesforce1 platform. These include:
App Store for Appexchange:salesforce1 platform
Data.com: Global Contacts Directory
Exacttarget:marketing Cloud
Open source Framework, SDKs, tools library, examples, see GitHub @forcedotcom and @developerforce
A trusted Platform
As the basis for enterprise data and applications, the Salesforce1 platform must be trustworthy (refer to: https://trust.salesforce.com). Many aspects of Salesforce embody the trustworthiness of enterprise systems, including system uptime and responsiveness that are publicly available online, multi-layered security mechanisms, privacy and Certificate Services.
How do I get started?
Ready to get into Salesforce? The best way is to do it yourself, Salesforce Developer Workshop (http://ccoenraets.github.io/salesforce-developer-workshop/) provides a simple tutorial, Help beginners understand the components on the platform by using them.
This article is a translation with the following text:
An architects guide to the Salesforce Platform
Https://www.jamesward.com/2014/08/19/an-architects-guide-to-the-salesforce1-platform
Getting Started with SalesForce