个人的见解
一个统一的UI5脚手架工具的想法
当我们看开源软件时,该运动最突出的思想之一是贡献重新分配给参与者,以“促进高质量程序的生产,以及与其他思想相似的人合作”。新万博买球1的SAP开源网站甚至还用“共同创新”(Co-Innovation)上的一句妙语强化了这一点:“没有一家公司能与公开共同创新的社区的力量和速度保持同步。”我们相信分享创造价值。”2
关于这句话,看看UI5脚手架工具的当前状态有点发人深省。在SAP内部和外部都有许多不同的代码生成器。官方的UI5工具没有脚手架支持。然后就是@sap / generator-fiori
对于freestyle UI5和Fiori Elements应用程序。然后generator-easy-ui5
开发商倡导者马里乌斯·奥伯特以及大量的社区生成器(做一个NPM搜索ui5生成器
你自己看吧)。
所有这些都是为了同一个目的:
- 从头开始引导(部分)UI5应用程序
- 为特定的用例预配置(想想Fiori Floorplans)
- 包括开发、构建和部署时工具。
虽然一个生成器的某些部分可能比其他部分更好,并且它们的组合甚至可能在某些时候让你达到你想要的效果,但事实是:
效率非常低。
任何手动组合它们的努力都会很快变得非常令人沮丧,即使对于经验丰富的UI5开发者也是如此。
相反,我们需要的是一种统一的方法,遵循本文开头的最初想法:
一个UI5脚手架方法每一个人受益于UI5团队,其他SAP部门+产品,UI5社区.
这是如何实现的呢?
我有个主意。
让我一步一步地告诉你。
1.基于社区的工具有很多
一方面,各种基于社区的UI5脚手架解决方案可能在数量和质量上过于多样化。
但另一方面,解决方案已经存在,他们就在那里,其中一些甚至在UI5cons上提出并详细展示。
挑战在于找到一种方法,将现有的社区解决方案精简为一个单一的“引擎”。理想情况下也在一个屋檐下,这样查找和引用它们就变得更容易了。
此外,解决方案的聚合需要保证质量的具体细节(比如通过Github Actions自动执行测试),这样定制的引擎才能顺利运行。
然后,这个众所周知的社区引擎将准备好一个合适的底盘,将其马力投入到街道上。或者,用软件开发的术语来说,将社区引擎组装起来(重新)使用。
2.通过easy-ui5
的easy-ui5
发电机最近在UI5新闻广播中被推荐,这是理所当然的。Marius创建了一个有用的工具,从一个周五晚上的宠物项目到一个功能丰富的UI5源生成器,已经走过了很长的路。至少不是easy-ui5
为不同的部署场景引导应用程序布局的能力——这是Marius密切关注其他SAP团队的一个重点领域,跟踪目标基础设施的变化,将其通过easy-ui5
.
那么底盘除了什么easy-ui5
是否更适合用于承载前面提到的社区引擎?
没错:没有。
因此,所有这些流线型的UI5脚手架和模板解决方案将找到一个自然的合适的结合easy-ui5
.
3.重用easy-ui5
在SAP生成器中
现在,强大的发动机和灵活的底盘已经就位,为车身和模型变化奠定了基础。也就是说,SAP产品/解决方案(例如WebIDE, Business Application Studio BAS)中的生成器模块可以重用现有的脚手架功能easy-ui5
.
注意,这并不等同于1:1的重复使用需求;相反,构建企业特性是绝对有意义的在上面的easy-ui5
-例如多语言功能、预配置的BTP服务绑定、集成存根等。甚至不需要构建到的所有功能上easy-ui5
,因为有些人可能不适合SAP用例。
重点是:不要重做已经通过提供的功能easy-ui5
,但要利用它们来启动企业规模的扩大。没有必要全部重复使用,但是重用至少。
以汽车为例:在共享的底盘/发动机基础上制造不同的汽车模型,但不要为每个车型都制造专用的发动机和底盘。
投资回报-为所有人
正如本文开头所述,开源软件开发的协作性质使所有参与者受益,无论是个人还是公司。
但在统一的UI5生成器方法的草图中,还有更多:通过建立重用金字塔……
@sap
/发电机
提供核心功能easy-ui5
作为“框架”聚合器
↑提供模板+生成器
UI5社区组织
…可以通过BAS/VS代码扩展返回的增值场景被创建。
显然,@sap
/发电机拥有重用金字塔的综合功能效益。当以BAS/VS Code扩展的形式发布时,其中包含的投资会同时返还给使用VS Code(和/或BAS)的UI5开发人员和付费的BAS客户(他们甚至可能构成相同的目标受众——付费使用BAS的开发人员!)
瞧。有关各方的投资回报。
这难道不是一个对所有人都很好的双赢局面吗——SAP作为一个公司,开发者作为一个社区,而UI5作为一种技术?
我的游戏。
这就是重点布泽克Volker!
我终于能够在VS Code中工作,而不是Web IDE,这是第一次。我很喜欢。但关于这段旅程,我有故事可讲!工具和文档的丛林(或缺乏)不适合胆小的人。如果没有你的帮助,我可能还在苦苦挣扎。今天我终于弄清楚了如何使用带有服务绑定的html5-repo-mock来运行FLP沙盒。因为这似乎不能加载default-env。json,所以我不得不重新格式化它不崩溃。文档并没有解释如何配置它。它告诉我们它能做什么(这是很多),但不告诉我们如何做。我知道作为开发人员,我们可以自己解决很多问题,但有时开发应用程序比逆向工程我们的工具更令人满意。
游戏领域如此广阔的另一个挑战是,当一切都可供争夺时,很难找到一个好的最佳实践。我们必须现实一点,承认UI5(和Fiori)社区与许多其他框架相比是很小的。但我们是一个伟大的小团队,我们热爱我们正在做的事情,当我们团结一致时,我们会变得强大。
很棒的博客,我认为SAPUI5捆绑器或Ui5CLI缺乏一个功能来捆绑你在项目中使用的组件。当我们使用任何设计框架时,我们都可以在vue/react中做到这一点,但如果我们也可以使用SAPUI5,那就太好了。SAPUI5不允许使用他们的CDN,如果你想使用特定的UI5库版本开发应用程序,而不依赖于应用服务器的FES组件,你必须使用单独的CDN。因此,您要么必须使用应用程序服务器的UI5库,要么使用单独的CDN(如果您的项目中有index.html)来获取更新的SAPUI5库。同样奇怪的是,SAPUI5库升级需要整个组件(FES)升级。非常低效,一点也不方便。
关于捆绑销售:
Ui5构建自成体系
实际上应该捆绑你的整个应用程序,包括所有组件和使用的ui5库,成为一个独立的应用程序,你可以部署在任何地方
谢谢Volker,
将捆绑正确,但主题文件,消息包和其他一些文件丢失(或不知为何我不能使它安装)。
你需要加上
让一个充分工作的基础上的例子在这里:https://github.com/SAP/openui5-sample-app
但是您最终将拥有数千个文件。我还以为
NPM运行构建
或纱线走线
但是我不能正确地捆绑。最后用了CDN。这是我的.yaml库
我同意你的看法。我也有同样的问题。如果你使用-a选项,你最终会有一个大项目,大到无法部署到服务器上。
我与君王、首领、实干家、君王、唯一的君王都讨论过彼得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库。
嗨Bilen,
你试过吗?进步的包吗?彼得在这里解释道:UI5ers Buzz #50:加载进化:“充分利用你的UI5应用!| SAP博客
这对我来说很有效。使用这种方法,你仍然需要一个CDN库的引用,但不需要引导你的应用程序。它用于缺少css/属性文件。
下面是示例我的应用程序:
嗨,添加,
你不能在index.html中使用SAP CDN,我的意思是这是被禁止的。如果它是允许的,我将不需要捆绑ui5库文件。
这是便条;
2943781 - SAP的内容交付网络是否被允许用于内部部署系统?