Delphi 和 TMS 控件在 ERP 软件开发领域的 20 年:访谈
我们最近在我们的Youtube 频道(订阅!)发表了对Viasoft Korp技术总监Alexandre Henzen的采访。采访(葡萄牙语)可通过此链接获得,也可在下面的这篇文章中获得。
在这次采访中,Alexandre 谈到了Viasoft Korp集团公司,该公司如何从一个人和一个使用 C++Builder 6 构建的桌面软件开始,并成为巴西大型工业的 ERP 软件供应商,成为拥有 500多家公司的企业集团的一部分员工。
在参与这一旅程的人中,有我、Wagner Landgraf、TMS Software和Embarcadero,以及公司使用了近 20 年的开发工具Delphi。这次采访就是关于这样的旅程。
对于那些不懂葡萄牙语,或者只是不喜欢视频的人,我们在下面用英语转录了采访的最佳时刻。
1:46 – 关于 Viasoft Korp
Wagner Landgraf:什么是 Viasoft Korp?
Alexandre Henzen: Viasoft Korp 是Viasoft集团的一个业务部门。Viasoft 是一家为多种不同类型的企业提供 ERP 软件的公司:农业综合企业、超市、建筑材料等。Viasoft Korp为行业提供ERP 软件。Korp 于 2000 年正式开始。(……)当时软件是用C++ Builder开发的。
Viasoft Korp 为行业提供 ERP 软件。
亚历山大·亨岑
3:00 – 从 C++ Builder 迁移到 Delphi
WL:我认为它是我见过的少数用 C++ 构建的 ERP 软件之一。
AH:确实如此。在 2004 年、2005 年左右的某个时候,编译需要6 个小时。然后我们开发了一个C++ 到 Pascal 的转译器——顺便说一下,在你的帮助下,我不确定你是否记得——所以我们可以将完整的源代码迁移到 Delphi。
我们开发了一个 C++ 到 Pascal 的转译器来从 C++ Builder 迁移到 Delphi。
亚历山大·亨岑
6:47 – 帮助公司的关键时刻
WL:是什么帮助了 Korp 的成长?什么是关键时刻?
AH:TMS Scripter(用于在运行时编辑和执行脚本的 TMS 软件产品)对我们来说是一个很大的不同。(...) ERP 必须是可定制的,这是典型的,因此TMS Scripter 允许这种灵活性,(它的东西)在 2001 年、2002 年,你没有看到很多这样的事情。(...) 客户自己可以创建表单,甚至可以在系统内创建完整的模块。那帮助我们成长。
使用TMS Scripter 的运行时软件定制帮助我们成长。
亚历山大·亨岑
9:17 – 使用工作流工具
AH:(另一个重要的决定):在 BPM 还不是很流行的时候,(在 2007 年使用TMS Workflow)也是一个很大的优势。事实上,您可以绘制流程图并说:“乔批准发票,如果发票价值高于 X,则将其发送给杰克,等等。” (...)这使我们的系统更加灵活。
17:20 – TMS Aurelius 的起源
WL:嗯,这些年来我们一直是朋友和技术合作伙伴,我们(在 TMS)帮了你很多,你帮了我们很多。正如您所说,我们为您提供了帮助:Korp 有技术需求,我们开发和改进了解决方案以赋予 ERP 灵活性,我相信您已经减少了很多支持。但是有件事我从来没有在公开场合说过,我还是第一次在这里说:如果你(正在关注我们的人)使用TMS Aurelius(来自 TMS Software 的 Delphi ORM 框架),请感谢与我交谈的这个人: 他不仅是 TMS Aurelius 的第一个客户,更是推动 TMS Aurelius 发展的原动力。我们在 2021 年,还有很多人仍然不知道为什么或如何在他们的软件中使用 ORM。Alexandre 在 2010 年已经有了这样的愿景,即 ORM 将帮助他和他的公司。他联系了我们,我们合作开发了 TMS Aurelius,因为 Delphi 的现有 ORM 库不能完全为他服务。
Alexandre 是开发 TMS Aurelius 的驱动力。
瓦格纳领地
20:43 – 可扩展性和技术
AH:我们寻求的所有这些发展,一直在考虑可扩展性。总是想要扩展、改进代码,ERP 总是变得非常非常复杂。因此,所有这些技术都使系统变得灵活和可扩展。该系统是巨大的。今天,我们不仅仅使用 Delphi。
WL:是的,让我们谈谈 Viasoft Korp 使用的其他技术。该软件作为客户端/服务器 Windows 桌面应用程序启动。当然,今天您拥有许多其他服务、Web 应用程序、移动应用程序、集成、微服务。今天还有哪些其他技术也在帮助 Korp?
AH:以web开发为例,我们选择后端使用C#,前端使用Angular。我们还在一些微服务中使用了 Golang。每种语言都有其目的。
WL:而且你也已经考虑到了公司目前的需求。例如,有人可能会问:“你为什么不使用TMS Web Core(TMS 软件产品,用 Delphi 创建 Web 应用程序)?”。仅仅是因为当时还没有 TMS Web Core!当它首次发布时,Korp 已经将他的所有 Web 应用程序完全用 Angular 开发。
啊:没错。我们还想在 Linux、Docker 上运行,需要考虑很多事情。
WL:是的,所有这些工具也是如此。当我去那里时,我从 Korp 那里学到了很多东西。不仅是关于编程,还有 DevOps。他们总是在与 Kubernetes、Docker、Consul、Traefik 打交道……
AH:关于测试,我们开发了一个名为 Flow 的内部框架,这对我们来说是一个很大的变化。使用这样的工具,我们编写BDD代码并执行所有操作。目前,我们在三个不同的服务器中拥有大约十二个虚拟机,24/7 全天候运行测试。
我们还使用 C#、Angular、Golang。每种编程语言都有其目的。
亚历山大·亨岑
23:44 – 测试和软件质量
WL:您提到了 TMS Software 如何为 ORM(TMS Aurelius)、多层 REST(TMS XData)等做出贡献。但谈到测试:我记得多年前,您(以及我当时认识的每个人)遭受测试并保持软件质量。你让人们做手动测试、UI 测试等。我相信随着时间的推移,这些技术改进在这方面有很大帮助。
AH:是的,ERP 是一个非常复杂的软件。如果没有这些新的开发范式,这是不可能的。今天,我们的服务器使用持续集成,每天 24 小时运行测试。我们使用 Jenkins,它从 Bitbucket(用于源代码版本控制的 Git 存储库)中检索更改,立即运行所有测试场景,全部 100% 自动化。
WL:那我相信TMS对你有一点帮助,不是吗?
AH:当然,我们 Delphi 制造的软件的所有架构都是围绕 TMS 业务构建的。
我们用 Delphi 编写的软件的所有架构都是围绕TMS Business构建的。
亚历山大·亨岑
27:40 – 客户规模
WL:您提到 XData 服务正在处理大量请求,请告诉我们更多关于您的客户规模的信息。
AH:有最多样化的尺寸。公司范围从 20 到500 个用户同时访问系统。这些是拥有大量物流处理和发行财政票据(巴西合法发票)的公司,它们是复杂而繁重的系统。通过系统传输的信息量是巨大的。
28:50 – 关于最近的 Delphi 版本
WL:说到德尔福。您使用的是 Berlin (10.1),这种演变如何?
AH:我们使用 Delphi Berlin (10.1) 并尝试更新到新版本。(问题是)我们的应用程序是这样工作的:它不仅仅是一个可执行文件。有主要的可执行文件,系统中的每个模块都是一个运行时包,一个 BPL,(它们是模块)随着用户继续使用软件而动态加载。所以它是一个巨大的包结构,我们总是在几个方面受到它(运行时包)的影响:检测内存泄漏更复杂,由于包依赖关系重新编译包很麻烦,等等。
WL: Windows 更新甚至出现了一个与 Delphi 无关的问题,这对您来说是一个大问题,对吧?
AH:是的,有一个 Windows 更新只是把一切都搞砸了(亚历山大指的是 Marco Cantu 的博客中报告的这个问题)。刚刚启动应用程序花了将近五分钟。我们甚至恢复到以前的 Windows 版本并阻止公司所有机器上的 Windows 更新。(...) 然后,我们迁移到了 Delphi 10.4 Sydney,第一个版本 (10.4.0)。一开始我们的工具还是有问题,LSP(Language Server Protocol,Delphi 新的代码补全系统)本身也有一些问题。现在有了(更新到)10.4.2,我们最近升级了它,我们感受到了不同 -它更加稳定,IDE 编译速度更快,我从开发人员那里收到的反馈非常积极.
自 XE2 以来,我见过的最稳定的版本是悉尼 10.4.2。
亚历山大·亨岑
31:39 – 升级到 Delphi 10.4.2 悉尼
WL:那么,与 10.4 相比,这个 10.4.2 版本要好得多?
AH:是的,稳定得多,甚至不接近。如果我们考虑这些年来我们使用的所有 Delphi 版本,颈椎枕自 Delphi XE2 以来,我见过的最稳定的版本就是 10.4.2。
WL:我记得你遇到的一个大问题是编译时间。运行测试的时间,例如,花了多长时间?
AH:花了58 分钟,差不多一个小时。只需升级到 10.4.2,它就下降到大约 28 分钟。然后我们对包设置进行了一些更改,它下降到12 到 14 分钟,具体取决于机器。运行时包功能现在也更加稳定,这是一个很大的不同。
编译时间为 58 分钟,下降到 12 分钟。
亚历山大·亨岑
38:10 – 关闭和联系
WL: Alexandre,非常感谢您接受本次采访。
AH:谢谢,任何想联系我的人都可以联系我,只需访问(我的个人资料)LinkedIn,搜索 Alexandre Henzen(此处链接),我们就可以交流想法,我总是喜欢讨论新技术。
Delphi 和 TMS 控件在 ERP 软件开发领域的 20 年:访谈相关推荐
- Delphi XE2 新控件 布局Panel TGridPanel TFlowPanel
Delphi XE2 新控件 Firemonkey 布局Panel Windows平台VCl TGridPanel TFlowPanel FMX 跨平台 TLayout TGridLayout TFl ...
- Delphi常用通讯控件的应用札记
Delphi常用通讯控件的应用札记 1.SPComm串口控件 2.TClientSocket
- java ocx,Eclipse使用ActiveX控件(OCX)开发Java程序
本范例以使用来电显示ActiveX控件JDComport.ocx为例,说明怎样在Java中集成ActiveX控件. 1.开发环境:Eclipse(Java主流开发工具) (1)需要用到SWT.Visu ...
- atitit. applet 浏览器插件 控件 的环境,开发,提示总结o9o
atitit. applet 浏览器插件 控件 的环境,开发,提示总结o9o 1. 建立applet:: 1 2. Applet 码 1 3. Applet (awt)跟japplet (swing) ...
- java jp2launcher.exe_atitit. applet 浏览器插件 控件 的环境,开发,提示总结o9o
atitit. applet 浏览器插件 控件 的环境,开发,提示总结o9o 1. 建立applet:: myclipse>>new>>applet,设置applet属性,设置 ...
- VisionPro控件的使用 C# 开发篇
VisionPro 常用控件的说明 工具设置窗体 CogPMAlignEditV2 [ 模版匹配设置窗体控件 ] CogPMAlignEditV2.Subject : 工具关联对象 如:CogPM ...
- 深圳ERP软件开发 轻松完成复杂数据管理
深圳ERP软件开发轻松完成复杂数据管理.ERP将Excel.Access.Foxpro.VB以及易表的优势融合在一起,无论是数据录入.查询.统计,还是报表生成,都前所未有的强大和易用,普通用户无需编写 ...
- 低代码平台在ERP软件开发中的作用
很多人认为低代码开发平台的出现颠覆了传统的软件开发模式,对软件开发行业造成冲击,其实低代码开发平台的出现只是提高了软件开发的效率,并不是要颠覆软件开发的模式.低代码平台在ERP软件开发中的作用还是比较 ...
- python是一个免费开源的软件吗_Python是开源的吗?使用Python的软件开发领域
Python是开源的吗?使用Python的软件开发领域.我们要清除的是Python开放源代码,因此Python是开放源代码,这意味着它是免费的,并且python开放源代码不是不同的编程语言,每个人都可 ...
最新文章
- list修改元素的值_Python 到底是值传递还是引用传递
- Spring AOP 实现原理与 CGLIB 应用--转
- Ajax学习系列——向服务器发送请求
- linux如何过滤字符串,在linux系统如何grep过滤中,不包含某些字符串的命令
- 祝张远远和杨凯博同学生日快乐 | 班级日常分享
- C# 大文件分块下载
- linux怎么显示目录层次结构,Linux基础(层级结构、基础命令)
- 关于《构建之法》阅读笔记 的致歉博客
- 树莓派3B wiringPi 控制LED小灯
- 20145234黄斐《网络对抗技术》实验六-信息搜集与漏洞扫描
- 标题采集软件-免费标题生成器
- SPSS——非参数检验——1-Sample K-S 单个样本(Kolmogorov-Smirnov)柯尔莫哥洛夫-斯米诺夫检验
- 基于Zabbix的校园网核心监控系统设计与实现
- GBase 8atmp 目录权限改变导致加载失败
- 利用sublime的package Control安装插件
- P4556 [Vani有约会]雨天的尾巴(树上的差分+线段树的启发式合并)
- ctf比赛的三种形式
- #GNS3,wireshark,CRT的安装
- Kdevelop使用方法
- ios 图标的配置
热门文章
- 鴻海董事長郭台銘先生的話
- 个人学习(解决)练习ssm框架遇到的问题No qualifying bean of type ‘service.BookTypeService‘ available:
- 微信小程序实现天气预报功能(附源码)
- Camera摄像头模组硬件
- php程序员学什么语言好就业_中高级PHP程序员应该掌握哪些技术?
- codeblocks 10.5配置vc2008x64编译器
- 加州大学欧文分校 计算机专业,加州大学欧文分校信息与计算机科学
- 室内定位的电子地图编辑工具
- 微软雅黑字体包替换XP的宋体(附下载)
- 工作经验分享:Spark调优【优化后性能提升1200%】