RAD Studio 11.2详解其务实改进(Delphi & C++ Builder)-Alexandria
目录
RAD Studio 11.2详解其务实改进(Delphi & C++ Builder)-Alexandria
RAD Studio 11.2:iOS模拟器、质量、功能性修饰符
11.2: IDE - tab state visualization选项卡状态可视化
11.2: 完全集成并支持Markdown and HTML
11.2: Delphi: 查看编辑器中的“非活动编译”的代码
11.2: C++ CodeInsight (incl from 11.1.5)
11.2: CPU Disassembly View调试时使用CPU拆分视图
三、官方公布了C++和Delphi的编译器和工具方面的性能和改进
11.2版本---RAD Server后端服务开发 和 关于HTTP/REST通讯
本文为博主针对官方的原创技术翻译,未经许可不得转载
一、官方关于本次release的版本改进说明
代号为Alexandria的快速可视化应用开发IDE环境历经11.0、11.1的过渡,近期迎来了11.2的正式Release版本,这个版本按惯例,真正代表11这个版本。
愿景
● Microsoft发布的Windows 11
○ 全神贯注,选择“11”的关键原因
○ 新开发平台Windows App SDK
又名:( aka 重整项目 )
● 转换到桌面上的ARM
○ 由苹果主导,采用macOS
○ 此外,ARM在移动平台上占据主导地位
● 4K上的开发者
○ 开发人员通常使用高分辨率和多分屏
○ 最终用户也在增长
再次介绍“RAD Studio”的优势
● 开发人员生产力:“搬运式的复用”是一个特性。使用Delphi和C++Builder使得开发机构交付订单和市场需求的速度提高了5倍有余。
● 快速的“原生”应用程序:操作系统本机的原生编译器,赋能App应用应有的原生速度(没有任何臃肿)。
● 数据库访问:Delphi最原始的关键设计之一,就是将数据库访问完全集成到RAD Studio之中。
● 强大的C++库:数百个C++库,可以在C++Builder中使用,或者在RAD Studio中的Delphi下使用。
● 操作系统平台的API访问:可以直接访问所有跨平台的API。
● 可视化设计大师:只需集中精力在RAD Studio集成开发环境中去发挥你的“设计”潜能,完全可以忘记它背后的“UI原型”。
● 强化社区:技术合作伙伴众多,MVP、培训师、作者和开发人员
● 向后兼容:保护投资及代码的兼容性。
RAD Studio 11.0回顾
● 重点关注IDE
○ 启用IDE高DPI和高DPI的表单设计器
○ VCL可视化的Style样式设计器;FMX改进了单窗口设计器和多窗口设计/代码的可视化切换。
○ Visual Studio代码LSP语言服务协议的本机支持:智能代码补全
○ LSP质量和新的C++代码格式化程序
○ 安装程序最小化改进
○ 新建了欢迎页面
● 库的改进
○ Delphi RTL运行时刻库的质量改进:TZipFile文件压缩解压,64位数据结构,低功耗蓝牙
○ VCL可视化设计的现代化
○ Windows和桌面应用中让FMX更好支持的高DPI集成,包括WebView 2
○ Android API 30支持和相关工作
● Delphi和C++的编译器及工具链
○ C++质量级别:RTTI(“运行时的类型信息”组件化);异常处理
○ Delphi macOS 64 ARM(M1)编译器和工具链
○ Delphi语言本身的一些细微改进
● Delphi下的其他平台支持
○ 支持WSL 2(Windows Subsystem for Linux---Windows下的Linux子系统)
○ 包括Windows 11上的WSLg(Linux GUI---Win11中的Linux图形用户界面)
● 关注质量和改进
○ 可用性、性能、稳定性
○ 一些新的IDE功能小工具
● 平台和工具
○ 官方支持Windows 11、macOS 12
○ 官方支持Monterey、iOS 15和Android 12
● 更好的代码洞察力和LSP
○ 同时支持两种背景语言:Delphi和C++
● 类库
○ 性能和质量改进以及Delphi RTL、数据库库、VCL、FireMonkey部分功能增强
RAD Studio 11.1.5 (C++) 的回顾
● C++仅发布了Code Insight和LSP
○ 性能、解决质量问题等
○ 关于保存项目的其他相关改进
RAD Studio 11.2:iOS模拟器、质量、功能性修饰符
● 关注质量和改进
○ IDE集成开发环境和Designer设计器的高DPI支持
○ 可用性、“小部件”的质量
● IDE改进
○ CPU视图语法高亮
○ 支持Markdown语法及嵌入
○ 编辑器选项卡改进
○ 字体和样式改进
● Code Insight代码洞察感知 / Delphi LSP语言服务协议的本机支持
○ 重新编写的Help Insight帮助洞察感知(并再次重新使用XSLT)
○ 标记非活动代码和颜色常量
○ 改进了11.1.5中的C++代码洞察力
● 平台和工具
○ Delphi下支持最新的iOS模拟器
○ 支持用于Linux的LLDB
○ Android目标级别支持到:API 32
○ 远程调试:支持Win64位的C++了
● 类库
○ VCL可视化组件库:改进了WebView2
○ 一般性的VCL和FMX质量改进
○ 强化了ZLib、HTTP/REST
○ RAD Server:快速开发后端服务器
○ 对内建的FireDAC数据访问组件的重新查找、更新的驱动程序和FD监视器/FD资源管理器的改进
二、官方的部分细节
RAD Studio IDE
11.0 IDE设计器 VS 11.1 IDE设计器
● 高DPI的IDE
● 所有窗口和编辑器中的字体放大9x后,超级清晰
● 支持高DPI的图形化的表单设计器
● VCL Designer中:多种活动样式
而11.2的 IDE设计器
● 高DPI质量改进
○ 多区域、多窗口:整体质量
○ VCL Designer有许多高DPI修复
● VCL Designer默认使用样式
○ 在11.0中,在设计器,一次包含多个样式,就像应用程序一样
○ 在11.2中,特殊设计样式可在设计时使用,默认情况下处于启用状态
设计时,所见:
运行时,即所得:
11.2: IDE - tab state visualization选项卡状态可视化
● 某些选项卡与其他选项卡不同:
○ 有些具有不同的非代码功能,例如欢迎页面、类型库编辑器、源代码管理选项卡
○ 调试时打开了一些代码
○ 某些代码是只读的
● 过去,我们在选项卡中用点表示修改过的代码
○ 在11.2中,我们还为上述所有内容添加了符号。有助于视觉导航
● 此外,关闭选项卡的图形符号“x”现在是可配置的:完全关闭,在活动选项卡上,或在所有选项卡上
● 要设置选项卡的颜色,使用INTACustomEditorView280.GetTabColor(获取标签颜色)
○ 返回要使用的TColor
○ clNone表示IDE的默认颜色
○ “淡出”的非活动选项卡版本为由IDE自动生成
11.2: 完全集成并支持Markdown and HTML
● Markdown是一种常见的可阅读的“标记”格式
● 大多数Github自述都是Markdown
● IDE充分支持Markdown文档,格式化:标题、链接、图像、代码等
● 返回富HTML文档也支持
● 在代码编辑器中可编辑HTML和MD
● 项目自述可以是Markdown
● IDE中不再有Internet Explorer!纯VCL可视化的代码实现
11.2: HelpInsight实时帮助洞察感知源代码
● 回归当年的XSLT技术
○ 实际上,Help Insight还是11.0之前的版本
○ 完整的XmlDoc信息:代码中完全解析函数或过程的全路径命名空间、参数及其注释
○ 可以通过编辑XSLT文件(如Documentation Insight)和CSS进行自定义
● 并可导航到类库或API的源码链接
11.2: Markdown and HTML / HelpInsight三者整合
● 使用Delphi HTMLComponents控件,将标记自动转换为HTML
○ 这意味着不再有Internet Explorer
● 要自定义Markdown:
○ 编辑对象Repos\Markdown.css
● 要自定义HelpInsight:
○ 编辑ObjRepos\HelpInsight.css(外观)
○ 编辑ObjRepos\HelpInsight.xslt(内容)
■ 使用HTML格式(而不想使用Markdown格式)
■ 你可以切换的任意内容,从XmlDoc到HTML
11.2: Markdown and HTML:未记录信息
○ CSS文件可以引用IDE调色板:
颜色:ide_red;
使用ide_blue、ide_red、ide_yellow、ide_green、ide_violet ,
ide_gray和ide_range:不同的值取决于操作系统的当前主题
● Markdown标记可以引用IDE图像列表图像,例如:
产品图标、新工具栏图像等,通过_ide/path
! [ ](_代码/个性/RadStudio@64)
! [ ](_代码/个性/RadStudio@2.5x)
○ 名称不能保证稳定,但“不太可能”更改。
使用RTTI的Spelunk图像名称
○ 或外壳图标:
! [ ](对话框/警告)
(Delphi HTMLComponents的组件功能)
11.2: Delphi: 查看编辑器中的“非活动编译”的代码
● 一个常见的客户请求(customer request)
● 并非所有代码都已编译:
用预编译指令 { $IFDEF…} 来识别代码是否需要编译。
● 未编译的代码 = 非活动的代码
现在,非活动代码将以褪色的半透明颜色绘制
比如上图,预编译“ARC”自动引用计数,和不对代码进行ARC预编译,均“可控”。
使得内存更加安全和高效。
● 其他标记,如匹配大括号或选择(braces or selections),仍以非活动代码的方式来绘制
-而且以颜色不同区别
● 这可以关闭或在注册表中编辑透明度
11.2: C++ CodeInsight (incl from 11.1.5)
● 从11.1.5版本开始,仅用C++进行代码感知,所有这些都均涵盖到到11.2中
● 改进:保存项目和文件夹
● 性能(20秒以内的测试结果表明: 2秒以内即可完成显示编辑、调试时的下拉列表)
● 改进的导航(ctrl + click):代码感知时,可以显示多个源码链接的目标位置
● 第三个索引选项:索引所有文件项目
● 许多质量修复,包括经典版
○ 我们强烈建议您阅读:“为项目配置C++的Code Insight设置”
■ Code Insight参考>'C++”索引帮助中的“LSP Behaviour”
11.2: CPU Disassembly View调试时使用CPU拆分视图
● 单步执行汇编代码时,语法高亮有助于阅读
● 在此过程中匹配编辑器或IDE的样式颜色
11.2: 新的欢迎页面
● 11.1:新的本地欢迎页面,基于VCL且可客制化。
布局和内容完全可定制:显示内容和你想要的地方(提供了“插件”式的源代码)
● 11.2新增:GetIt窗格新增,显示最近添加的程序包
○ 查看新功能–发现软件包
11.2:改进了GetIt
● 语言过滤器:仅搜索Delphi或C++
● 本地程序包(带有更新订阅)
○ 下载软件包,在计算机上离线安装
○ 尝试创建包
○ 简化团队中多个开发人员对库的安装
● 将等待外部安装程序
11.x中的其他关于IDE的增强
● “新建项目”对话框:可用于每个项目的差异化平台
○ 还使用了:TControlList 并 提供其他视图
● 11.2:文件>新建,现在显示了标准的“数据模块”( Data Module )
● 消息视图:错误、警告,提示按颜色区分(颜色可定制)
● “编译”对话框显示了:平台和构建配置
11.2 ToolsAPI 和三方支持
● bds.exe主程序的命令行标识:查询当前SKU,包括试用版或CE版、已安装平台和已安装个性
○ 对构建脚本有用:验证安装
○ 第三方组件安装程序的密钥
● 上述工具API,并且提供了编辑器选项卡颜色
● 七个ToolsAPI文件现在有XmlDoc,意思是“ 对编程帮助的感知 ”
○ 我们重视工具API,并鼓励您使用它,编写插件并挂载
11.2:有帮助的一些小部件
● RAD Studio 11.2到处都有小的调整,提高质量
● 上面已经提到:
○ 编辑器选项卡、颜色和调试时也可打开
○ 文件 > 新建 > 数据模块
○ VCL设计师-高DPI改进:(控制大小、复选框和单选框等)
○ 只读单元,以“挂锁”的图标来单独标识
● 尚未提及的有:
○ RAD服务器,可查看IP地址等等;
○ 项目双击就能开干;
○ 重新打开列表时,始终保持最新状态;
○ 编译和文件缓存对话框:格式化计数,适配语言环境,更易于阅读;
○ IDE性能:大大改进了当绘图或移动窗口的性能;UI布局、控件呈现、控件大小等的数量改进;IDE样式更好地显示默认按钮;IDE中的字体大小支持:在“选项”对话框中即可进行设置(而非注册表手动方式)并支持多窗口;
○ 自定义样式:可以在选项中设置IDE中的支持(任何VCL样式)
○ Delphi代码完成显示:颜色常量及其对应的颜色…...
三、官方公布了C++和Delphi的编译器和工具方面的性能和改进
iOS模拟器支持
● 11.2中Delphi对目标平台有了新的描述及常量标识
● 模拟器对于快速迭代非常有用:
○ 部署到模拟器并调试比真机快得多
● 苹果向ARM全面转型
设备,包括在Mac上运行iOS应用程序
● 在11.2中,Apple设备M系列CPU上的模拟器可直接运行Delphi的iOS应用程序
Delphi 编译器质量聚焦
● 11.x功能和所有热修复补丁
○ 包括11.1补丁1中的AtomicCmpExchange(原子组件交换)[128]修复程序;'质量集合LLVM编译器,以及对Win64汇编指令的改进的安全标志
● ASLR支持通过“高负载地址空间”布局扩展Win64中的随机数(HE-ASLR)
○ 良好的附加安全功能。某些工业领域通常需要DEP/NX、ASLR(11.1中也具备该功能)和HEASLR
● 如果将句柄转换为int,则可能会出现问题:不要假定句柄为32位(尽管Windows标准很常见,但并非所有的都是)。
● 所有的软件包都支持这些功能
C++ toolchain工具链: 质量聚焦
● 所有这些关于C++工作:都已涵盖到了11.1.5版本
○ 如前所述,代码完成和导航
● STL io streams输入输出的STL性能:比11.1版提升了25%,其他质量改善:
改进:来自Delphi的集成记录助手( integrated record helpers ),延迟加载
改进:链接器修复、数据对齐IDE <===> bcc32c等
● 链接器支持ASLR、DEP/NX和TSAWARE标志(但不超过4GB启动地址)C的LLDB++
● 支持Win64的远程调试
关于Android的改进
● 11.2支持Android API到级别32
○ 从2022年8月开始,Play Store要求31级新提交,2022.11月必须更新
○ 更新targetSdkVersion、AndroidManifest、xml模板等
● JDK目前版本为v11
○ 如果Eclipse Adoptium JDK可用,就可用
● 本地通知的改进
● 新增许多“用户权限”配置
● 还可创建PKCS12密钥库
LLDB 升级
LLDB是一个有着REPL 复制的特性和C++, Python插件的开源高性能调试器,它是Mac OS X上Xcode的默认调试器,支持在桌面和iOS真机和模拟器上进行调试。
LLDB绑定在Xcode 内部,存在于主窗口底部的控制台中,可以在需要 时暂停程序,查看变量的值,执行特定的指令,并按指定的步骤来操作程序的进展。
■ 目标:向LLDB添加Delphi语言支持
■ 因此可以在Delphi中直接计算表达式
■ 代码评估、包容性编辑、监视等,并“跨平台”迁移到LLDB
故而实现了:
● 将多个调试器减少为一个;
● 在所有平台上提供一致的功能;
● 使用现代化的调试器
在过去的发布网络研讨会上,曾经提到过(一些)未来版本,请关注LLDB的进展
●11.2扩展了Delphi支持
○ 对集合set表达式的基本处理
○ 动态数组,“nil”,指针强制转换,空字符串和基于十六进制字符的字符串
●11.2: 将Linux 64 迁升到 LLDB
需要至少Python 3,若有疑问,请参阅文档。
● 巨大变革:
LLDB支持的目标平台(64位平台):
● C++ Win64 ● Delphi macOS ARM 64 ● Delphi macOS Intel 64 ● Delphi Android 64 ● Delphi iOS 64 ● C++ iOS 64 ● Delphi Linux 64
LLDB不再支持(32位平台):
● Delphi and C++ Android 32 ● Delphi Windows 64 ● Delphi and C++ Windows 32
四、官方公布了RAD 11.1类库的质量与提升
11.2 “RTL运行时刻库”质量聚焦
● ZLib更新至1.1.12,以解决最近修补的漏洞,以及其他zip质量(存储文件、Linux上的符号链接、处理截断数据,等等)和性能
● 新增:TProxySburangeStream类:任何其他流的子范围(类似于以前的私有TStoredStream)
● PCRE支持JIT及时化,性能卓越
○ 并可以访问TPerlRegEx.Study正则学习
● RTTI运行时类型信息的质量
● 系统SysUtils、StrToFloatDef不再更改数字类型的异常掩码
● 其它几项性能改进
11.2版本---VCL桌面平台可视化组件库框架的质量聚焦
● 框架内的TNumberBox、TDateTimePicker、CardPanel-s解决了许多问题,TButton/bsSplitButton -> PopupComponent更新,解决了:CardPanel-s、TListView中覆盖OwnerData、禁用的Rich Edit特性、气球提示问题等
● TWebBrowser、EdgeUserDataFolder,用于在自定义位置存储cookie、缓存等
● TWebBrowser用于加载自定义WebView2的EdgeBrowserExecutableFolder
11.2版本---FMX移动平台可视化组件库框架的质量聚焦
● 支持带深色图标的iOS状态栏。
● TPathData处理和渲染,在质量和性能方面,包括二次Bézier曲线命令
和其他转换。
● 提高了GPU画布上TPath的渲染速度
● 许多其他质量改进,包括以下方面:
○ TBufferedLayout对包含的控件样式的更新进行有效的反应
○ Windows隐私和TVideoCaptureDevice交互良好,及其他Windows摄像头质量改善
○ TWebBrowser和Edge质量
○ StyleBook模板样式本:Windows 64下质量改进
○ 具有DynamicAppearance动态呈现的ListView列表视图质量改善
● TListBox列表盒支持按住Shift键并单击,进行多选择范围
11.2版本---Data有关数据库
● 用于dbGo(即古老版本的ado)迁移的FireDAC重新查找脚本,以及兼容性单元,
FireDAC.ADO.Migrate.pas迁移源码文件
● reFind还允许您将旧代码保留为注释(/C开关)
● 更新的FireDAC驱动程序
○ 用于DSQL服务器的ODBC
○ macOS M1芯片上的MSSQL
○ 支持MongoDB新事务功能
● FD监视器
● FireDAC SQL编辑器
● Addtl DB库更改
● RAD服务器
● FDMonitor大大改进了!
○ 语法突出显示改进
○ 用于跟踪SQL命令的SQL输出视图
○ FDExplorer和FDMonitor具有搜索命令
○ ODBC和其他优化
● FireDAC SQL编辑器具有语法突出显示、行号和通用快捷键
● TCustomADODataSet、AutoIncFieldsMode:通过以下方式优化打开数据集
避免额外的数据流量以检测自动递增字段
11.2版本---RAD Server后端服务开发 和 关于HTTP/REST通讯
● RAD Server Lite社区版:2用户的限制已删除
● 增强的日志记录:现在记录IP地址和日期时间
● ems服务器。ini文件中ini可以指定指向FDConnectionDefs及FD驱动程序。
● EMSFireDACClient组件具有上下文,创建基于的持久字段的关于结果集的菜单项
● TEMSFireDAC客户端。PostUpdates可以使用自定义的会话令牌
● 改进了TEMSFileTResource列表功能
HTTP和REST :
● 改进的Windows代理检测
● 改进了Android平台THTTPNetClient SSL证书检查
● TRestRequest MIME类型和改进了多部分/表单数据( multipart/form data )
其他产品计划
● Appercept针对Delphi的AWS SDK(亚马逊web服务的SDK)
○ 长期分销协议,包括在企业和建筑师中
○ 预计新版本将保持不变
● 用于Python的Delphi UI可视化组件库( VCL + FMX )
○ Python开发人员的免费UI库
○ 升级到Delphi许可证以获得更多能力和功能
○ 此外,您还可以在Delphi应用程序中使用Python
RAD Studio 11.2:iOS模拟器和质量重新小结
● 关注质量和改进
○ IDE和Designer高DPI
○ 可用性/“小部件”
● IDE改进
○ CPU视图语法高亮
○ Markdown支持
○ 编辑器选项卡改进
○ 字体和样式
● 代码洞察感知 / DelphiLSP
○ 重新编写的Help Insight(并再次使用XSLT)
○ 标记非活动代码和颜色常量
○ 11.1.5中的C++代码洞察力
● 平台和工具
○ Delphi的iOS模拟器
○ 用于Linux的LLDB
○ Android目标API 32
○ 远程调试Win64 C++
● 类库
○ VCL WebView2改进
○ 一般VCL和FMX质量
○ ZLib、HTTP/REST
○ RAD服务器
○ FireDAC重新查找、更新的驱动程序和FD监视器/FD资源管理器
喜欢的,就收藏并点个赞,鼓励我继续技术的原创写作及经验分享:
RAD Studio 11.X Alexandria release有何新的改变及改变实务_pulledup的博客-CSDN博客
知道RAD Studio Sydney(Delphi 10.4.2)这些,少走弯路_pulledup的博客-CSDN博客
Delphi RAD Studio 10.4.2 Sydney的新增与改进介绍原版全文_pulledup的博客-CSDN博客