什么是Salesforce?
Salesforce(后面为了简洁都写作SF)总的来说是一个商业的云平台, 提供完善的商业解决方案,云平台开发,稳定开放的数据存储。
可以迎合并支持各类复杂的商业,尤其是业界内出SAP为做CRM最好的商业云平台,那我们来看看他都能支持哪些:
Commerce Cloud, -- 商业云,集成各种商业解决环境和方案,例如广告策划,产品推广
Sales Cloud, -- 销售云, 简单来说, 就是专门针对销售人员应用的一套,例如 资产管理, 基金销售之类的
Service Cloud, -- 服务云, 典型的是CRM(customer relationship management), 客户关系管理系统,有点像客服支持,Call Center 支持中心;
Data Cloud (including Jigsaw), --数据云,专业的数据对象存储云,有点像MongoDB,表都对象化了,没有table只有object;
Marketing Cloud, --市场云,主要针对市场营销,销售广告渠道之类,进行市场挖掘,客户群感知与发掘;
Community Cloud, --社区云, 可以建立各种社区论坛之类,大家可以发很有趣的文章或者帖子,各种有兴趣的有识之士可以进行评论、分享,有点像贴吧,博客园;
Analytics Cloud, --分析云,对商业数据进行专业的分析和梳理,引导用户做出有价值的市场分析和决策;
App Cloud, --应用云, 简单说就是集成各种各样的应用,SF 里面有个APP exchange,根据需要可以自行集成,然后也可以拓展各种各样市面上可以在SF上门集成和嫁接的app,
IoT , -- 物联网,向硬件方面集成的应用,例如手机端访问SF app 应用设置定时任务,对应链接的IoT设备可以执行相应的任务;
主要构成部件:
Setup & configuration - 设置与配置
因为SF是基于平台的,很多项目可以不完全依赖于开发,更偏向于有UI的控制项进行全局或者局部的设置;例如 传统的网站需要Apache或者IIS这样的服务器做支撑,SF 则可以在Sites 设置里面建立相应的站点,然后配置相应的访问权限访问页面就可以建立站点了。
Apex 编程语言 - Salesforce 自己的编程语言
apex 语言是SF自己的一套编程语言, 是一种类JAVA和C#的OOP编程语言,也是一种强类型语言,但是他大小写不敏感,大部分学过java和C#的同学,基本可以很快上手,学习起来没有什么困难,但是毕竟语言和语言之间有差异,SF本身自己语言也有一定基于平台的限制性和约束性,有些JAVA和C#特性并不完全支持,但有些他支持的特性JAVA和C#未必有,例如线程Thread貌似在SF里面是没有的,可能以其他方式或技术途径来实现,而Class的声明中 with sharing/without sharing 这种写法确实Apex特有的;
Visualforce page
Visualforce 是SF中Apex 对应的前端页面, 风格有点类似于aspx, 都是xml 风格规范的html,能很好地支持和兼容HTML所有原生标签,还有jQuery, AngularJS等前端编程语言;
来上代码看一看,瞧一瞧:
1 <apex:page controller="CompanyController"> 2 <apex:form > 3 <apex:outputPanel layout="block"> 4 <apex:outputPanel layout="block"> 5 <apex:outputPanel layout="block"> 6 <apex:outputPanel layout="block" id="companyList"> 7 8 <apex:outputPanel layout="block" styleClass="paginator" 9 style="padding:0px;"> 10 <apex:panelGrid columns="2" style="width:100%;" 11 styleClass="az_text_table" rowClasses="paginator,paginator"> 12 <apex:outputText rendered="{!!resultPagination.hasRecord}" 13 value="第 0 页,共 0 页,每页 {!resultPagination.pageSize} 条" /> 14 <apex:outputText rendered="{!resultPagination.hasRecord}" 15 value="第 {!resultPagination.pageNumber} 页,共 {!resultPagination.totalPage} 页,每页 {!resultPagination.pageSize} 条" /> 16 <apex:panelGroup > 17 <apex:outputPanel > 18 <apex:outputText value="首页" 19 rendered="{!(!resultPagination.hasRecord)||(!resultPagination.hasPrevious)}" 20 style="border: solid 1px #ddd;padding:1px 6px;background: #e8e8e9;margin-right:5px;"></apex:outputText> 21 <apex:commandLink action="{!firstPage}" 22 rendered="{!resultPagination.hasRecord && resultPagination.hasPrevious}" 23 immediate="true" reRender="companyList" value="首页" 24 style="margin-right:5px;" /> 25 </apex:outputPanel> 26 <apex:outputPanel > 27 <apex:outputText value="上一页" 28 rendered="{!!resultPagination.hasRecord || (!resultPagination.hasPrevious)}" 29 style="border: solid 1px #ddd;padding:1px 6px;background: #e8e8e9;margin-right:5px;"></apex:outputText> 30 <apex:commandLink action="{!previousPage}" 31 rendered="{!resultPagination.hasRecord && resultPagination.hasPrevious}" 32 immediate="true" reRender="companyList" value="上一页" 33 style="margin-right:5px;" /> 34 </apex:outputPanel> 35 <apex:outputPanel > 36 <apex:outputText value="{!resultPagination.pageNumber}" 37 styleClass="current" /> 38 </apex:outputPanel> 39 <apex:outputPanel > 40 <apex:outputText value="下一页" 41 rendered="{!!resultPagination.hasRecord || !resultPagination.hasNext}" 42 style="border: solid 1px #ddd;padding:1px 6px;background: #e8e8e9;margin-right:5px;margin-left:5px;"></apex:outputText> 43 <apex:commandLink action="{!nextPage}" 44 rendered="{!resultPagination.hasRecord && resultPagination.hasNext}" 45 immediate="true" reRender="companyList" value="下一页" 46 style="margin-right:5px;margin-left:5px;" /> 47 </apex:outputPanel> 48 <apex:outputPanel > 49 <apex:outputText value="尾页" 50 rendered="{!!resultPagination.hasRecord || !resultPagination.hasNext}" 51 style="border: solid 1px #ddd;padding:1px 6px;background: #e8e8e9;margin-right:5px;"></apex:outputText> 52 <apex:commandLink action="{!lastPage}" 53 rendered="{!resultPagination.hasRecord && resultPagination.hasNext}" 54 immediate="true" reRender="companyList" value="尾页" 55 style="margin-right:5px;" /> 56 </apex:outputPanel> 57 </apex:panelGroup> 58 </apex:panelGrid> 59 </apex:outputPanel> 60 </apex:outputPanel> 61 </apex:outputPanel> 62 </apex:outputPanel> 63 </apex:outputPanel> 64 </apex:form> 65 </apex:page>