跳转到内容
个人的见解
作者的资料照片沃尔万博新体育手机客户端克布泽克

一个统一的UI5脚手架工具的想法

当我们看开源软件时,该运动最突出的思想之一是贡献重新分配给参与者,以“促进高质量程序的生产,以及与其他思想相似的人合作”。新万博买球1SAP开源网站甚至还用“共同创新”(Co-Innovation)上的一句妙语强化了这一点:“没有一家公司能与公开共同创新的社区的力量和速度保持同步。”我们相信分享创造价值。”2

关于这句话,看看UI5脚手架工具的当前状态有点发人深省。在SAP内部和外部都有许多不同的代码生成器。官方的UI5工具没有脚手架支持。然后就是@sap / generator-fiori对于freestyle UI5和Fiori Elements应用程序。然后generator-easy-ui5开发商倡导者马里乌斯·奥伯特以及大量的社区生成器(做一个NPM搜索ui5生成器你自己看吧)。

许多% 20个不同的% 20 ui5 % 20代码% 20发电机

所有这些都是为了同一个目的:

  • 从头开始引导(部分)UI5应用程序
  • 为特定的用例预配置(想想Fiori Floorplans)
  • 包括开发、构建和部署时工具。

虽然一个生成器的某些部分可能比其他部分更好,并且它们的组合甚至可能在某些时候让你达到你想要的效果,但事实是:

效率非常低。

任何手动组合它们的努力都会很快变得非常令人沮丧,即使对于经验丰富的UI5开发者也是如此。

相反,我们需要的是一种统一的方法,遵循本文开头的最初想法:

一个UI5脚手架方法每一个人受益于UI5团队,其他SAP部门+产品,UI5社区

% 20统一% 20脚手架% 20的工具

这是如何实现的呢?

我有个主意。

让我一步一步地告诉你。

1.基于社区的工具有很多

一方面,各种基于社区的UI5脚手架解决方案可能在数量和质量上过于多样化。
但另一方面,解决方案已经存在,他们就在那里,其中一些甚至在UI5cons上提出并详细展示。

挑战在于找到一种方法,将现有的社区解决方案精简为一个单一的“引擎”。理想情况下也在一个屋檐下,这样查找和引用它们就变得更容易了。

此外,解决方案的聚合需要保证质量的具体细节(比如通过Github Actions自动执行测试),这样定制的引擎才能顺利运行。

ui5 % 20社区% 20提供% 20基地% 20模板% 20和% 20发电机

然后,这个众所周知的社区引擎将准备好一个合适的底盘,将其马力投入到街道上。或者,用软件开发的术语来说,将社区引擎组装起来(重新)使用。

2.通过easy-ui5

easy-ui5发电机最近在UI5新闻广播中被推荐,这是理所当然的。Marius创建了一个有用的工具,从一个周五晚上的宠物项目到一个功能丰富的UI5源生成器,已经走过了很长的路。至少不是easy-ui5为不同的部署场景引导应用程序布局的能力——这是Marius密切关注其他SAP团队的一个重点领域,跟踪目标基础设施的变化,将其通过easy-ui5

那么底盘除了什么easy-ui5是否更适合用于承载前面提到的社区引擎?

没错:没有。

easy-ui5 % 20重用% 20 ui5-community % 20模板% 20和% 20发电机

因此,所有这些流线型的UI5脚手架和模板解决方案将找到一个自然的合适的结合easy-ui5

3.重用easy-ui5在SAP生成器中

现在,强大的发动机和灵活的底盘已经就位,为车身和模型变化奠定了基础。也就是说,SAP产品/解决方案(例如WebIDE, Business Application Studio BAS)中的生成器模块可以重用现有的脚手架功能easy-ui5

sap % 20发电机% 20重用% 20的% 20 easy-ui5 % 20部分

注意,这并不等同于1:1的重复使用需求;相反,构建企业特性是绝对有意义的在上面easy-ui5-例如多语言功能、预配置的BTP服务绑定、集成存根等。甚至不需要构建到的所有功能上easy-ui5,因为有些人可能不适合SAP用例。

重点是:不要重做已经通过提供的功能easy-ui5,但要利用它们来启动企业规模的扩大。没有必要全部重复使用,但是重用至少。

以汽车为例:在共享的底盘/发动机基础上制造不同的汽车模型,但不要为每个车型都制造专用的发动机和底盘。

投资回报-为所有人

正如本文开头所述,开源软件开发的协作性质使所有参与者受益,无论是个人还是公司。

但在统一的UI5生成器方法的草图中,还有更多:通过建立重用金字塔……

@sap/发电机
提供核心功能
easy-ui5作为“框架”聚合器
↑提供模板+生成器
UI5社区组织

…可以通过BAS/VS代码扩展返回的增值场景被创建。

BAS或VS Code扩展作为社区投资的回报

显然,@sap/发电机拥有重用金字塔的综合功能效益。当以BAS/VS Code扩展的形式发布时,其中包含的投资会同时返还给使用VS Code(和/或BAS)的UI5开发人员和付费的BAS客户(他们甚至可能构成相同的目标受众——付费使用BAS的开发人员!)

瞧。有关各方的投资回报。

这难道不是一个对所有人都很好的双赢局面吗——SAP作为一个公司,开发者作为一个社区,而UI5作为一种技术?

我的游戏。

指定的标签

      8的评论
      你一定是登录评论:评论或回复一篇文章
      作者头像罗尼And万博新体育手机客户端ré Bjørvik Sletta
      罗尼André Bjørvik Sletta

      这就是重点布泽克Volker

      我终于能够在VS Code中工作,而不是Web IDE,这是第一次。我很喜欢。但关于这段旅程,我有故事可讲!工具和文档的丛林(或缺乏)不适合胆小的人。如果没有你的帮助,我可能还在苦苦挣扎。今天我终于弄清楚了如何使用带有服务绑定的html5-repo-mock来运行FLP沙盒。因为这似乎不能加载default-env。json,所以我不得不重新格式化它不崩溃。文档并没有解释如何配置它。它告诉我们它能做什么(这是很多),但不告诉我们如何做。我知道作为开发人员,我们可以自己解决很多问题,但有时开发应用程序比逆向工程我们的工具更令人满意。

      游戏领域如此广阔的另一个挑战是,当一切都可供争夺时,很难找到一个好的最佳实践。我们必须现实一点,承认UI5(和Fiori)社区与许多其他框架相比是很小的。但我们是一个伟大的小团队,我们热爱我们正在做的事情,当我们团结一致时,我们会变得强大。

      作者简介照片Bil万博新体育手机客户端en Cekic
      Bilen Cekic

      很棒的博客,我认为SAPUI5捆绑器或Ui5CLI缺乏一个功能来捆绑你在项目中使用的组件。当我们使用任何设计框架时,我们都可以在vue/react中做到这一点,但如果我们也可以使用SAPUI5,那就太好了。SAPUI5不允许使用他们的CDN,如果你想使用特定的UI5库版本开发应用程序,而不依赖于应用服务器的FES组件,你必须使用单独的CDN。因此,您要么必须使用应用程序服务器的UI5库,要么使用单独的CDN(如果您的项目中有index.html)来获取更新的SAPUI5库。同样奇怪的是,SAPUI5库升级需要整个组件(FES)升级。非常低效,一点也不方便。

      作者的资料照片沃尔万博新体育手机客户端克布泽克
      布泽克Volker
      博客作者

      关于捆绑销售:

      Ui5构建自成体系

      实际上应该捆绑你的整个应用程序,包括所有组件和使用的ui5库,成为一个独立的应用程序,你可以部署在任何地方

      作者简介照片Bil万博新体育手机客户端en Cekic
      Bilen Cekic

      谢谢Volker,

      Ui5构建自成体系

      将捆绑正确,但主题文件,消息包和其他一些文件丢失(或不知为何我不能使它安装)。

      你需要加上

      Ui5 build self-contained -a

      让一个充分工作的基础上的例子在这里:https://github.com/SAP/openui5-sample-app

      但是您最终将拥有数千个文件。我还以为NPM运行构建纱线走线但是我不能正确地捆绑。最后用了CDN。

      这是我的.yaml库

      库:
      —名称:sap.f
      —名称:sap.m
      —名称:sap.tnt
      —名称:sap.ui.core
      —名称:sap.ui.export
      —名称:sap.ui.layout
      —名称:sap.ui.richtexteditor
      —名称:sap.ui.table
      —name: themelib_sap_fiori_3
      作者的个人资料照片万博新体育手机客户端添加Belati
      添加Belati

      我同意你的看法。我也有同样的问题。如果你使用-a选项,你最终会有一个大项目,大到无法部署到服务器上。

      作者简介照片Bil万博新体育手机客户端en Cekic
      Bilen Cekic

      我与君王、首领、实干家、君王、唯一的君王都讨论过彼得Muessig在这里

      //www.bouseh.com/2020/04/15/ui5ers-buzz-51-ui5-tooling-2.0-how-to-develop-and-run-sap-fiori-elements-locally/comment-page-1/#comment-555587

      我认为捆绑所有的主题文件就像sap-ui-custom.css并将所有js文件打包为sap-ui-custom.js现在不可能了。

      FIORI开发很可能不需要这种方法,这就是为什么团队不花时间在这上面。但如果你不是在构建一个像FIORI应用程序那样的honkie-ponkie应用程序,你需要最新的文件来部署(作为一个BSP应用程序),你需要像上面这样的方法:/

      唯一的选项是部署应用程序,没有自含,只是预加载文件,但与CDN的UI5库。

      作者的个人资料照片万博新体育手机客户端添加Belati
      添加Belati

      嗨Bilen,

      你试过吗?进步的包吗?彼得在这里解释道:UI5ers Buzz #50:加载进化:“充分利用你的UI5应用!| SAP博客

      这对我来说很有效。使用这种方法,你仍然需要一个CDN库的引用,但不需要引导你的应用程序。它用于缺少css/属性文件。

      下面是示例我的应用程序:

      data-sap-ui-resourceRoots = ' {
      “my.namespace.zapp”:“。/”
      “”:“https://sapui5.hana.ondemand.com/1.82.4/r新万博苹果版esources/”
      _}’
      作者简介照片Bil万博新体育手机客户端en Cekic
      Bilen Cekic

      嗨,添加,

      你不能在index.html中使用SAP CDN,我的意思是这是被禁止的。如果它是允许的,我将不需要捆绑ui5库文件。

      这是便条;

      2943781 - SAP的内容交付网络是否被允许用于内部部署系统?