命名并描述用于开发web应用程序的两种模型之间的差异。
描述使用Visualforce构建web应用程序的两种不同方法。
描述使用Visualforce或Lightning组件构建web应用程序的优势和权衡。
列出至少三种使用Lightning组件或Visualforce有意义的不同场景。
Visualforce是一个强大、成熟的平台,用于构建以页面为中心的应用程序。Visualforce框架提供了一组健壮的标记,这些标记在服务器上解析,并与标准或自定义控制器一起工作,使数据库和其他操作易于实现。
Visualforce在概念上类似于其他以页面为中心的技术,如PHP、ASP、JSP和RubyonRails。Salesforce丰富的元数据基础架构使Visualforce成为一个高效的解决方案。标准控制器使直接和通过关系访问对象变得容易,而无需执行单个查询。其他支持元数据的组件类似于即插即用:向页面添加标记,就完成了。这些功能在平台上仍然有效,并且仍然适用于许多用例。
仔细想想,Visualforce页面只是带有额外标记的HTML页面,由服务器解析。因此,可以使用空的Visualforce页面作为JavaScript应用程序的容器。在此场景中,您不使用Visualforce标记来构建用户界面。相反,您可以在一个空页面中加载JavaScript应用程序。然后,JavaScript应用程序在客户端生成用户界面。这些应用程序通常被称为单页应用程序或SPA,通常使用第三方框架(如AngularJS或React)构建。
Visualforce已经存在了一段时间,它是一个成熟的、被广泛理解的构建应用程序的平台。它不会消失。Lightning Components是该区块的新成员。这有很多好处,但是,你知道的。现在对你来说是个陌生人。
事情是这样的:你不必选择其中一个。
将以页面为中心和以应用程序为中心的模式视为开发工具带中的工具,一种模式并不总是比另一种更好,如果您了解它们的优势和利弊,您将从中获得最大收益。为手头的工作使用正确的工具。
工作 | 推荐 |
我正在开发Lightning Experience | 我们强烈推荐Lightning组件。Lightning体验是由Lightning组件构建的,这两个组件就像手和手套一样紧密结合在一起。如果您有现有的代码或正在进行的项目,您当然可以使用Visualforce。Visualforce for Lightning Experience完全受支持,但有一些限制。但是,您找不到比使用其母语Lightning Components更好的Lightning体验工具。我们强烈推荐Lightning组件。Lightning体验是由Lightning组件构建的,这两个组件就像手和手套一样紧密结合在一起。如果您有现有的代码或正在进行的项目,您当然可以使用Visualforce。Visualforce for Lightning Experience完全受支持,但有一些限制。但是,您找不到比使用其母语Lightning Components更好的Lightning体验工具。 |
我正在为Salesforce移动应用程序开发 | 我们建议使用Lightning组件。Visualforce特性,尤其是以页面为中心的特性,可能不适合具有有限、高延迟网络连接和有限计算资源的移动应用程序。相比之下,Lightning组件是专门为处理这种情况而设计的。Visualforce和Lightning组件都使用类似的基于标记的标记。例如,输入字段的Visualforce标记为apex:inputText,而Lightning组件的Visualforce标记为Lightning:input。那么有什么区别呢?Visualforce在Salesforce服务器上处理标记。Lightning组件在客户端上处理标记。在客户机上处理的优点是,整个页面的HTML块不会在每次交互时在客户机和服务器之间来回传递。除了少数例外,Lightning组件更适合Salesforce mobile开发。有些情况下需要Visualforce作为JavaScript应用程序。有关更多信息,请参阅Lightning Components开发者指南。 |
我正在用有限的客户端逻辑构建以页面为中心的体验 | 使用Visualforce页面确保开发速度和可管理性。 |
我正在用JavaScript构建一个交互式体验,以满足用户体验需求 | 使用Lightning组件,但请先参阅限制文档。 |
我致力于一个JavaScript框架,比如AngularJS或React | 使用Visualforce页面作为第三方框架(如AngularJS或React)和应用程序的容器。 |
我让非开发人员能够通过组装标准或自定义组件来构建应用程序 | 使用Lightning Components创建可在Lightning App Builder中使用的自定义组件。 |
我正在用JavaScript构建一个交互式体验,我需要一个第三方框架 | 使用Visualforce页面作为第三方框架(如AngularJS或React)和应用程序的容器。 |
我正在添加用户界面元素 | 例如,假设您要向记录主目录添加选项卡。此任务是在Lightning App Builder中进行简单的拖放操作。使用Lightning组件创建自定义用户界面元素。 |
我正在为客户或合作伙伴建立一个社区 | 使用Experience Builder创建一个利用Lightning组件的站点。 |
我正在公开一个面向公众的未经认证的网站 | 使用Experience Builder利用Lightning组件创建基于Lightning的站点。 |
我正在应用程序中将页面呈现为PDF | 使用视觉力量。Lightning组件还不支持渲染为PDF输出。 |
我正在添加一个现有的项目,其中有很多Visualforce页面 | 继续使用Visualforce。考虑机会主义地使用闪电组件来为闪电组件移动视觉效果。 |
我致力于投资最新的技术 | 你和我们在一起!深入了解Lightning组件。 |
我要开始一个全新的项目 | 使用Lightning组件。如果你不熟悉他们,没有比现在更好的时间学习了! |
我正在构建一个流程来引导用户完成业务流程 | 使用Lightning App Builder创建应用程序和自定义设置。与开发人员和合作伙伴合作,构建定制的Lightning组件。 |
当你考虑选择一种工具时,重要的是关注的不仅仅是手头的工作。你也要考虑你的组织作为一个整体,以及你在组织中的角色。让我们看看一些不同的角色如何能够最好地利用Salesforce的开发模型。
角色 | 推荐 |
ISV合作伙伴 | 开始为新应用程序或现有应用程序中的新功能使用Lightning组件。将这些单元打包,供用户在Salesforce Classic和Lightning体验中使用。 |
SI | 开始为新的实现使用Lightning组件。对于正在进行的实现,请继续使用Visualforce。 |
专业开发人员是JavaScript大师,具有Visualforce方面的经验 | 继续将Visualforce与您首选的JavaScript框架一起使用。探索雷电组件并考虑关闭线路。 |
对页面使用标准Visualforce组件的公民开发人员 | 继续使用VisualPrimor,但是考虑一下闪电应用程序生成器。 |
点击管理员 | 使用Lightning App Builder创建应用程序和自定义设置。与开发人员和合作伙伴合作,构建定制的Lightning组件。 |
这是好消息。尽管转向了Lightning体验,并且越来越关注Lightning组件,但您的Visualforce页面仍然适用于Salesforce。无论您使用的是新界面还是您的老朋友Salesforce Classic Visualforce都可以使用这两种界面。您不必转换任何现有的Visualforce页面来长时间使用它们。
但是,由于web应用程序更多地利用了以应用程序为中心的模式,我们鼓励所有Salesforce开发人员至少学习Lightning组件的基础知识。您将希望在未来的开发工作中使用这些组件。
现在是你迈出第一步的最佳时机。Lightning App Builder和Lightning Components for Visualforce等功能允许您“将脚趾浸入水中”,并尝试在新页面或现有页面中只使用一个Lightning组件。您可以在Lightning Experience和Salesforce Classic中使用这些嵌入式组件。这太容易了,你要是不试试就疯了。
我们知道,迁移到新的开发框架是令人望而生畏的。但我们在这里等你。本教程包含成功采用Lightning体验开发所需的所有技巧、窍门和窍门。