Salesforce Lightning 开发(5)

学习目标

完成本单元后,您将能够:

  • 描述Lightning Experience如何影响您的开发工具,包括:
    • 安装包管理
    • API和Apex
    • 身份验证和安全
    • 画布
    • Salesforce移动开发
    • Salesforce Mobile SDK

了解其他开发工具的变化

最后一个单位是一个抓包。我们已经涵盖了所有的“硬”的东西,所以在这一点上,你在家里。你能感觉到吗?当你靠近一个新的徽章时,这就是你的痒。我们开工吧。

在闪电体验中安装的软件包

在Lightning Experience中管理已安装的软件包与以前一样。 “安装的软件包”登录页面位于Lightning Experience安装区域。它的外观和工作方式与Salesforce Classic中的相同。

当然,查找和使用这个页面并不是你想的唯一的东西。您也想知道从AppExchange安装的软件包是否仍然可以在Lightning Experience中使用。

也许我们可以给出最好的答案。如果AppExchange上列出的应用程序与Lightning Experience完全兼容,则会标记为“Lightning Ready”。查看列表以查看应用是否为Lightning Ready。如果不是,您仍然可以尝试在Lightning Experience中使用它,但是我们建议您坚持使用Salesforce Classic来防止意外的行为。

闪电体验中的API和Apex

作为开发人员,任何平台上最重要的工具之一就是API。作为Salesforce开发人员,Apex对您的成功同样重要。

我们保证我们的承诺,我们不会做任何违反我们的API的依赖。无论您是使用Lightning Experience还是Salesforce Classic,您的Apex代码和查询都可以按预期继续工作。这真的很简单。呼吸一口气。

闪电体验的认证与安全

无论您正在开发的用户体验如何,安全性仍然是Salesforce的首要任务。闪电体验并不符合我们保证组织数据安全的承诺。

继续像开发Salesforce Classic时一样处理身份验证和安全性。 Salesforce Classic和Lightning Experience之间访问控制的唯一区别在于App Launcher。应用程序启动器默认情况下可用于组织中的所有用户。虽然这种变化大多数是管理员关心的,但与Salesforce管理员一起工作是非常重要的,以确保您的开发工作只能被看到的人看到。

画布闪电的经验

Force.com Canvas允许您轻松地将第三方应用程序集成到Salesforce中。 Lightning Experience中的画布功能与Salesforce Classic中的相同。您仍然可以在Visualforce页面,Salesforce应用程序以及他们所支持的其他任何地方嵌入Canvas应用程序 – 还可以在Lightning组件中集成Canvas应用程序!

Salesforce Mobile闪电体验

Lightning Experience和Salesforce mobile就像花生酱和果冻。他们是为对方制造的。您在Lightning Experience中的移动开发实践与Salesforce Classic中的相同。

当我们说这两个是为了彼此而制定的时候,我们就是这个意思。您可能熟悉sforce.one JavaScript对象。在过去,它被用作Salesforce移动开发中的导航事件机制。现在,您也可以在Lightning Experience中使用它进行导航。有关更多信息,请参阅“Salesforce Mobile应用程序开发者指南”。

移动SDK闪电体验

到目前为止,您可能已经厌倦了阅读概述信息,并准备好深入了解细节技术细节。我们不会让你更久。从字面上看,只有两个句子!

作为自己的客户端或前端,对于Salesforce而言,Mobile SDK不受Lightning Experience的影响。如果您使用移动SDK开发移动应用程序,您可以轻松休息。

Salesforce Lightning 开发(4)

学习目标

完成本单元后,您将能够:

  • 列出Lightning Experience中不可用的合作伙伴工具。
  • 描述Lightning Experience中的包装过程。
  • 了解Lightning Experience如何影响AppExchange。
  • 描述如何使您的产品闪电准备就绪。

Salesforce合作伙伴,打包和AppExchange

如果您是Salesforce AppExchange合作伙伴(ISV),您可能想知道Lightning Experience如何影响您的开发和发布流程。你现有的产品是否仍然有效?你必须对现有的程序做出重大改变吗?未来版本呢?

这是有效的担忧,但是我们有好消息。 Lightning Experience提供许多用于构建,测试和分发产品的工具。我们也有资源来指导您更新您的产品,使其成为Lightning Ready。

闪电体验中的合作伙伴工具

首先,让我们谈谈工具。这个谈话是苦乐参半。您使用的一些工具在Lightning Experience中可用,而其他一些工具在那里还不被支持。以下是对目前支持的内容的概述。

特征 支持
  • 环境枢纽
  • 许可证管理应用程序(LMA)
  • 结帐管理应用程序(CMA)
Salesforce Classic和Lightning Experience。
  • Trialforce
  • 渠道订单应用(COA)
  • 用法度量可视化应用程序
仅限Salesforce Classic。

这意味着你可以去闪电体验,如果你想:

  • 为开发,测试和演示创建组织
  • 从一个地方管理你所有的组织
  • 在AppExchange上发布的许可和支持应用程序
  • 查看并报告使用AppExchange Checkout销售的产品的订阅数据

要配置试用单位或管理订单,您应该留在Salesforce Classic中。随着闪电体验的不断成熟,将有更多的工具可用。

在Lightning Experience中打包应用程序

当您准备分发应用程序,Lightning组件或其他产品时,Lightning Experience即可完成任务。包管理器允许您从安装程序创建和管理包,就像在Salesforce Classic中一样。无论您是在Developer Edition中创建托管软件包,还是在Enterprise Edition中创建非托管软件包,新的打包体验都可以在您的开发过程中感觉良好。

AppExchange和闪电体验

如果您在AppExchange上提供产品,则可能有关于获得Lightning Ready的问题。当所有最终用户使用案例在Lightning Experience中按预期工作时,我们将产品视为Lightning Ready产品。

那么,您需要多长时间才能获得Lightning Ready?答案取决于产品的类型以及与Salesforce的分销协议。使用AppExchange Checkout和新免费产品销售的新产品在安全审查之前必须是Lightning Ready。其他协议类型可能需要根据您签署协议时的闪电体验准备情况。对于现有的产品,我们鼓励您尽快获得Lightning Ready。有关更多信息和资源,请转至Salesforce合作伙伴社区的Lightning Ready页面。

如果您是AppExchange客户,请查看产品列表上的Lightning Ready认证,以确认其与Lightning Experience兼容。您可以使用Lightning Experience中未获得Lightning Ready认证的产品,但不能保证它们按预期工作。最好在Salesforce Classic中使用它们。

Salesforce Lightning 开发(3)

学习目标

完成本单元后,您将能够:

  • 描述闪电组件对闪电体验的重要性。
  • 列出使用Lightning组件而不是Visualforce的一些重要注意事项。
  • 确定三个可以使用Lightning组件的地方。

闪电体验中的闪电组件

现在,你已经读了很多次“闪电”这个词,可能失去了所有的意义。更糟糕的是,我们一直在谈论“闪电体验”和“闪电组件”,这两个术语可能会模糊在一起。让我们来澄清两者之间的关系。

还记得关于以页面为中心还是以应用为中心的模型开发的所有信息? Salesforce Classic使用以页面为中心的模型,但Lightning Experience使用以应用程序为中心的模型。它由 – 你猜对 – 组件组成。

你大概可以看到这是怎么回事。闪电组件设计时考虑到了闪电体验。随着Salesforce核心应用程序转向以应用程序为中心的框架,我们希望您与我们一起转移。我们希望您以全新的方式思考在平台上开发。

您可能已经在Salesforce Classic中开发了一些Lightning组件。您仍然可以将旧接口与Lightning组件一起使用,并将您现有的所有组件功能无缝转换为Lightning Experience。

如果您还没有使用Lightning组件,请不要担心。有一个Trailhead模块,一个快速入门指南和一个完整的开发人员指南,以便您可以立即开始开发。在深入了解技术细节之前,让我们花点时间回顾一下Lightning组件的一些基本优势:

开箱即用的组件集
Salesforce提供了许多组件来引导您的应用程序开发。
性能
组件框架利用有状态的客户端(使用JavaScript)和无状态的服务器(使用Apex)。这种结构允许客户只有在绝对必要时才调用服务器。通过调用服务器的次数更少,您的应用程序响应更快,效率更高。
事件驱动的体系结构
事件是Lightning组件框架的关键。组件监听应用程序和组件事件并作出相应的响应。
快速开发
简单的标记和预制组件意味着您可以比以往更快地获得应用程序。特别是如果您对Visualforce标记感到满意,学习组件标记是一件轻而易举的事情。
设备感知和跨浏览器兼容性
Lightning组件的一个巨大优势是您不必担心跨设备和浏览器的兼容性。组件框架为您处理这个工作。

使用注意事项

我们已经介绍了使用Lightning组件的一些注意事项。您可能不想使用正在进行的Visualforce项目切换到Lightning组件。如果您需要执行诸如从页面呈现PDF之类的东西,则还需要坚持使用Visualforce。 Visualforce还没有消失,而且仍然是在Salesforce平台上开发的基础部分。

相对来说,闪电组件框架就是这个块上的新手,但是这个新手却有技巧。尽管Lightning组件有一些特定的限制,但大部分已经准备好了。在许多情况下,您应该考虑使用Lightning组件进行开发。例如,Salesforce移动开发是使用Lightning组件的好地方。对于新项目和任何涉及高度交互式应用程序的项目,也使用Lightning组件。

我们来做个清单吧!哪里可以使用Lightning组件?你有很多选择。

闪电的经验
我们早些时候说过,但是不要让你把这个错误的想法留在这个名单上。闪电体验和闪电组合是两个伟大的品味,共同品味。
Salesforce应用程序
我们经常重复这一点,因为这很重要:使用Lightning组件来进行移动开发。当您使用移动设备时,每次用户按下按钮时都不需要拨打服务器电话。使用Lightning组件大大提高了移动应用的性能。
独立的应用程序
如果您在Salesforce Classic中使用Lightning组件,则可能至少创建了一个独立的Lightning应用程序。 Lightning App Builder允许您以标准组件的形式创建应用程序,从按钮到Canvas应用程序。或者,使用开发者控制台创建由标准和自定义Lightning组件组成的应用程序。有关更多信息,请参阅Lightning组件开发者指南。
Visualforce页面
对于Visualforce退伍军人的Salesforce开发人员来说,此功能非常完美。如果您还没有完全准备好完成Lightning应用程序,请将组件整合到Visualforce页面中来平滑过渡。这个任务只需要几行标记,给你一个巨大的灵活性。有关用于Visualforce的Lightning组件的更多信息,请参阅Lightning组件开发者指南。
任何地方!
Lightning Out目前提供beta版,可让您运行Lightning组件和应用程序,几乎可以在任何地方为网页提供服务。无论是在Heroku上运行的Node.js应用程序,防火墙内的部门服务器,还是SharePoint(是,SharePoint),都可以使用Lightning组件构建自定义应用程序,并在用户身处运行。
尽管我们已经将Lightning组件作为一个框架用于创建未来十年的应用程序,但我们还没有完成。还有一些地方可以使用Visualforce来自定义Salesforce,但是您还不能使用Lightning组件。请继续关注此频道。

Salesforce Lightning 开发(2)

学习目标

完成本单元后,您将能够:

  • 列出至少五个在Lightning Experience中保持不变的Visualforce功能。
  • 在您的Visualforce代码中描述至少两个您需要查看的Visualforce功能。
  • 列出至少两个在Lightning Experience中不起作用的Visualforce功能。
  • 描述Lightning Experience如何影响现有Visualforce页面的视觉设计。

Visualforce和闪电体验

闪电体验是一个全新的世界,我们希望你认为这是令人兴奋的。 Lightning Experience用户界面背后是一种交付Salesforce应用程序的新方法,它会对Visualforce应用程序的运行方式进行重大更改。在大多数情况下,您的Visualforce应用程序应该“只是工作”,但在跳转到Lightning Experience之前,您应该知道一些事情。
Lightning Experience如何建立以及如何运行Visualforce应用程序的技术细节非常酷,对于实际开发工作非常重要。当您准备好了解这些细节时,Visualforce&Lightning Experience模块将为您提供方法。但是在这里我们要保持高水平,把事情分成有效和无效,你想要更新什么,以及其他问题,这些问题将帮助你规划你的Lightning Experience迁移开发工作。

什么工作

Visualforce在Lightning Experience中工作的部分列表相当长。这几乎与整个Visualforce功能列表一样长。所以,在我们找到不在名单上的东西之前,让我们积极地思考一下,并且检查一下你能指望的许多事情。
首先,Visualforce工作的基本机制是一样的。无论您的网页是使用标准控制器,自定义控制器,JavaScript远程处理还是远程对象,与Salesforce的连接工作原理都是一样的。

注意

如果您广泛使用JavaScript,或者如果您使用其他API来访问Salesforce,则可能需要执行一些工作。我们会做到这一点。

其次,Visualforce标记保持不变。 Lightning Experience中有一些标签和属性的表现方式不同,我们建议不要使用这些标签和属性,否则这些属性不起作用。但是,除此之外,您为Visualforce页面和组件编写代码的方式不变。

第三,您可以使用Visualforce自定义您的组织的大多数方式在Lightning Experience中都可以正常工作 – 尽管您无疑可以想象,使用全新的用户界面,这些自定义已移至不同的位置。

让我们稍微介绍一下这些定制的细节。在Lightning Experience中,以下所有工作都很好,只需移动到用户界面的新位置即可。

  • 使用Visualforce页面创建自定义选项卡和应用程序。
  • 创建导向Visualforce页面的自定义按钮和链接。
  • 创建使用Visualforce页面打开的自定义操作。
  • 使用Visualforce页面覆盖标准操作(有一个例外,我们稍后会介绍)。
  • 创建使用Visualforce页面的流程。
  • 打包Visualforce页面和组件。

用户界面的变化从小到大有所不同。使用Visualforce自定义的功能会在用户在Lightning Experience和Salesforce Classic之间切换时自动移动。你可能需要给你的用户一个初始的方向,但在那之后,他们会像蛤蜊一样快乐。
还有其他一些功能,如Visualforce电子邮件模板,在幕后使用Visualforce代码。这些不直接在用户界面中出现,因此它们保持不变。

有关各种功能已移至其中的屏幕截图的详细视图,请参阅Visualforce&Lightning Experience模块中的使用Lightning Experience中的Visualforce单元。

什么工作,但需要更新和测试

Lightning Experience启用时Visualforce页面运行的环境与标准Visualforce请求不同。技术细节变得相当复杂,但简单的版本是在Lightning Experience中,Visualforce页面嵌入在Lightning Experience应用程序内部显示的HTML iframe中。
这种改变有很多后果,主要是JavaScript和访问外部应用程序。在验证您的Visualforce页面以用于Lightning Experience之前,您需要查看您的代码并验证一些内容。我们正在保存Visualforce&Lightning Experience模块的细节。现在,我们只需要进行高级检查,以便开始审查范围。

对于初学者来说,如果您有使用JavaScript的页面或应用程序,则需要查看代码的行为。特别是,你的代码不能直接访问窗口的全局对象。如果您确实需要更改代码,您仍然可以稍微更改代码,但是使用Lightning Experience应用程序API可能有更好的方法来完成这些任务。特别是直接设置window.location的代码,一定要修改才能与Lightning Experience导航栈集成。

同样,假设它能够访问整个环境的代码是一个粗暴的惊喜。它仍然可以访问文档的Visualforce部分,但不能访问完整的Lightning Experience应用程序。对于许多应用程序来说,这样做会很好,但是对于那些想要完全负责的人来说,还是会有一些工作要做。

如果您的页面自己使用iframe,或者使用<apex:iframe>或静态HTML,则嵌入到另一个iframe中可能会导致一些问题。在很多情况下,“海龟一路下来”都很好。只要确保你在这里做额外的测试。

如果您的页面嵌入了Force.com Canvas应用程序,特别是如果您使用Canvas API将应用程序集成到Salesforce中,则还需要分配时间进行彻底测试。画布应用程序使用iframe,而正确的行为代码应该正常工作,我们都知道如何在现实世界中普遍的完美代码。

使用远程对象和JavaScript远程处理的页面不需要更新认证码。但是,如果您的网页使用其他Salesforce API,则可能需要调整您的身份验证代码以提出正确的跨域请求,或者调整到新的环境。

以上所有内容听起来都很模糊而且难以实现,但实际上,您可能需要更改的代码量很小。再次,Visualforce&Lightning Experience模块提供开发人员的详细信息。

什么不行

所以我们来谈谈我们的谈话中不那么愉快的部分。幸运的是,Visualforce for Lightning Experience不起作用的列表很短,我们可以快速完成。
对于可能难以解决的事情,Visualforce覆盖标准操作的最显着的变化可能与Lightning Experience相比略有不同。 Lightning Experience中将无法访问对象列表操作的任何覆盖。
具体而言,您可以在Salesforce Classic中为对象覆盖六个标准操作:

  • Object tab
  • Object list
  • Record view
  • Record edit
  • Record create
  • Record delete

在闪电体验中,前两个动作合并为一个页面,将对象归入主页。对象首页与对象列表类似,添加了对象选项卡的一些元素,例如最近的项目。其他的,如报告或工具,已经转移到用户界面的其他部分。
无论组织中的用户界面设置如何,“对象”选项卡和对象列表都可在“设置”中被覆盖。按照预期,覆盖对象选项卡操作将覆盖Lightning Experience中的对象主页。

但是,在Lightning Experience中,对象列表操作在用户界面中无法访问,因此无法将其解除。如果您的组织已经重写了任何对象的对象列表操作,那么当用户使用Lightning Experience时,该功能将不可用。如果在重写中有必要的功能,则需要找到其他方法使其可用。

在比较小的比例中,当显示在Lightning Experience中时,<apex:page>的showHeader和sidebar属性对Visualforce页面没有影响。标准的Salesforce Classic标题和侧边栏始终处于禁用状态,并且无法取消Lightning Experience标题和侧边栏。

Salesforce Classic中的许多相关列表在Lightning Experience中不受支持。 <apex:relatedList>组件不是解决此限制的方法。不错,尽管!

而且,真正的小问题是,将Visualforce页面呈现为PDF,其工作原理与Salesforce Classic完全一样,没有任何Lightning Experience视觉设计。这可能是你想要的,但是如果你想把页面渲染成包含Lightning Experience设计的PDF文件,那今天是不可能的。

那个外观和感觉的东西

你注意到的关于Lightning Experience的第一件事就是全新的视觉设计。如果您一直在开发Visualforce页面,您的下一个想法可能是,我的Visualforce页面将如何在Lightning Experience中查看。简短的回答是…好吧,让我们坐下来,好吗?
简短的回答是,除了抑制Salesforce Classic标题和边栏以及被Lightning Experience用户界面框住外,Visualforce页面在Lightning Experience中显示不变。

具体而言,当页面显示在Lightning Experience中时,由内置的Visualforce组件呈现的HTML不会更改,并且这些组件使用的Salesforce Classic样式表默认情况下由页面加载。其效果是,使用<apex:inputField>,<apex:outputField>,<apex:pageBlock>组件以及与Salesforce Classic可视化设计相匹配的其他粗糙和精细组件的页面仍然与该可视化设计相匹配。您在Lightning Experience中获得一小部分Salesforce Classic。

但是,如果您使用的是相对没有风格的Visualforce组件,或者使用了自己的组件和标记,并且开发了自己的样式表,而不是使用默认的Salesforce样式,那么页面也显示为不变,保留了您很难开发的样式。

换句话说,在Visualforce for Lightning Experience中,我们倾向于在现有页面的视觉设计中保持稳定性,而不是试图将其动态调整为Lightning Experience。

也就是说,如果你对于新的视觉设计和我们一样兴奋,那么根据你想要投入多少工作,你可以采用这种方式来减小或者减小这个设计。我们不会介绍它在这里,但是有一个完整的单元,理解重要的视觉设计考虑事项,它显示了可能性的范围和用来实现它们的技术。

Salesforce Lightning 开发(1)

学习目标

完成本单元后,您将能够:

  • 命名并描述开发Web应用程序的两种模型之间的区别。
  • 描述使用Visualforce处理构建Web应用程序的两种不同方式。
  • 使用Visualforce或Lightning组件描述构建Web应用程序的优势和折衷。
  • 列出至少三种不同的使用Lightning组件或Visualforce的方案。

提高Web应用程序用户界面的性能

在过去十年或更长的时间里,我们都看到了不断提高Web应用程序的用户体验。用户希望能够在触手可及的情况下获得响应式,功能齐全,高度互动的身临其境的体验。

我们首先在单一用途的应用程序中看到这一点Google地图等服务引入了用户界面元素的直接操作。分析应用程序带来了动态的交互式图表下钻。当用户输入无效的数据,动画,转换等时,即使是不起眼的注册或登录形式也会带有动态的错误反馈。交互性不再是新鲜事物,这是常态。

规模已经扩大。单个组件的期望已经迅速扩展到核心应用程序体验。今天,Web应用程序具有滑动菜单,动画页面转换和动态主控细节等功能。还有应用程序样式的元素,如覆盖和模式窗口。原生应用程序和Web应用程序之间的差异从来没有变小。

那么这对Salesforce意味着什么呢?

传统的Salesforce体验被称为Salesforce Classic,是以页面为中心的Web应用程序模型的一个示例。对于基本功能来说,这非常棒,但是提供用户所期望的新的,更加动态的体验是一项挑战。从根本上说,这是因为它每次与应用程序交互时都依赖于服务器生成一个新页面。

为了提供更多的互动体验,您需要客户端的JavaScript帮助。在这个以应用程序为中心的新模型中,JavaScript被用来创建,修改,转换和动画用户界面,而不是一次完全替换一个页面。这个模型是令人兴奋的,互动的,流畅的。这是新的闪电体验。

以页面为中心的模型和以应用为中心的模型都在这里。快速浏览Web足以证明大多数Web应用程序都利用了这两种方法。结合这些模型,应用程序可以为正确的用例提供正确的体验类型。

让我们花一些时间来探索Salesforce Platform为这些模型提供的不同选项。

Classic Visualforce

Visualforce是构建以页面为中心的应用程序的强大成熟平台。 Visualforce框架提供了一组强大的标签,这些标签在服务器上解析,并与标准或自定义控制器一起使用,以使数据库和其他操作易于实现。

让我们回顾一些基础知识。

UI 生成
服务器端
数据和业务逻辑
Apex标准或自定义控制器
工作流程
  1. 用户请求一个页面
  2. 服务器执行页面的底层代码,并将生成的HTML发送到浏览器
  3. 浏览器显示HTML
  4. 当用户与页面交互时,返回到第一步
优点
  • 尝试和真正的模型
  • 易于实现更高的生产力
  • 将大型应用程序自然地分割成小的,可管理的页面
  • 具有内置的元数据集成
注意事项
  • 有限的交互性(除了增加的JavaScript功能)
  • 更高的延迟,降低移动性能

Visualforce在概念上类似于其他以页面为中心的技术,如PHP,ASP,JSP和Ruby on Rails。 Salesforce丰富的元数据基础架构使Visualforce成为高效的解决方案。标准的控制器可以很容易地直接访问对象,并通过关系而不需要执行一个查询。其他元数据感知组件类似的即插即用:添加标记到一个页面,你就完成了。这些功能在平台上依然存在,并且仍然适用于许多用例。

Visualforce作为JavaScript应用程序容器

当您考虑它时,Visualforce页面只是HTML页面,服务器解析了额外的标签。因此,您可以使用一个空的Visualforce页面作为JavaScript应用程序的容器。在这种情况下,您不使用Visualforce标记来构建您的用户界面。相反,您将您的JavaScript应用程序加载到空白页面中。然后用户界面由JavaScript应用程序在客户端生成。这些应用程序通常被称为单页面应用程序或SPA,通常使用第三方框架(如AngularJS或React)构建。

让我们回顾一些基础知识。

UI 生成
客户端(主要是JavaScript)
数据和业务逻辑
远程对象或JavaScript Remoting,Apex控制器
工作流程
  1. 用户请求包含页面框架和JavaScript包含的“空白”Visualforce页面
  2. 该页面被返回到浏览器
  3. 浏览器加载JavaScript应用程序
  4. JavaScript应用程序生成UI
  5. 当用户与应用程序交互时,JavaScript会根据需要修改用户界面(返回上一步)
优点
  • 实现高度互动和身临其境的用户体验
注意事项
  • 复杂
  • 没有内置的元数据集成
  • 缺乏集成的开发人员经验。 Force.com开发者控制台不明确支持这些JavaScript应用程序。通常情况下,你必须将它们作为静态资源加载,这是一个繁琐的经验。

我们想清楚。如果你能忍受我们所描述的警告,那么今天就构建交互式应用程序是一个非常好的方法。这就是我们最初构建远程对象和JavaScript远程处理等工具包的原因。如果您是一个有信心的AngularJS或React或其他JavaScript框架开发人员,那么您的专业知识将为您带来所需的工具,为Salesforce开发应用程序。

但是,如果你愿意接受新的东西,我们认为我们对于基于网络的应用程序开发的下一个层次有一些很好的想法。

Lightning 组件

Lightning组件是用于为桌面设备和移动设备开发动态Web应用程序的新的Salesforce用户界面框架的一部分。他们在客户端使用JavaScript,在服务器端使用Apex来提供数据和业务逻辑。

我们来看一下概述。

UI 生成
客户端(JavaScript)
数据和业务逻辑
Lightning Data Services,Apex控制器
工作流程
  1. 用户请求应用程序或组件
  2. 应用程序或组件包被返回给客户端
  3. 浏览器加载该包
  4. JavaScript应用程序生成UI
  5. 当用户与页面交互时,JavaScript应用程序根据需要修改用户界面(返回上一步)
优点
  • 实现高度互动和身临其境的用户体验
  • 与Salesforce用户界面策略保持一致
  • 建立在元数据的基础上,加快发展
  • Force.com IDE和开发者控制台都支持Lightning组件,提供了集成的开发者体验
注意事项
  • 与Visualforce相比,更陡峭,学习曲线更长
  • 比Visualforce更高的复杂性 – 你正在构建一个应用程序,而不是一个页面
  • 由于Lightning组件是新的,所以仍然有一些功能不被支持
  • 有一些开箱即用的组件

我们需要与你直接相处。这些警告是不小的考虑。我们将会谈谈他们如何适用于您的组织。但!我们正在努力 – 真的很努力 – 减少这些考虑的大小。我们非常激动,尽快为您带来改进。

为工作选择合适的工具

Visualforce已经有一段时间了,它是一个成熟的,很好理解的构建应用程序的平台。它不会消失。闪电组件是块上的新生儿。它有很多事情要做,但是,你知道的。你现在对你来说是陌生人。

这是事情:你不必选择一个或另一个。

将以页面为中心和以应用程序为中心的模型看作是开发工具中的工具 – 一个并不总是比另一个好,如果你了解自己的优势和权衡,你就能从中获得最大收益。使用正确的工具来完成手头的工作。

这里有一些指导方针可以帮助你决定 – 但是请记住,你是决定者。最后,使用感觉正确的工具。另外,请记住,工具的发展。这些指导方针也将发展。

工作 建议
我正在开发闪电体验 我们强烈推荐Lightning组件。 Lightning组件搭建了闪电体验,两人手和手套配合在一起。
如果您有现有的代码或正在进行的项目,您当然可以使用Visualforce。完全支持Visualforce for Lightning Experience,但有一些限制。

但是,对于Lightning Experience,您找不到比使用母语Lightning Components更好的工具。

我正在开发Salesforce Mobile应用程序 我们推荐Lightning组件。 Visualforce特性,特别是以页面为中心的方向,对于有限的高延迟网络连接和有限的计算资源的移动应用来说可能是一个糟糕的结果。相比之下,Lightning组件专为处理这种情况而设计。
Visualforce和Lightning组件都使用类似的基于标记的标记。例如,输入字段的Visualforce标记是<apex:inputText>,而Lightning组件是<lightning:input>。

那有什么区别?那么,Visualforce会在Salesforce服务器上处理标记代码。 Lightning Components在客户端处理标记。客户端处理的优点是整个页面的HTML块不会在客户端和服务器之间来回传递。

除少数例外,Lightning组件更适合Salesforce移动开发。有些情况下需要Visualforce作为JavaScript应用程序。有关更多信息,请参阅“Lightning组件开发者指南”。

我正在用有限的客户端逻辑构建一个以页面为中心的体验 使用Visualforce页面来确保开发速度和可管理性。
我正在使用JavaScript构建交互式体验以满足用户体验要求 使用Lightning组件,但首先参考限制文件。
我致力于JavaScript框架,如AngularJS或React 将Visualforce页面用作第三方框架(如AngularJS或React)和您的应用程序的容器。
我正在启用非开发人员通过组装标准组件或自定义组件来构建应用 程序使用Lightning组件来创建可在Lightning App Builder中使用的自定义组件。
我使用JavaScript构建交互式体验,我需要第三方框架 将Visualforce页面用作第三方框架(如AngularJS或React)和您的应用程序的容器。
我添加用户界面元素 例如,假设你想添加一个标签到一个记录家里。这个任务是一个简单的拖放在Lightning应用程序生成器。使用Lightning组件创建自定义用户界面元素。
我正在为客户建立一个社区 使用社区生成器,利用Lightning组件创建一个基于Lightning的社区。
我正在为合作伙伴建立一个社区 使用社区生成器,利用Lightning组件创建一个基于Lightning的社区。
我正在揭露面向公众的未经认证的网站 使用社区生成器,利用Lightning组件创建基于Lightning的网站。
我在我的应用程序中将页面呈现为PDF 使用Visualforce。 Lightning组件不支持渲染为PDF输出。
我使用大量Visualforce页面添加到现有项目继续使用Visualforce。 考虑使用Lightforce组件为Visualforce机会性地移动元素到Lightning组件。
我致力于投资最新的技术 你跟我们在一起! 潜入闪电组件。 从Lightning Components Basics Trailhead模块开始。
我正在开始一个全新的项目 使用闪电组件。 如果你不熟悉他们,现在没有比现在更好的时间学习了!

为您的组织选择正确的工具

当你考虑选择一个工具时,重点不仅仅是手头上的工作。你也想考虑你的组织作为一个整体,你在你的组织中的角色。让我们看看一些不同的角色如何最好地利用Salesforce的开发模式。

角色 建议
ISV合作伙伴 开始在新应用程序中使用Lightning组件或在现有应用程序中使用新功能。在Salesforce Classic和Lightning Experience中将这些单位打包供订户使用。
SI 开始使用Lightning组件进行新的实现。对于正在进行的实施,请继续使用Visualforce。
专业开发人员谁是JavaScript的大师和Visualforce的经验 继续使用您的首选JavaScript框架使用Visualforce。探索闪电组件,并考虑切换线路。
公民使用标准的Visualforce组件的开发人员页面 继续使用Visualforce,但考虑检查Lightning App Builder。
指向并点击管理员 使用Lightning App Builder创建应用程序和自定义。与开发人员和合作伙伴联手构建自定义的Lightning组件。

迁移到闪电组件

这是个好消息。尽管转向Lightning Experience并加大了对Lightning组件的关注,但您的Visualforce页面仍然适用于Salesforce。无论您使用的是新界面,还是您的老朋友Salesforce Classic-Visualforce都可以使用这两个界面。您不必将任何现有的Visualforce页面转换为长时间使用它们。

但是,由于Web应用程序正在更多地利用以应用程序为中心的模式,因此我们鼓励所有Salesforce开发人员至少了解Lightning组件的基本知识。您将要在将来的开发工作中使用这些组件。

现在是您迈出第一步的最佳时机。用于Visualforce的Lightning App Builder和Lightning Components等功能可让您“将脚趾浸入水中”,并尝试在新页面或现有页面中使用Lightning组件。您可以在Lightning Experience和Salesforce Classic中使用这些嵌入式组件。这很容易,你会坚持不要试一试。

我们知道,迁移到新的开发框架是令人生畏的。但我们在这里为你。这条线索加载了您需要成功采用Lightning Experience开发的所有技巧,技巧和陷阱。