RAD Studio Delphi C++ Builder 2020年11月开发路线图PPT:研发Delphi WebAssembly编译器

介绍

Embarcadero RAD Studio产品管理团队会定期更新Delphi,C ++ Builder和RAD Studio的产品开发路线图。您可以在我们的官方路线图博客文章中看到,我们刚刚发布了该路线图的新版本,其中涵盖了我们计划在接下来的12个月中使用的主要功能。除了正式的路线图幻灯片之外,我们还希望通过这篇额外的博客文章提供更多详细信息,信息和见解。您可能会发现打开幻灯片供参考,同时阅读我们在此处提供的扩展信息很有用。

在我们的路线图中,您可以找到我们为2021日历年计划的主要功能。在了解更新后的路线图的细节之前,我们想回顾一下到目前为止已交付的内容。

今年年初,我们发布了10.4 Sydney。10.4版本受到了客户的好评,其中包括我们完全重写的Delphi Code Insight引擎的首次交付,该引擎现在基于Language Server协议体系结构,C ++ Win64的新调试器,可以满足长期的客户需求,以及新的Delphi语言功能,例如自定义托管记录。我们还支持HighDPI监视器和每个控件样式,从而大大扩展了VCL样式的用例。

我们在2020年9月发布了10.4悉尼发行版和10.4.1,主要关注质量和对10.4中提供的功能的进一步改进,特别是新添加的Delphi LSP支持。10.4.1包括800多项质量改进,其中包括针对Embarcadero的Quality Portal中公开报告的问题的500多项质量改进。

在我们详细介绍10.4.2和10.5版本之前,我们想强调一下10.4 / 10.4.1迄今为止是我们最受欢迎的版本之一,与10.3和10.2相比下载量更多。在COVID-19中,这尤其令人印象深刻。我们将成功归功于发布和我们与技术合作伙伴的更多参与,后者继续与我们的团队合作以升级和开发新功能。我们也要感谢您的客户,我们一直以来向产品团队提供的宝贵反馈,包括您希望看到的新增功能以及您希望我们专注于质量的方面以及您的参与在我们的Beta版计划中(这是订阅的好处之一)。

目前,我们正在开发10.4.2版本,计划在2021日历年的第一年发布,并在路线图和此评论性博客文章中进行了详细说明。在发布之前,我们希望邀请RAD Studio,Delphi和C ++ Builder客户进行有效的更新订阅,以加入即将发布版本的Beta测试。10.4.2测试版将是NDA测试版,要求参与者在参与测试之前必须签署我们的保密协议。能够加入测试版并参与在开发周期的早期向产品管理提供反馈是最新订阅的好处之一。

对于10.5,我们计划为Delphi,macOS ARM(基于Apple Silicon CPU)引入一个新的目标平台,围绕IDE HighDPI支持,C ++工具链扩展以及许多其他附加功能和质量增强进行大量工作。请参阅下面的更多细节。  

RAD Studio路线图时间表

在详细了解开发团队正在开发的功能或研究未来的功能之前,让我们看一下即将发布的时间表,如路线图的主幻灯片所示: 

David Millington对10.4.2计划的评论

Delphi代码见解

正如Marco在上面所述,在10.4.1中,我们非常注重质量。这种情况在10.4.2中继续存在,其中一项重要工作是新的Delphi Code Insight(又名Delphi LSP)。10.4.2不仅包括许多修复和调整,而且还包括我们不曾使用的不常用的代码见解功能。包含在初始版本中,但还包括一些新的或显着改进的代码完成功能。例如,我们计划在“继承”上添加ctrl单击,并在“使用”子句中添加返工完成。

C ++代码见解

C ++继续以持续的质量工作为主题,重点放在两个领域。

使用Clang编译器时,对所有C ++客户来说,最引人注目的将是C ++代码完成的完整版本。在10.3中,当我们升级到C ++ 17时,我们不得不替换IDE使用的代码完成技术。自推出以来,我们一直在增强每个发行版中的代码完成能力,以解决特定的代码模式或项目设置可能会导致完成问题的用例。

对于10.4.2,我们决定对C ++的代码完成进行全面检查,以提供客户所需的开发人员生产力。C ++客户应该发现代码完成和导航工作可靠且良好。

我们甚至一直在解决一些更困难的情况,例如在头文件中提供完成(比.cpp文件要难得多)!最终结果应该是您要求我们提供的所有信息。

C ++质量和异常处理

10.4.2中C ++的另一个重要质量关注点是异常处理。

异常处理是一个复杂的领域,需要编译器和RTL之间的紧密互操作才能正常工作。对于异常,有一些通用约定,例如,永远不允许异常越过模块边界(例如,抛出到DLL中但被EXE捕获),但是并非总是遵循这些约定,有时是出于很好的理由。在C ++中,我们需要处理C ++异常,OS异常和SEH,同时不要忘记Delphi的异常处理。

在10.4.2中,我们对异常处理系统进行了大修。随着我们越来越接近发布,我们期待有一篇博客文章详细介绍我们支持的方案。在内部,我们目前看到一些重大改进!

集成开发环境IDE

除了专注于两种语言的代码完成之外,IDE还计划了10.4.2的其他工作。

在10.3版中,我们介绍了当前的两个主题,浅色和深色样式(实际上,深色样式虽然有很大的不同,但在10.2.3中首次引入。这是我们最受欢迎的功能之一。)浅色样式主要是淡蓝。在此版本中,我们添加了第三种样式,该样式使用传统的灰色而不是蓝色作为主要颜色。对于喜欢IDE在2010-XE7时代的外观的人来说,可以将它视为一种复古风格,这是对经典外观的回调。我们还认为,它对于那些需要特殊视力调节的人可能会有用。

我们还计划围绕桌面布局,多显示器布局,表单设计和类似区域进行进一步的质量工作。这包括允许您在打开该表单的代码的同时在表单设计器中设计表单。从反馈中得知,这是使用旧的,没有对接的设计器的最常见原因,我们已在10.4.1中删除了该设计器,我们很高兴让您使用现代设计器在表单单元中进行代码和设计。

最后,我们想增强设置迁移工具,以帮助将RAD Studio设置从一个版本移动到另一个版本(例如从10.3到10.4),并在转移到更新版本(例如从10.4.1到10.4.2)时更好地保留您的配置。 )。我们计划为每种方案添加特定的预设配置,并且除了今天考虑的注册表设置之外,还包括配置文件。

Marco Cantu对10.4.2计划的评论

目标操作系统方面,我们目前专注于改进10.4.x支持的现有平台,而针对10.4.2我们正在致力于两个重点领域。 

首先是我们持续关注Windows作为主要目标的一部分。在Microsoft操作系统上,我们正在密切关注Microsoft当前通过Project Reunion统一WinRT API和传统Win API的方向。Project Reunion(https://github.com/microsoft/ProjectReunion)包含不同的技术,最初的技术是WinUI 3,WebView2和MSIX。WebView2控件是嵌入Edge Chromium的新Windows平台组件。TEdgeBrowser VCL组件在10.4中提供了对此功能的支持。 

第二个构建块将是对我们计划用于10.4.2的MSIX打包格式的支持。MSIX是APPX的后继产品,APPX是RAD Studio IDE桌面桥接器集成中目前提供的目标,适用于Microsoft Store和企业部署。

我们对Windows平台(特别是对VCL应用程序)的改进支持的另一个方面是增加了两个新控件,旨在帮助我们的客户现代化和改进其应用程序的用户体验。我们正在开发新的VCL本机Windows控件,以便您可以为客户提供更现代的UI:

  • 一种是高度优化的虚拟列表视图,它使您可以通过文本和图形的灵活组合来显示大量项目。该控件将宽松地基于现有DBCtrlGrid控件的方法,但是不需要数据源。它将支持使用实时绑定。
  • 我们要添加的另一个新的VCL组件是一个数字输入控件,类似于WinUI NumberBox平台控件。该控件考虑了不同的格式(整数,浮点数,货币值),还包括简单的表达式求值,从而提供了更轻松,更流畅的数字输入。

我们改进的第二部分着眼于当前支持的目标平台。我们计划在RAD Studio 10.4.1推出后与Apple和Google发行的新版本操作系统完全兼容。尽管您今天可以针对这些平台,但仍有一些未解决的问题需要我们正确解决(而不是通过变通办法)。目标是为以下方面提供全面支持:

  • iOS 14和iPadOS 14(Delphi和C ++)
  • macOS 11.0 Big Sur(英特尔)(Delphi)
  • Android 11(Delphi)

质量方面,我们将继续在10.4.2中继续努力提高稳定性,性能和质量(就像我们在10.4.1中所做的那样)。我们计划解决客户报告的问题,并支持产品许多方面的升级。除了David先前列出的工具和库之外,我们特别关注的工具和库还包括:

  • Delphi编译器(适用于所有平台)可提高其健壮性和向后兼容性,但它特别注重于编译器(和链接器)的性能,以减少大型项目的编译时间,并加快LSP引擎的速度(使用编译器分析源代码)。
  • SOAP客户端库和WSDL导入工具一起使用,该工具生成用于与SOAP服务器接口的客户端代码
  • 并行编程库(PPL),从任务,期货和并行for循环方面提供了不同平台和多核CPU线程功能的出色抽象
  • RAD Studio的多层Web服务解决方案部分,对RAD Server和较旧的DataSnap引擎进行了改进,并对HTTP和REST客户端库进行了常规改进。我们还将继续关注我们的Azure和AWS云支持。
  • VCL样式和HighDPI样式将与VCL一起受到更多关注
  • 对于FireMonkey库,我们将继续改进TMemo组件(在平台版本和样式版本中),10.4中引入的Metal GPU库驱动程序以及Android上的返工传感器管理,以为各种Android设备提供更好的支持。

RAD Studio 10.5

供参考,以下是主要路线图幻灯片:

David Millington对10.5计划的评论

用户体验

我们提供了许多很棒的新功能,许多客户都希望将这些功能计划为10.5。

首先,我们计划在IDE中全面支持DPI。VCL现在已经支持了两个版本的高DPI,并且主要使用VCL的RAD Studio IDE现在也将支持高DPI。这样可以确保在所有现代高分辨率屏幕上清晰呈现,包括在不同分辨率和比例的屏幕上移动窗口时。

VCL表单设计器是创建应用程序时使用的关键工具之一。设计师的重点是快速构建一个UI,使其外观接近运行应用程序时的外观,而UI工具仅以文本形式描述UI,并且不提供即时反馈/迭代循环。在10.5中,我们计划通过向设计者添加VCL样式支持来扩展外观元素,使其与应用程序运行时的外观相似,因此,当对任何控件进行样式设置时,您也会在设计器中看到它们的样式。

当您构建跨平台应用程序时,FMX表单设计器同样是关键工具。我们计划提供VCL设计器具有的一些设计工具,例如对齐指南,以确保设计器具有所需的生产力功能。

我们还计划将重点放在IDE的源代码控制集成上,以帮助您的团队进行协作。此外,我们计划对首次运行IDE的方式进行一些增强,以帮助那些不熟悉Delphi和C ++ Builder的人上手。

最后,许多客户在专用的构建服务器上使用Delphi或C ++ Builder。除了源代码控制,测试和类似做法外,最好的做法是在特定计算机或VM上进行正式构建。当前,要为构建服务器安装RAD,您需要安装完整的IDE –但这不是必需的,因为构建仅需要命令行工具。我们计划专门针对构建服务器的安装程序方案。

C ++ Builder

在10.4.0中,我们为C ++ Win64引入了一个新的调试器。这满足了客户的共同要求,特别是因为我们包含了“格式化程序”,这是一种轻松评估STL容器或任何数据结构(包括您自己的数据)内容的方法。这是一个全新的调试器,而不是我们先前使用的调试器的新版本。在10.5中,我们计划对另一个核心工具链接器进行类似的新替换。像调试器一样,这将用于Win64。

您会在这里注意到对64位Windows的关注。许多客户都在使用Clang来定位Win64,我们希望确保我们的工具与经典编译器所使用的工具处于同等水平或更好。另外,许多人开始专门研究64位,升级了32位应用程序,而新应用程序仅是64位。

Visual Assist是Visual C ++惊人的生产力扩展,可提供代码完成,重构等功能。我们一直在研究将其集成到C ++ Builder中的各种方法,并计划在10.5中做到这一点。

最后,我们还计划改善Delphi / C ++互操作性。能够使用两种语言极大地提高了生产率,并且是使用C ++ Builder或RAD Studio的主要原因之一,而这是改善这种集成的工作。它应该提供与RTL功能的更平滑的集成。

Delphi调试器

在10.4中,我们为基于LLDB的C ++ Win64(如上所述)引入了一个全新的调试器。最终,我们的目标是在所有平台上使用相同的调试器–今天,我们混合使用了不同的调试器。这样做的关键是在LLDB中添加Delphi语言前端,这使您可以在“评估/修改”对话框中评估Delphi语法。我们计划在10.5中引入第一个使用LLDB的平台以及这个新的前端。

Marco Cantu对10.5计划的评论

平台类

关于Windows平台,如前所述,我们计划为Microsoft Project Reunion的各种技术提供支持。特别是,在RAD Studio 10.5版本中,我们期待通过WinUI 3库集成对现代Windows UX的支持。根据Microsoft对该库的路线图,应该有可能在基于经典API的本机应用程序中使用该库的组件,并混合使用不同类型的表单和控件。实际的细节将取决于库在与本机应用程序集成方面将提供什么,但是我们当前的计划是将该库与新的特定控件集成到VCL中。

说到平台,我们想为Delphi应用程序添加一个新目标:一个新的编译器,用于基于ARM的macOS操作系统版本,并带有由Apple Silicon CPU驱动的Apple硬件。您可以运行英特尔应用程序,但目标是为新一代Mac提供本机ARM应用程序。

这将是Delphi的重要扩展,包括新的编译器,对运行时库和各种高级库的更新。我们还计划扩展所有平台的Delphi语言语法,并提高编译器在Windows上生成的数学处理代码的性能,从而使应用程序在数字处理方面更快。

我们还将继续致力于整体产品质量,并计划选择一些子系统以进行关注,这是我们通过评估客户对当前版本和即将进行的更新的反馈来做出的决定。

概要

我们为即将发布的Delphi,C ++ Builder和RAD Studio制定了一些伟大的计划!从激动人心的更改到两种语言的代码完成,再到高DPI IDE,在编码和设计时提高生产率,Windows UI和新的VCL组件,Delphi调试,对Delphi的Apple Silicon(M1)支持,对编译器,Delphi和C ++ RTL,SOAP,多层等等,是C ++的新链接器-即将发布的版本包含一些非常令人兴奋的工作。我们等不及要把它们交给您!

注意: 这些计划和路线图代表了我们截至目前的意图,但是我们的发展计划和优先级可能会发生变化。因此,我们无法提供任何承诺或其他形式的保证,即我们将最终按计划的时间表或所描述的顺序或根本不发布任何或所有上述产品。这些开发进度表或“产品路线图”的一般说明不应被解释或解释为任何形式的承诺,我们客户对升级,更新,增强和其他维护版本的权利仅在适用的软件许可协议中阐明。 。、

 

附录:欢迎加入Delphi开发局QQ群:32422310  Delphi控件源码下载网站  

完整的开发路线图PPT

 

 

需要先安装Patch1。 Patch 2 for RAD Studio 10.4 now available This patch addresses a number of issues in RAD Studio 10.4, pertaining to Delphi Compiler, the RAD Studio IDE in general and the new LSP-based Code Insight in particular, plus C++ Builder Android exceptions and some debugger issues. The installation of this patch requires a prior installation of Patch #1 (separately available on GetIt and in the download portal). Installing this patch is recommended for all RAD Studio 10.4 customers. Note that this patch is fairly large to download (around 190 MB). The patch includes detailed installation instructions as part of the Readme. Please read the steps carefully (or the corresponding steps in this blog post), as the GetIt download does not install the patch automatically. You must follow the instructions in order to install. Just using GetIt is not enough. List of Customer Reported Issues Addressed in 10.4 Patch 2 RAD Studio 10.4 Patch #2 addresses the following issues reported by customer on Embarcadero Quality Portal (https://quality.embarcadero.com): RSP-29628 VCL Grids bug RSP-29560 [REGRESSION] Misalignment in TStringGrid, StretchDraw method in OnDrawCell RSP-29412 Compiler generates incorrect code for if-then RSP-29402 Delphi 10.4 TStringGrid.OnDrawCell bug RSP-29374 Wrong rect coords in TStringGridDrawCell, so image are drawn at wrong position RSP-29347 [DelphiLSP] IDE Crashes when view form as text is selected and running LSP server RSP-29310 Internal error L891 when linking because of complex types based on records with class var RSP-29299 CODEGEN bug in managed fields initialization, associated with new management operators. RSP-29271 [DelphiLSP] Code Insight adds unneeded () when changing procedures/functions RSP-29256 Compiler generates wrong code for template function RSP-29227 Incorrect property value obtained from the record RSP-29226 Access violation with working code under 10.2 RSP-29218 compiling static library under Android error E4620 processing resource .fmx -2 raised RSP-29172 Access Violation when opening License Manager RSP-29142 GoTo statements not working RSP-29136 Dialog constantly pops up during debugging RSP-29129 iOS App simply crashes with a TWebBrowser on it. RSP-29127 Compiler internal error if you ignore the result of a function that returns a generic record RSP-29124 ICE E1812 RSP-28989 License Manager has access violation error when i click on Workstation Licenses RSP-28887 Space does not finish code completion RSP-28857 Default(T) generates bad code for managed record RSP-28821 [Regression] TStringGrid.OnDrawCell parameter Rect contains wrong values RSP-28808 Project options dialog page "Delphi Compiler" is not populated when opening the dialog RSP-28796 RVO for M-records: initialisation of local variables RSP-28761 [REGRESSION] E2154 Type 'T' needs finalization - not allowed in variant record RSP-28737 Compiler error when inlining new Bit Counting Standard Functions RSP-28735 Managed Records Causing Internal Compiler Error RSP-28717 Delphi Package fails to compile RSP-28701 Bind visually on TDBGRID kills the IDE RSP-28669 [BadCG] Value M-record parameters: improper AddRefRecord RSP-28659 RVO for M-records: assignment to local variables RSP-28616 [BadCG] Operator Assign should not allow non-default calling conventions RSP-28615 [BadCG] In the absence of Initialize, finalisation is not guaranteed for local variables RSP-28552 Poor code generation for local managed record variables RSP-28499 Options - Translation tools - Font - Corrupted? RSP-28476 LSP ErrorInsight in Structure Pane only shows one keystroke after editor RSP-28400 [BadCG] Operator Assign is not always invoked for fields RSP-28372 [Regression] Bad codegen in function returning generic type RSP-27268 C++ Builder 10.3.3 Android Exceptions RSP-27251 Internal error when trying to inline with optimization on RSP-24079 Package version is broken RSP-23403 Build for linux 64 error RSP-23024 Record helper class constructor gives senseless compiler warning RSP-22318 Pointer type check missed when object field is a dynarray RSP-21554 Compiler generates incorrect code for parameterized record type RSP-21248 Const dynamic array unexpectedly contains uninitialized data RSP-20372 A generic "reference to function" will only match the first of several overloaded functions RSP-19714 Win32 compiler - Memory corruption with array helpers RSP-18241 *.c source files, added to C++ project, got added to DeploymentManager file list RSP-18148 AV in TList.Remove (64-bit compiler only)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值