Embarcadero委托白皮书研究了Delphi,WPF .NET Framework和Electron之间用于构建Windows桌面应用程序的区别。由三个Delphi最有价值专家(MVP)志愿者,一名WPF专业开发人员和一名Electron自由开发人员在每个框架中重新创建了基准应用程序– Windows 10 Calculator计算器克隆。在此博客文章中,我们将探讨长期可行性指标,该指标是白皮书中使用的功能比较的一部分。
长期可行性
当企业选择Delphi作为其开发框架时,他们将投资具有专有成本(包括运行时库源代码)的专有框架,该框架具有前期成本和可选的年度更新费用。以此为代价,他们获得了稳定,向后兼容且不断发展的框架,并且可以确信今天开发的应用程序将在将来得到支持和可维护。
带有.NET Framework的Windows Presentation Foundation在Microsoft的全力支持下为企业提供了一个经济的框架,但包括了Microsoft选择带来的所有挑战。WPF的历史比Delphi短,但是它于2018年开源,尽管它与大多数Windows开发的专有.NET Framework有联系,但它的某些版本可能具有光明的长期前景。微软表示,.NET Framework 4.8是2019年4月18日的最后版本。
Electron是一个免费的开源平台,为企业提供了从任何主要操作系统开发应用程序的机会。然而,Electron的未来发展还不确定。Electron项目由GitHub运行,而GitHub现在是Microsoft的子公司。它是三个框架中的最新框架,仍处于初始阶段。它缺少本机IDE,为企业提供了选择的余地,但也消除了一些便利,例如集成编译和包含测试库。与其他框架相比,使用Electron开发内部工具的企业将度过更艰难的学习曲线。
让我们看一下每个框架。
Delphi
自1995年以来,Delphi就一直在成长,成熟和扩展。它的发展保持了向后兼容性,以至于可以将1995年的应用程序移植到当前的Delphi版本中,而无需进行任何改动。全面的文档帮助维护,并且完整的支持团队可提供升级,迁移或故障排除帮助。在撰写本文时,最新版本的Delphi已在2020年9月2日发布的RAD Studio 10.4.1 Sydney中提供。想要了解更多信息吗?查看许多Delphi版本的发行说明。
对于编程语言时间轴的某些情况,C ++于1983年问世,Python于1991年问世,Java于1995年问世,PHP于1995年问世,JavaScript于1995年问世,Delphi于1995年问世。1995年是诞生之年。如您所见,其中有很多这些编程语言。Delphi Anniversary网站包含1995年至今的Delphi发布时间表。这是过去25年发行时间表的摘录。
DELPHI 1 – 1995年2月14日
16位Windows 3.1支持,Visual Two-Way工具,组件/ VCL,通过BDE和SQL链接支持数据库,在设计时实时运行数据库数据
DELPHI 2(1996)
32位Windows 95支持,数据库网格,OLE自动化,可视窗体表单继承,长字符串,随附的16位Delphi 1
DELPHI 3(1997)
接口(基于COM),代码洞察,组件模板,DLL调试,WebBroker,ActiveForm,组件包,MIDAS多层体系结构
DELPHI 4(1998)
对接,锚定和约束,方法重载,动态数组,Windows 98支持
DELPHI 5(1999)
桌面布局,框架,XML支持,DBGo for ADO,语言翻译
DELPHI 6(2001)
结构窗口,SOAP Web服务,dbExpress,BizSnap,WebSnap,DataSnap
DELPHI 7(2002)
Web应用程序开发,Windows XP主题
DELPHI 8(2003)
.NET支持
DELPHI 2005(2004)
多单元名称空间,Error Insight,“历史记录”选项卡,用于..in,函数内联,启用主题的IDE,重构,使用中的通配符语句,数据浏览器,集成单元测试
DELPHI 2006(2005)
操作符重载,静态方法和属性,设计器准则,窗体定位器视图,实时代码模板,块完成,行号,更改栏,同步编辑,代码折叠和方法导航,调试工具提示,可搜索工具面板,FastMM内存管理器,对MySQL的支持,dbExpress,TTrayIcon,TFlowPanel,TGridPanel中的Unicode支持
DELPHI 2007(2006)
MS Build,Build Events,Build Configurations,Windows Vista支持– Glassing,主题化,dbExpress 4 –连接池,委托驱动程序,CPU查看器窗口,FastCode增强,IntraWeb / AJAX支持,欢迎页面,英语,法语,德语的Sim-ship ,日语
DELPHI 2009(2008)
Unicode,泛型,匿名方法,功能区控件,DataSnap,构建配置,类资源管理器,类型库编辑器窗口,PNG支持
DELPHI 2010(2009)
属性,增强的RTTI,Direct2D画布,Windows 7支持,触摸/手势,源代码格式化程序,特定于线程的断点,调试器可视化程序,用于文件,路径和目录的IOUtils单元,源代码审核和度量标准,后台编译,MIDAS的源代码。动态链接库
DELPHI XE(2010年)
正则表达式库,Subversion集成,dbExpress –过滤器,身份验证,代理生成,JavaScript框架,REST支持,Indy WebBroker,云– Amazon EC2,Microsoft Azure,构建组,调试器中的命名线程,命令行审核,指标和文档生成
DELPHI XE2(2011年)
64位Windows,Mac OSX,FireMonkey,实时绑定– FireMonkey和VCL,VCL样式,单元作用域名称,平台助手,DataSnap –用于移动设备的连接器,Cloud API,HTTPS支持,TCP监视,对ODBC驱动程序的dbExpress支持,部署向导。
DELPHI XE3(2012年)
适用于Windows 8、7,Vista和XP的Metropolis UI,FM控制,触摸/手势,布局和锚点,对位图样式的FM支持,FM 3D组件的TMaterial源,FM音频/视频,对传感器设备的VCL / FM支持,FM位置传感器组件,虚拟键盘支持,DirectX 10支持
DELPHI XE4(2013年4月)
iOS支持–设备,模拟器,iOS应用商店,对标准和视网膜显示屏的iOS支持,iOS样式,视网膜样式,虚拟键盘,移动表单设计器,TWebBrowser组件,所有TObject类的iOS ARC(自动引用计数),平台服务,通知,位置,运动和方向传感器组件,TListView组件,Mac OSX全屏支持,iOS设备的Deployment Manager,FireDAC通用数据访问组件,InterBase – IBLite和IBToGo
DELPHI XE5(2013年9月)
Android支持–设备和模拟器。操作系统版本:Jelly Bean,Ice Cream Sandwich和Gingerbread,通知组件,iOS 7样式支持,移动设备的可配置表单设计器,Android设备的Deployment Manager,REST Services客户端访问和身份验证组件,Android对所有XE4 FM的支持和上面列出的数据库功能
DELPHI XE6(2014年4月)
Windows 7和8.1样式,基于云的RESTful WEB服务,FireDAC与更多数据库兼容,完全集成的InterBase支持
DELPHI XE7(2014年9月)
FireMonkey多设备应用程序支持台式机和移动平台,适用于Windows,Mac,Android和iOS的IBLite嵌入式数据库,多显示器支持,多点触控支持和手势更改,适用于Android的全屏沉浸模式,FireMonkey支持下拉菜单。 iOS和Android上的TListView的“刷新”功能,FireMonkey保存状态功能
DELPHI XE8(2015年4月)
GetIt软件包管理器,FireDAC改进,新的Embarcadero社区工具栏,iOS上的TListView,TSwitch,TMemo,TCalendar,TMultiView和TEdit的本地表示,交互式地图,媒体库的新选项,InputQuery现在支持屏蔽输入字段
DELPHI 10'SEATTLE'(2015年8月)
Android后台服务支持,对NoSQL MongoDB数据库的FireDAC支持,对Windows的zOrder支持的FireMonkey控制,用于将其中一个受支持平台上的设备变成“信标”的New TBeaconDevice类,用于位图样式设计器中Windows 10样式的StyleViewer,高-DPI意识和4K监视器支持,Windows 10样式,IDE中对Android服务的支持,对调用WinRT API的支持
DELPHI 10.1'柏林'(2016年4月)
Android 6.0支持,Windows Desktop Bridge支持,iOS和Android地址簿,新的ListView项目设计器,新的CalendarView控件,VCL的QuickEdits,Windows上的高DPI支持,提示属性更改,EMS Apache Server支持,基于GetIt的Web安装程序
DELPHI 10.2'东京'(2017年3月)
对Delphi的64位Linux支持,FireDAC为所有支持Linux的DBMS提供Linux支持,对MariaDB支持(v5.5),对v5.7的MySQL支持,对直接I / O的Firebird支持,对FMX的QuickEdits,新的VCL控件适用于Windows 10,更新的IDE外观(深色主题),随附的RAD服务器部署许可证
DELPHI 10.3'RIO'(2018年11月)
适用于Win32的C ++ 17,新的Delphi语言功能,FireMonkey Android zOrder,本机控件和API级别26,Windows 10,VCL和HighDPI改进,广泛的IDE UI现代化,RAD Server体系结构扩展,质量和性能改进
DELPHI 10.3.1'RIO'(2019年2月)
扩展了对iOS 12和iPhone X系列设备的支持。RAD服务器控制台UI重新设计并迁移到Ext JS框架(可通过GetIt获得)。改进了对Firebird 3.0.4和嵌入式Firebird的FireDAC支持。Windows上的HTTP和SOAP客户端库增强。两个新的IDE生产力工具:书签和导航器。15种新的自定义VCL Windows和多设备FireMonkey样式。
DELPHI 10.3.2'RIO'(2019年7月)
Delphi macOS 64位,用于Windows 64位的C ++ 17,C ++ LSP代码洞察性改进,RAD服务器向导和部署改进,增强的Firebase Android支持,Delphi Linux客户端应用程序支持
DELPHI 10.3.3'RIO'(2019年11月)
Delphi Android 64位支持,iOS 13和macOS Catalina(Delphi)支持,RAD Server Docker部署,Enterprise&Architect Edition中的企业连接器
DELPHI 10.4 悉尼(2020年5月)
显着增强了对高性能本机Windows的支持,通过快速完成代码,通过托管记录加快了代码执行速度,在现代多核CPU上增强了并行任务,提高了生产力,超过1000项质量和性能增强等等。
DELPHI 10.4.1 悉尼(2020年9月)
RAD Studio 10.4.1非常注重IDE,Delphi Code Insight(LSP),并行库,SOAP&XML,C ++工具链,FireMonkey,VCL,Delphi编译器和iOS部署的质量改进。
WPF .NET框架
WPF于2006年发布,已经与.NET框架一起开发。它由Microsoft在2018年开源,并提供了一些路线图,表明社区在不久的将来的参与和增长。.NET的重大更改以及Microsoft不断变化的设计决策都会影响WPF的长期发展可行性。根据微软的说法,WPF .NET Framework 4.8是.NET Framework的最后版本,已于2019年4月18日发布。
WPF是2006年在.NET Framework 3.0中引入的。根据CodeProject网站上的一篇文章,此表中列出了WPF版本和增强功能:
WPF版本 | 释放(YYYY-MM) | .NET版本 | Visual Studio版本 | 主要特点 |
---|---|---|---|---|
3.0 | 2006-11 | 3.0 | 不适用 | 初始发行。 WPF的开发也可以使用VS 2005(2005年11月发布)完成,几乎没有增加。 |
3.5 | 2007-11 | 3.5 | VS 2008 | 更改和改进: 应用程序模型,数据绑定,控件,文档,注释和3-D UI元素。 |
3.5 SP1 | 2008-08 | 3.5 SP1 | 不适用 | 本机启动屏幕支持,新的WebBrowser控件,DirectX像素着色器支持。 更快的启动时间并提高了位图效果的性能。 |
4.0 | 2010-04 | 4.0 | VS 2010 | 新控件:Calendar,DataGrid和DatePicker。 多点触控和操纵 |
4.5 | 2012-08 | 4.5 | VS 2012 | 新功能区控件 新的INotifyDataErrorInfo接口 |
4.5.1 | 2013-10 | 4.5.1 | VS 2013 | 没有重大变化 |
4.5.2 | 2014-05 | 4.5.2 | 不适用 | 没有重大变化 |
4.6 | 2015-07 | 4.6 | VS 2015 | 透明子窗口支持 HDPI和Touch改进 |
以下摘录自.NET Framework 4.6.1至4.8的Wikipedia .NET Framework版本历史页面。
.NET Framework 4.6.1 – .NET Framework 4.6.1的发行版于2015年11月30日宣布。此版本需要Windows 7 SP1或更高版本。新功能和API包括:
.NET Framework 4.6.2 – .NET Framework 4.6.2的预览版于2016年3月30日发布。它于2016年8月2日发布。此版本需要Windows 7 SP1或更高版本。
.NET Framework 4.7 – 2017年4月5日,Microsoft宣布将.NET Framework 4.7集成到Windows 10 Creators Update中,承诺将为其他Windows版本提供独立的安装程序。此日期发布了Visual Studio 2017的更新,以添加对定位.NET Framework 4.7的支持。承诺的Windows 7及更高版本的独立安装程序已于2017年5月2日发布,但软件包中未包含先决条件。
.NET Framework 4.7.1 – .NET Framework 4.7.1于2017年10月17日发布。在修复和新功能中,它纠正了d3dcompiler依赖性问题。它也增加了与.NET Standard 2.0的兼容性。
.NET Framework 4.7.2 – .NET Framework 4.7.2于2018年4月30日发布。更改包括对ASP.NET,BCL,CLR,ClickOnce,网络,SQL,WCF,Windows窗体,工作流和WPF的改进。此版本包含在Server 2019中。
.NET Framework 4.8 – .NET Framework 4.8已于2019年4月18日发布。它是.NET Framework的最终版本,所有将来的工作都将进入.NET Core平台,最终将成为.NET 5及更高版本。此版本包括从.NET Core 2.1移植的JIT增强,针对WPF应用程序的High DPI增强,可访问性改进,性能更新以及安全性增强。它支持Windows 7,Server 2008 R2,Server 2012、8.1,Server 2012 R2、10,Server 2016和Server 2019,并且还作为Windows容器映像提供。最新版本是4.8.0 Build 3928,于2019年7月25日发布,脱机安装程序大小为111 MB,数字签名日期为2019年7月25日。
-维基百科
Electron
Electron于2013年发布,由GitHub积极开发和维护,并迅速为诸如Apple Silicon等新兴技术提供支持(大约2020年11月)。它缺乏确定2020年构建的Electron应用程序是否可以生存到2030年所需的历史和稳定的寿命。GitHub是Microsoft的子公司。Electron提供了Delphi和WPF的免费替代方案,熟悉了前端开发人员,并提供了跨平台功能,但以IP保护,标准IDE工具和应用程序性能为代价。
根据Electron发布时间表(https://www.electronjs.org/docs/tutorial/electron-timelines),此处是发布。
版 | -beta.1 | 稳定 | 铬 | 节点 |
---|---|---|---|---|
2.0.0 | 2018-02-21 | 2018-05-01 | M61 | v8.9 |
3.0.0 | 2018-06-21 | 2018-09-18 | M66 | v10.2 |
4.0.0 | 2018-10-11 | 2018-12-20 | M69 | v10.11 |
5.0.0 | 2019-01-22 | 2019-04-24 | M73 | v12.0 |
6.0.0 | 2019-05-01 | 2019-07-30 | M76 | v12.4 |
7.0.0 | 2019-08-01 | 2019-10-22 | M78 | v12.8 |
8.0.0 | 2019-10-24 | 2020-02-04 | M80 | v12.13 |
9.0.0 | 2020-02-06 | 2020-05-19 | M83 | v12.14 |
10.0.0 | 2020-05-21 | 2020-08-25 | M85 | v12.16 |
11.0.0 | 2020-08-27 | 2020-11-17 | M87 | v12.18 |
12.0.0 | 2020-11-19 | 2021-03-02 | M89 | v14.x |
Delphi可以一次性购买商业开发许可证,从而提供最放心的长期前景,最佳的知识产权安全和最简单的内部自定义。WPF的进入门槛较低,它提供了更好的可访问性选项,但受到Microsoft .NET的大修影响,更难以自定义,并且生成的软件可以轻松地被反编译。Electron是绝对免费的,可以在三个主要的桌面平台中的每个平台上进行开发,但是通过不确定的长期前景以及依靠公司赞助和社区支持来进行额外开发,可以为这种灵活性带来回报。
准备探索泰山老父Windows桌面框架比较研究白皮书中的所有指标吗?
输入您的电子邮件地址,然后点击发送至收件箱的链接,免费下载完整的Delphi vs. WPF vs. Electron for Windows Desktops白皮书。