Jerry 之前曾经写过一篇微信公众号文章,题目叫 <<SAP UI 和 Salesforce UI 开发漫谈 >>
关注我的公号“汪子熙”后,在历史菜单“前端开发相关”里即可找到这篇文章:
该文章简单回顾了 SAP UI 技术的发展历史,然后提了下 Salesforce 的 Apex 和 Lighting Component 等技术和框架。
目录
SAP UISAP GUI + DynproWeb DynproBSP/CRM WebClient UISAP UI5/FioriUI5 in SAP Cloud for Customer
Hybris Enterprise Commerce Platform
Salesforce UIApexLightning ExperienceAura FrameworkLightning Component FrameworkVisualforce
我也画了张简单的图:
R1 和针对于大型机的 R2 对我们来说实在太古老了,对我们来说,只能通过 SAPGUI 里的复古主题,即 Classical Theme 来体验一下这些老古董的外观风采。
到了 1992 年出现了类似 JSP 技术的 BSP(business server page),能够借助在服务器端执行的 ABAP 语言实现动态网页效果。
在运行时,每个 BSP 页面会自动生成一个临时的 ABAP 类,执行这些 BSP 页面上嵌入的 ABAP 代码,执行的结果再渲染成原生的 HTML 代码。
值得一提的是,BSP 技术兼容普通的 HTML/JavaScript 应用,换句话说,几乎所有能运行在除 Netweaver 以为的 web 服务器上的基于 HTML/JavaScript 的 web 应用,也能以 BSP 为载体,运行在 Netweaver 上。因此,即使是如今 SAP 的旗舰级产品 S /4HANA 里的很多 Fiori UI 应用,也是以 BSP 应用为载体存储在 Netweaver 上的。
比如 S /4HANA 物料主数据管理的 Fiori 应用,其名称在 Chrome 开发者工具里能看到:
这个 BSP 应用在 Netweaver 上能找到:
诞生于 1992 年的 BSP 技术到了今天还在服役,这本身就是一个奇迹了。当然它本身由于历史原因也有一些局限:
开发效率不够高,没有类似后来 UI5 里控件库的概念,导致开发人员需要重复造很多轮子。SAP 后来自己也发布了一些 BSP Extension,类似 JSP 里的 tag,以此来弥补开发效率的缺陷。
另外 BSP 的开发工具在 SAPGUI 里只有事务码 SE80,这个工具在做 HTML 和 JavaScript 开发时显得不够友好。因此后期 SAP Fiori 开发也采取了在本地现代 IDE 比如 Eclipse 里做开发,完毕后再上传到 Netweaver 自动生成 BSP 的方式。
没有 MVC 的概念,在大型企业级应用开发中显得力不从心。
正是由于暴露了这两个缺陷,促成了 WebUI 和 Webdynpro 的问世。对这两种前端技术的详细介绍,请参考 Jerry 之前提到的微信文章:SAP UI 和 Salesforce UI 开发漫谈,这里不再重复,只是聊聊一些该文章中没有提过的内容。
ABAP Webdynpro 的亮点就是能够以所见即所得的方式进行 UI 界面开发,缺点是不再支持类似 BSP 那样兼容传统的 HTML/JavaScript,因此无法实现某些对界面复杂度和交互性要求较高的需求。
而 WebUI 在继承了 BSP 所有优点的同时,在 BSP 基础上提供了对 MVC 的封装,使得开发效率大大提高,同时开发出来的 Web 应用结构清晰,不再会出现一个视图页面几千行代码的情况。
下图是一个典型的 WebUI 模型,MVC 三层在 workbench 里有清晰的界定。
WebUI 和 ABAP Webdynpro 至今仍广泛应用于 SAP 产品中。在 S /4HANA 的 CRM 模块里,WebUI 继续扮演着非常重要的角色,详情请阅读我下面这篇文章:Hello World, S/4HANA for Customer Management 1.0
而 Webdynpro,是 SAP SRM UI 开发的主流技术。
搜索公网上所有使用了 SAP BSP 技术的网站:https://www.google.com/search…:/sap/bc/bsp/&gws_rd=ssl
使用了 Webdynpro 的:
随着时间的推移,用户对移动设备上访问网页的体验要求越来越高,因此有了 SAP 从业者现在很熟悉的前端技术:SAP UI5。
关于 UI5 最新的技术发展方向,请关注我的公众号“汪子熙”,阅读我写的这篇文章:
Fiori Fundamentals 和 SAP UI5 Web Components
要获取更多 Jerry 的原创文章,请关注公众号 ” 汪子熙 ”: