我们最近在我们的Youtube 频道(订阅!)发表了对Viasoft Korp技术总监Alexandre Henzen采访。采访(葡萄牙语)可通过此链接获得,也可在下面的这篇文章中获得。

在这次采访中,Alexandre 谈到了Viasoft Korp集团公司,该公司如何从一个人和一个使用 C++Builder 6 构建桌面软件开始,并成为巴西大型工业的 ERP 软件供应商,成为拥有 500多家公司的企业集团的一部分员工

在参与这一旅程的人中,有我、Wagner LandgrafTMS 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 年:访谈相关推荐

  1. Delphi XE2 新控件 布局Panel TGridPanel TFlowPanel

    Delphi XE2 新控件 Firemonkey 布局Panel Windows平台VCl TGridPanel TFlowPanel FMX 跨平台 TLayout TGridLayout TFl ...

  2. Delphi常用通讯控件的应用札记

    Delphi常用通讯控件的应用札记 1.SPComm串口控件 2.TClientSocket

  3. java ocx,Eclipse使用ActiveX控件(OCX)开发Java程序

    本范例以使用来电显示ActiveX控件JDComport.ocx为例,说明怎样在Java中集成ActiveX控件. 1.开发环境:Eclipse(Java主流开发工具) (1)需要用到SWT.Visu ...

  4. atitit. applet 浏览器插件 控件 的环境,开发,提示总结o9o

    atitit. applet 浏览器插件 控件 的环境,开发,提示总结o9o 1. 建立applet:: 1 2. Applet 码 1 3. Applet (awt)跟japplet (swing) ...

  5. java jp2launcher.exe_atitit. applet 浏览器插件 控件 的环境,开发,提示总结o9o

    atitit. applet 浏览器插件 控件 的环境,开发,提示总结o9o 1. 建立applet:: myclipse>>new>>applet,设置applet属性,设置 ...

  6. VisionPro控件的使用 C# 开发篇

    VisionPro 常用控件的说明 工具设置窗体 CogPMAlignEditV2  [ 模版匹配设置窗体控件 ] CogPMAlignEditV2.Subject : 工具关联对象  如:CogPM ...

  7. 深圳ERP软件开发 轻松完成复杂数据管理

    深圳ERP软件开发轻松完成复杂数据管理.ERP将Excel.Access.Foxpro.VB以及易表的优势融合在一起,无论是数据录入.查询.统计,还是报表生成,都前所未有的强大和易用,普通用户无需编写 ...

  8. 低代码平台在ERP软件开发中的作用

    很多人认为低代码开发平台的出现颠覆了传统的软件开发模式,对软件开发行业造成冲击,其实低代码开发平台的出现只是提高了软件开发的效率,并不是要颠覆软件开发的模式.低代码平台在ERP软件开发中的作用还是比较 ...

  9. python是一个免费开源的软件吗_Python是开源的吗?使用Python的软件开发领域

    Python是开源的吗?使用Python的软件开发领域.我们要清除的是Python开放源代码,因此Python是开放源代码,这意味着它是免费的,并且python开放源代码不是不同的编程语言,每个人都可 ...

最新文章

  1. list修改元素的值_Python 到底是值传递还是引用传递
  2. Spring AOP 实现原理与 CGLIB 应用--转
  3. Ajax学习系列——向服务器发送请求
  4. linux如何过滤字符串,在linux系统如何grep过滤中,不包含某些字符串的命令
  5. 祝张远远和杨凯博同学生日快乐 | 班级日常分享
  6. C# 大文件分块下载
  7. linux怎么显示目录层次结构,Linux基础(层级结构、基础命令)
  8. 关于《构建之法》阅读笔记 的致歉博客
  9. 树莓派3B wiringPi 控制LED小灯
  10. 20145234黄斐《网络对抗技术》实验六-信息搜集与漏洞扫描
  11. 标题采集软件-免费标题生成器
  12. SPSS——非参数检验——1-Sample K-S 单个样本(Kolmogorov-Smirnov)柯尔莫哥洛夫-斯米诺夫检验
  13. 基于Zabbix的校园网核心监控系统设计与实现
  14. GBase 8atmp 目录权限改变导致加载失败
  15. 利用sublime的package Control安装插件
  16. P4556 [Vani有约会]雨天的尾巴(树上的差分+线段树的启发式合并)
  17. ctf比赛的三种形式
  18. #GNS3,wireshark,CRT的安装
  19. Kdevelop使用方法
  20. ios 图标的配置

热门文章

  1. 鴻海董事長郭台銘先生的話
  2. 个人学习(解决)练习ssm框架遇到的问题No qualifying bean of type ‘service.BookTypeService‘ available:
  3. 微信小程序实现天气预报功能(附源码)
  4. Camera摄像头模组硬件
  5. php程序员学什么语言好就业_中高级PHP程序员应该掌握哪些技术?
  6. codeblocks 10.5配置vc2008x64编译器
  7. 加州大学欧文分校 计算机专业,加州大学欧文分校信息与计算机科学
  8. 室内定位的电子地图编辑工具
  9. 微软雅黑字体包替换XP的宋体(附下载)
  10. 工作经验分享:Spark调优【优化后性能提升1200%】