【Salesforce】入門篇

Salesforce.com 一開始是一個雲端的銷售自動化(Sales Force Automation, SFA)以及客戶關係管理工具(Customer Relationship Management, CRM),但通過這麼多年的演化,它已經成爲一個能夠構建任何企業應用的通用平臺。Salesforce 這個名字是一個歷史遺留產物,Salesforce1 平臺雖然仍提供 SFA 和 CRM 的應用,但更是一個構建現代企業系統的基礎平臺。git

 

價格和功能github

Salesforce1 平臺上提供了許多不一樣版本的產品,像 CRM 應用 Sales Cloud ,客服應用 Service Cloud 以及 Platform 等等。不一樣的產品在內置功能上會有所不一樣,在 http://www.salesforce.com/crm/editions-pricing.jsp 上可查看全部產品和價格表。此外還有專門提供給開發者的免費版本,可在 https://developer.salesforce.com 申請。web

 

下面咱們從不一樣視角來看 Salesforce1 平臺的組成。數據庫

 

元數據驅動的數據模型 (Metadata-driven Data Model)編程

在 Salesforce1 平臺的核心是一個雲端數據庫,經過元數據能夠對數據庫進行自定義和配置。元數據定義了數據模型,Salesforce 支持兩種不一樣的方式來修改元數據,一種是在 web 界面上點擊拖拽等操做來修改,另外一種是經過 XML 格式的定義文件來修改。Salesforce1 平臺是一個多租戶架構的平臺,每個租戶(也叫作 Organization 或者 Org)的元數據(也就是數據模型)都支持版本控制、可打包、可測試。安全

數據庫中的每個對象或表都叫作 SObject,每個 SObject 都內置了下面的功能:服務器

自定義字段 (Custom Field)架構

驗證邏輯 (Validation Logic)負載均衡

字段級別的安全性 (Field Level Security)框架

引用關係和選項列表 (Reference and Picklist)

Derived Values

 

全部的 SObject 都提供了:

SOAP 和 REST 的 API

基本的增刪改查界面

經過 Salesforce1 的移動端增刪改查界面

加索引的搜索

 

SObject 的字段類型包含:

自動編號 (Auto Number)

公式 (Formula)

累計彙總 (Rollup Summary)

Lookup 關係 (Lookup Reference)

Master-Detail 關係 (Master-Detail Reference)

複選框 (Checkbox)

貨幣 (Currency)

日期和日期時間 (Date and Date/Time)

電子郵件 (Email)

地理位置 (Geolocation)

數字和百分比 (Number and Percent)

電話 (Phone)

選項列表和多選的選項列表 (Picklist)

文本框、文本區域、加密的文本 (Text, Text Area, Encrypted Text)

URL

 

平臺上每個新註冊的 Org 都內置一些標準SObject,具體依版本不一樣而定。好比說 Sales Cloud 版的 Org自帶了聯繫人、線索、業務機會。

 

Salesforce 數據模型內置了一些安全上的特性,好比數據更改的審計(change auditing),字段級別的安全性。

 

編寫代碼來實現自定義擴展

在Salesforce1 平臺上,用戶能夠徹底依靠 web 界面拖拽點擊來構建應用。但有一些用例須要編程來實現自定義,好比自定義的界面、trigger、scheduled jobs。

 

Salesforce1 平臺支持的編程語言:

Visualforce:服務器端模版語言,用來自定義用戶界面

Apex:用來編寫 trigger,visualforce controller,scheduled jobs 等代碼邏輯

SOQL:用於數據庫查詢的領域專用語言(Domain Specific Language, DSL)

 

Visualforce 使用了相似 JSP 語法用來建立自定義的 HTML 頁面,內嵌在 Salesforce 或者 Salesforce1 移動應用中。Visualforce 中的頁面使用了傳統的服務器端 MVC 架構,其中 Visualforce 是 View,Apex Class 是 Controller,SObjects 是 Model。Visualforce 頁面可使用任何的 JavaScript,包括 JavaScript Remoting 和各類 RESTful 的 web service。

 

一個典型的 Visualforce 頁面長這樣:

<apex:page>
    hello, world
</apex:page>

Apex 是一種語法和 Java 相似的,運行在平臺上受管的、單獨分隔的、安全的運行時中。Salesforce 提供了 Eclipse 插件 Force.com IDE 和基於 Web 的 Developer Console 用來編寫 Apex 代碼。Apex trigger 綁定在每一個 SObject 的事件上,好比 update、delete、create。Batch jobs 和 scheduled jobs 也是用 Apex 編寫。

一個簡單的 trigger 長這樣:

trigger Foo on Contact (after insert) {
    for (Contact newItem : trigger.new) {
        System.debug('Contact Created: ' + newItem.Name)
    }
}

 

SOQL 查詢能夠在 Developer Console 中運行或者在內嵌在 Apex 中,好比:

Contact contact = [SELECT Id FROM Contact LIMIT 1];

Apex 包含了一個相似 JPA/Hibernate 的訪問數據庫的語法,有助於方便地在 Apex 中對 SObject 進行增刪改查。

 

一個典型的例子:

Contact c = new Contact(LastName='Bar');
insert c;
c.FirstName = 'Foo';
update c;
delete c;

 

Apex 代碼支持版本控制、可打包、可測試。Apex Runtime 包含了單元測試,達到 75% 以上覆蓋率的代碼才能部署到生產環境。這種代碼覆蓋率的要求有助於保持平臺升級的穩定性,由於 Salesforce 經過運行用戶編寫的測試代碼來進行平臺升級時的迴歸測試。

 

除了編寫 Apex 代碼外,許多業務流程和規則能夠經過 Workflow 等來建立。像 SObject 的元數據同樣,workflows 能夠經過 web 界面來點擊建立,Workflows 也是一組 XML 格式的定義文件,支持版本控制、可打包。

 

Salesforce.com UI,Salesforce1 手機應用,Apex 運行時,Workflow 引擎都是用來構建企業後臺應用,面向和企業員工的交互。而在面向客戶的界面上和 Salesforce 進行數據交互,Salesforce1 平臺提供了 Heroku 服務,讓開發者容易地建立、部署、擴展自定義的 web 應用、移動應用、以及Web/RESTful service。Heroku 應用可使用任何語言編寫(Java、Ruby、Node.js,etc),並部署在一個徹底受管的 PaaS 平臺上,傳統上開發者得本身從頭搭建一個運行環境和相應的服務。而在 Heroku 上,像負載均衡、失效轉移、集中化日誌、持續交付、可擴展性這些功能都是開箱即用的。

 

集成和 ETL

Salesforce1 平臺提供了許多方式和其餘系統進行集成或者數據遷移同步。數據集成的主要方法有:

Heroku Connect: 一個高性能 Salesforce 數據的標準 SQL 接口

SOAP APIs: 強數據類型的 web service

REST APIs: 支持 JSON 格式的 web service

Streaming APIs: 事件驅動的消息 service

Data Import & Export: 很是多的工具,嚮導,以及 web service 提供了對 salesforce 數據的導入導出

電子郵件提醒:Apex 和 Workflow 能夠用來從 Salesforce 向用戶發送郵件提醒

移動端提醒:移動端提醒是內嵌入 Salesforce1 手機應用的,支持自定義的提醒

OAuth 2.0:Salesforce web service 支持 OAuth 2.0 認證,其餘應用能夠用 access token 來調用 Salesforce 的 web service

SAML: 支持企業應用間的單點登陸

Mobile SDKs: Salesforce 的 Mobile SDK 支持 Native, Hybrid 和 HTML5 的移動應用開發

第三方集成服務提供商:許多平臺集成服務提供商像 Informatics,Boomi,Cast Iron,MuleSoft 都有一些開箱即用的解決方案支持和 Salesforce 的集成

 

平臺的生態

圍繞 Salesforce1 平臺有許多服務、應用、框架、工具庫。其中包括:

AppExchange:Salesforce1 平臺的應用商店

Data.com:全球的聯繫人目錄

ExactTarget:Marketing Cloud

開源的框架,SDKs,工具庫,示例,可見 github @forcedotcom 和 @developerforce

 

可信賴的平臺

做爲企業數據和應用的基礎,Salesforce1 平臺必須是值得信賴的(能夠參考:https://trust.salesforce.com)。Salesforce 的許多方面體現了企業系統的可信賴,包括系統正常工做和響應都是公開在網上可查詢的,多層的安全機制,隱私和證書服務。

 

如何開始?

準備進入 Salesforce 嗎?最好的方式是本身動手作,Salesforce Developer Workshop(http://ccoenraets.github.io/salesforce-developer-workshop/) 提供了一個簡單的教程,幫助新手經過使用來理解平臺上的組件。

相關文章
相關標籤/搜索